mas01cr@498: #include "audioDB_API.h" mas01cr@498: #include "test_utils_lib.h" mas01ik@355: mas01cr@498: int main(int argc, char **argv) { mas01cr@498: adb_t *adb; mas01cr@498: adb_insert_t insert = {0}; mas01cr@498: adb_status_t status = {0}; mas01cr@498: adb_insert_t batch[4] = {{0},{0},{0},{0}}; mas01ik@355: mas01cr@498: clean_remove_db(TESTDB); mas01cr@498: if(!(adb = audiodb_create(TESTDB, 0, 0, 0))) mas01cr@498: return 1; mas01ik@355: mas01cr@498: maketestfile("testfeature", 2, (double[2]) {1, 1}, 2); mas01cr@498: maketestfile("testfeature01", 2, (double[2]) {0, 1}, 2); mas01cr@498: maketestfile("testfeature10", 2, (double[2]) {1, 0}, 2); mas01ik@355: mas01cr@498: insert.features = "testfeature"; mas01cr@498: if(audiodb_insert(adb, &insert)) mas01cr@498: return 1; mas01cr@498: if(audiodb_status(adb, &status) || status.numFiles != 1) mas01cr@498: return 1; mas01cr@498: mas01cr@498: /* reinserts using audiodb_insert() should silently not fail and mas01cr@498: * silently not insert, to support legacy command-line behaviour. */ mas01cr@498: if(audiodb_insert(adb, &insert)) mas01cr@498: return 1; mas01cr@498: if(audiodb_status(adb, &status) || status.numFiles != 1) mas01cr@498: return 1; mas01ik@355: mas01cr@498: /* reinserts using audiodb_insert_datum() should fail. */ mas01cr@498: adb_datum_t datum = {1, 2, "testfeature", (double[2]) {1, 1}}; mas01cr@498: if(!audiodb_insert_datum(adb, &datum)) mas01cr@498: return 1; mas01ik@355: mas01cr@498: insert.features = "testfeature01"; mas01cr@498: if(audiodb_insert(adb, &insert)) mas01cr@498: return 1; mas01cr@498: if(audiodb_status(adb, &status) || status.numFiles != 2) mas01cr@498: return 1; mas01ik@355: mas01cr@498: insert.features = "testfeature10"; mas01cr@498: if(audiodb_insert(adb, &insert)) mas01cr@498: return 1; mas01cr@498: if(audiodb_status(adb, &status) || status.numFiles != 3) mas01cr@498: return 1; mas01cr@498: mas01cr@498: audiodb_close(adb); mas01ik@355: mas01cr@498: clean_remove_db(TESTDB); mas01cr@498: if(!(adb = audiodb_create(TESTDB, 0, 0, 0))) mas01cr@498: return 1; mas01ik@355: mas01cr@498: batch[0].features = "testfeature"; mas01cr@498: batch[1].features = "testfeature01"; mas01cr@498: batch[2].features = "testfeature10"; mas01cr@498: batch[3].features = "testfeature10"; mas01cr@498: if(audiodb_batchinsert(adb, batch, 4)) mas01cr@498: return 1; mas01cr@498: if(audiodb_status(adb, &status) || status.numFiles != 3) mas01cr@498: return 1; mas01ik@355: mas01cr@498: audiodb_close(adb); mas01ik@355: mas01cr@498: return 104; mas01ik@355: }