#include "t.h" int main(int argc, char **argv) { struct ent { const char *name; int (*fn)(void); } tests[] = { {"rd", t_rd}, {"nm", t_nm}, {"p", t_p}, {"ir", t_ir}, {"cf", t_cf}, {"da", t_da}, {"dc", t_dc}, {"js", t_js}, {"bad", t_bad}, {"cli", t_cli}, {"prod", t_prod}, }; if (argc == 2) { for (size_t i = 0; i < sizeof(tests) / sizeof(tests[0]); i++) { if (strcmp(argv[1], tests[i].name) == 0) { return tests[i].fn(); } } fprintf(stderr, "unknown test %s\n", argv[1]); return 2; } for (size_t i = 0; i < sizeof(tests) / sizeof(tests[0]); i++) { int rc = tests[i].fn(); if (rc != 0) { fprintf(stderr, "%s failed\n", tests[i].name); return rc; } } return 0; }