Mercurial > hg > audiodb
view libtests/0034/prog1.c @ 498:342822c2d49a
Merge api-inversion branch (-r656:771, but I don't expect to return to
that branch) into the trunk.
I expect there to be minor performance regressions (e.g. in the SOAP
server index cacheing, which I have forcibly removed) and minor
unplugged memory leaks (e.g. in audioDB::query(), where I don't free up
the datum). I hope that these leaks and performance regressions can be
plugged in short order. I also expect that some (but maybe not all) of
the issues currently addressed in the memory-leaks branch are superseded
or fixed by this merge.
There remains much work to be done; go forth and do it.
author | mas01cr |
---|---|
date | Sat, 10 Jan 2009 16:47:57 +0000 |
parents | 94c18f128ce8 |
children |
line wrap: on
line source
#include "audioDB_API.h" #include "test_utils_lib.h" int main(int argc, char **argv) { adb_t *adb; adb_insert_t insert = {0}; adb_status_t status = {0}; adb_insert_t batch[4] = {{0},{0},{0},{0}}; clean_remove_db(TESTDB); if(!(adb = audiodb_create(TESTDB, 0, 0, 0))) return 1; maketestfile("testfeature", 2, (double[2]) {1, 1}, 2); maketestfile("testfeature01", 2, (double[2]) {0, 1}, 2); maketestfile("testfeature10", 2, (double[2]) {1, 0}, 2); insert.features = "testfeature"; if(audiodb_insert(adb, &insert)) return 1; if(audiodb_status(adb, &status) || status.numFiles != 1) return 1; /* reinserts using audiodb_insert() should silently not fail and * silently not insert, to support legacy command-line behaviour. */ if(audiodb_insert(adb, &insert)) return 1; if(audiodb_status(adb, &status) || status.numFiles != 1) return 1; /* reinserts using audiodb_insert_datum() should fail. */ adb_datum_t datum = {1, 2, "testfeature", (double[2]) {1, 1}}; if(!audiodb_insert_datum(adb, &datum)) return 1; insert.features = "testfeature01"; if(audiodb_insert(adb, &insert)) return 1; if(audiodb_status(adb, &status) || status.numFiles != 2) return 1; insert.features = "testfeature10"; if(audiodb_insert(adb, &insert)) return 1; if(audiodb_status(adb, &status) || status.numFiles != 3) return 1; audiodb_close(adb); clean_remove_db(TESTDB); if(!(adb = audiodb_create(TESTDB, 0, 0, 0))) return 1; batch[0].features = "testfeature"; batch[1].features = "testfeature01"; batch[2].features = "testfeature10"; batch[3].features = "testfeature10"; if(audiodb_batchinsert(adb, batch, 4)) return 1; if(audiodb_status(adb, &status) || status.numFiles != 3) return 1; audiodb_close(adb); return 104; }