#include "zebra.h" #include #include "Record_Info.h" typedef int testFunction(char *err); int test_zdab(char *err) { int rv; bank b; int nzdabs = 0; zebraFile *z = zebra_open("Muons.zdab"); while (1) { rv = next_bank(z, &b); if (rv == -1) { sprintf(err, "error getting bank: %s\n", zebra_err); goto err; } else if (rv == 1) { break; } if (b.name == ZDAB_RECORD) nzdabs += 1; } if (nzdabs != 5) { sprintf(err, "expected %i zdab records but got %i", 5, nzdabs); goto err; } zebra_close(z); return 0; err: zebra_close(z); return -1; } struct tests { testFunction *test; char *name; } tests[] = { {test_zdab, "test_zdab"} }; int main(int argc, char **argv) { int i; char err[256]; int retval = 0; struct tests test; for (i = 0; i < sizeof(tests)/sizeof(struct tests); i++) { test = tests[i]; if (!test.test(err)) { printf("[\033[92mok\033[0m] %s\n", test.name); } else { printf("[\033[91mfail\033[0m] %s: %s\n", test.name, err); retval = 1; } } return retval; }