New directory for testing application code
This commit is contained in:
parent
f522aab6ad
commit
fcb0a33da9
2 changed files with 56 additions and 0 deletions
5
src/apps/eric/Makefile
Normal file
5
src/apps/eric/Makefile
Normal file
|
@ -0,0 +1,5 @@
|
|||
|
||||
test: test.c
|
||||
gcc -g -O2 -I ../../.. test.c -o test ../../../src/lladd/liblladd.a ../../../src/libdfa/librw.a -lc -lpthread -lm -lcheck
|
||||
|
||||
|
51
src/apps/eric/test.c
Normal file
51
src/apps/eric/test.c
Normal file
|
@ -0,0 +1,51 @@
|
|||
#include <stdio.h>
|
||||
#include <assert.h>
|
||||
#include <lladd/transactional.h>
|
||||
|
||||
/*
|
||||
Basic first program
|
||||
|
||||
Transactionally stores one integer, which is the version number of the store.
|
||||
New store gets version 1. Each rerun increments the version number.
|
||||
If you delete logfile.txt and storefile.txt, it recreates them at version 1.
|
||||
*/
|
||||
|
||||
int main(const int argc, const char **argv) {
|
||||
int version = 1;
|
||||
|
||||
Tinit();
|
||||
printf("Initialized\n");
|
||||
|
||||
// create/load the store
|
||||
recordid rootEntry;
|
||||
|
||||
int xid = Tbegin();
|
||||
if (TrecordType(xid, ROOT_RECORD) == UNINITIALIZED_RECORD) {
|
||||
// new store, must create empty page
|
||||
printf("Creating new store\n");
|
||||
rootEntry = Talloc(xid, sizeof(int));
|
||||
|
||||
assert(ROOT_RECORD.page == rootEntry.page);
|
||||
assert(ROOT_RECORD.slot == rootEntry.slot);
|
||||
|
||||
Tset(xid, rootEntry, &version);
|
||||
Tcommit(xid);
|
||||
} else {
|
||||
// store is valid
|
||||
printf("Reusing existing store\n");
|
||||
rootEntry = ROOT_RECORD;
|
||||
rootEntry.size = sizeof(int);
|
||||
|
||||
Tread(xid, rootEntry, &version);
|
||||
version++;
|
||||
printf("read valid\n");
|
||||
Tset(xid, rootEntry, &version);
|
||||
Tcommit(xid);
|
||||
}
|
||||
printf("Version %d\n", version);
|
||||
|
||||
// wrap up
|
||||
|
||||
Tdeinit();
|
||||
return 0;
|
||||
}
|
Loading…
Reference in a new issue