refactor header files
[nbds] / test / txn_test.c
1 #include <stdio.h>
2 #include "CuTest.h"
3
4 #include "common.h"
5 #include "runtime.h"
6 #include "txn.h"
7 #include "map.h"
8 #include "hashtable.h"
9
10 #define ASSERT_EQUAL(x, y) CuAssertIntEquals(tc, x, y)
11
12 void test1 (CuTest* tc) {
13     map_t *map = map_alloc(MAP_TYPE_HASHTABLE, NULL);
14     txn_t *t1 = txn_begin(TXN_REPEATABLE_READ, map);
15     txn_t *t2 = txn_begin(TXN_REPEATABLE_READ, map);
16     tm_set(t1, "abc", 2);
17     tm_set(t1, "abc", 3);
18     ASSERT_EQUAL( DOES_NOT_EXIST, tm_get(t2, "abc") );
19     tm_set(t2, "abc", 4);
20     ASSERT_EQUAL( 3, tm_get(t1, "abc") );
21     ASSERT_EQUAL( 4, tm_get(t2, "abc") );
22     ASSERT_EQUAL( TXN_VALIDATED, txn_commit(t2));
23     ASSERT_EQUAL( TXN_ABORTED, txn_commit(t1));
24 }
25
26 int main (void) {
27
28     nbd_init();
29
30     CuString *output = CuStringNew();
31     CuSuite* suite = CuSuiteNew();
32     SUITE_ADD_TEST(suite, test1);
33     CuSuiteRun(suite);
34     CuSuiteDetails(suite, output);
35     printf("%s\n", output->buffer);
36
37     return 0;
38 }
39