X-Git-Url: https://git.ozlabs.org/?p=ccan;a=blobdiff_plain;f=ccan%2Ftdb2%2Ftest%2Frun-simple-fetch.c;fp=ccan%2Ftdb2%2Ftest%2Frun-simple-fetch.c;h=1802844270f8f0e6e3e31ebb45c5c445b3a8147b;hp=0000000000000000000000000000000000000000;hb=dbf1ac48c3a1f5147dfcd457a7847a03de26a6c7;hpb=29d640f6cc9dc23135ccdcb08fee1cd26a3c6831 diff --git a/ccan/tdb2/test/run-simple-fetch.c b/ccan/tdb2/test/run-simple-fetch.c new file mode 100644 index 00000000..18028442 --- /dev/null +++ b/ccan/tdb2/test/run-simple-fetch.c @@ -0,0 +1,44 @@ +#include +#include +#include +#include +#include +#include +#include "logging.h" + +int main(int argc, char *argv[]) +{ + unsigned int i; + struct tdb_context *tdb; + int flags[] = { TDB_INTERNAL, TDB_DEFAULT, + TDB_INTERNAL|TDB_CONVERT, TDB_CONVERT }; + struct tdb_data key = { (unsigned char *)"key", 3 }; + struct tdb_data data = { (unsigned char *)"data", 4 }; + + plan_tests(sizeof(flags) / sizeof(flags[0]) * 8 + 1); + for (i = 0; i < sizeof(flags) / sizeof(flags[0]); i++) { + tdb = tdb_open("/tmp/run-new_database.tdb", flags[i], + O_RDWR|O_CREAT|O_TRUNC, 0600, NULL); + tdb->log = tap_log_fn; + ok1(tdb); + if (tdb) { + struct tdb_data d; + + /* fetch should fail. */ + d = tdb_fetch(tdb, key); + ok1(d.dptr == NULL); + ok1(tdb_error(tdb) == TDB_ERR_NOEXIST); + ok1(tdb_check(tdb, NULL, NULL) == 0); + /* Insert should succeed. */ + ok1(tdb_store(tdb, key, data, TDB_INSERT) == 0); + ok1(tdb_check(tdb, NULL, NULL) == 0); + /* Fetch should now work. */ + d = tdb_fetch(tdb, key); + ok1(data_equal(d, data)); + ok1(tdb_check(tdb, NULL, NULL) == 0); + tdb_close(tdb); + } + } + ok1(tap_log_messages == 0); + return exit_status(); +}