mirror of
https://github.com/MariaDB/server.git
synced 2025-01-22 14:54:20 +01:00
110754f57c
Current tests fail (not regressions, they fail as of 13461) * {{{x1.tdbrun}}} * {{{test_log(2,3,4,5,6,7,8,9,10).recover}}} * {{{test-recover(1,2,3).tdbrun}}} * {{{test1324.tdbrun}}} ULE_DEBUG disabled (defined to 0) Can be re-enabled for test purposes (set to 1). refs [t:1125] Merging into the temp branch (tokudb.main_13461+1125) {{{svn merge --accept=postpone -r 12527:13461 ../tokudb.1125 ./}}} Merging into main {{{svn merge --accept=postpone -r13462:13463 ../tokudb.main_13461+1125/ ./}}} git-svn-id: file:///svn/toku/tokudb@13464 c7de825b-a66e-492c-adef-691d508d4ae1
92 lines
2 KiB
C
92 lines
2 KiB
C
#include "includes.h"
|
|
|
|
|
|
#include "test.h"
|
|
int verbose;
|
|
|
|
static void
|
|
test_fifo_create (void) {
|
|
int r;
|
|
FIFO f;
|
|
|
|
f = 0;
|
|
r = toku_fifo_create(&f);
|
|
assert(r == 0); assert(f != 0);
|
|
|
|
toku_fifo_free(&f);
|
|
assert(f == 0);
|
|
}
|
|
|
|
static void
|
|
test_fifo_enq (int n) {
|
|
int r;
|
|
FIFO f;
|
|
|
|
f = 0;
|
|
r = toku_fifo_create(&f);
|
|
assert(r == 0); assert(f != 0);
|
|
|
|
char *thekey = 0; int thekeylen;
|
|
char *theval = 0; int thevallen;
|
|
|
|
// this was a function but icc cant handle it
|
|
#define buildkey(len) { \
|
|
thekeylen = len; \
|
|
thekey = toku_realloc(thekey, thekeylen); \
|
|
memset(thekey, len, thekeylen); \
|
|
}
|
|
|
|
#define buildval(len) { \
|
|
thevallen = len+1; \
|
|
theval = toku_realloc(theval, thevallen); \
|
|
memset(theval, ~len, thevallen); \
|
|
}
|
|
|
|
int i;
|
|
for (i=0; i<n; i++) {
|
|
buildkey(i);
|
|
buildval(i);
|
|
XIDS xids;
|
|
if (i==0)
|
|
xids = xids_get_root_xids();
|
|
else {
|
|
r = xids_create_child(xids_get_root_xids(), &xids, (TXNID)i);
|
|
assert(r==0);
|
|
}
|
|
r = toku_fifo_enq(f, thekey, thekeylen, theval, thevallen, i, xids); assert(r == 0);
|
|
xids_destroy(&xids);
|
|
}
|
|
|
|
i = 0;
|
|
FIFO_ITERATE(f, key, keylen, val, vallen, type, xids, {
|
|
if (verbose) printf("checkit %d %d\n", i, type);
|
|
buildkey(i);
|
|
buildval(i);
|
|
assert((int) keylen == thekeylen); assert(memcmp(key, thekey, keylen) == 0);
|
|
assert((int) vallen == thevallen); assert(memcmp(val, theval, vallen) == 0);
|
|
assert(i % 256 == type);
|
|
assert((TXNID)i==xids_get_innermost_xid(xids));
|
|
i += 1;
|
|
});
|
|
assert(i == n);
|
|
|
|
if (thekey) toku_free(thekey);
|
|
if (theval) toku_free(theval);
|
|
|
|
while (toku_fifo_deq(f) == 0)
|
|
;
|
|
|
|
toku_fifo_free(&f);
|
|
assert(f == 0);
|
|
}
|
|
|
|
int
|
|
test_main(int argc, const char *argv[]) {
|
|
default_parse_args(argc, argv);
|
|
|
|
test_fifo_create();
|
|
test_fifo_enq(4);
|
|
test_fifo_enq(512);
|
|
toku_malloc_cleanup();
|
|
return 0;
|
|
}
|