106 lines
2.4 KiB
C
106 lines
2.4 KiB
C
#include <stdlib.h>
|
|
#include <getopt.h>
|
|
#include <stdio.h>
|
|
#include <check.h>
|
|
#include <getopt.h>
|
|
|
|
|
|
typedef Suite *(*suite_func)(void);
|
|
|
|
extern Suite *bitvec_suite(void);
|
|
extern Suite *bcd_suite(void);
|
|
extern Suite *hex_suite(void);
|
|
extern Suite *container_of_suite(void);
|
|
extern Suite *read_file_suite(void);
|
|
extern Suite *pack_suite(void);
|
|
extern Suite *logging_suite(void);
|
|
extern Suite *threadqueue_suite(void);
|
|
extern Suite *buffer_suite(void);
|
|
extern Suite *clock_suite(void);
|
|
extern Suite *seq_suite(void);
|
|
extern Suite *sat_math_suite(void);
|
|
extern Suite *timers_suite(void);
|
|
extern Suite *mbuf_suite(void);
|
|
extern Suite *human_bytesz_suite(void);
|
|
extern Suite *dbuf_suite(void);
|
|
extern Suite *sprintb_suite(void);
|
|
extern Suite *strv_suite(void);
|
|
extern Suite *ratelimit_suite(void);
|
|
extern Suite *htable_suite(void);
|
|
extern Suite *heapsort_suite(void);
|
|
|
|
static suite_func suites[] = {
|
|
bitvec_suite,
|
|
bcd_suite,
|
|
hex_suite,
|
|
container_of_suite,
|
|
read_file_suite,
|
|
pack_suite,
|
|
logging_suite,
|
|
buffer_suite,
|
|
seq_suite,
|
|
sat_math_suite,
|
|
timers_suite,
|
|
mbuf_suite,
|
|
human_bytesz_suite,
|
|
dbuf_suite,
|
|
sprintb_suite,
|
|
strv_suite,
|
|
ratelimit_suite,
|
|
htable_suite,
|
|
clock_suite,
|
|
threadqueue_suite,
|
|
heapsort_suite
|
|
};
|
|
|
|
int
|
|
main (int argc, char *argv[])
|
|
{
|
|
int xml_output = 0;
|
|
int c;
|
|
const char *test_case = NULL;
|
|
|
|
while ((c = getopt(argc, argv, "xk:")) != -1) {
|
|
switch (c) {
|
|
case 'x':
|
|
xml_output = 1;
|
|
break;
|
|
case 'k':
|
|
test_case = optarg;
|
|
break;
|
|
default:
|
|
printf("Ignoring unknown option %c\n", c);
|
|
break;
|
|
}
|
|
}
|
|
|
|
|
|
int number_failed = 0;
|
|
size_t i;
|
|
|
|
SRunner *sr = srunner_create (NULL);
|
|
if (xml_output)
|
|
srunner_set_xml(sr, "result.xml");
|
|
|
|
srunner_set_fork_status(sr, CK_FORK_GETENV);
|
|
|
|
|
|
for(i = 0; i < sizeof suites/sizeof suites[0]; i++) {
|
|
srunner_add_suite(sr, suites[i]());
|
|
}
|
|
|
|
if (test_case == NULL) {
|
|
srunner_run_all (sr, CK_VERBOSE);
|
|
} else {
|
|
printf("Running %s only\n", test_case);
|
|
srunner_run(sr, NULL, test_case, CK_VERBOSE);
|
|
}
|
|
number_failed = srunner_ntests_failed (sr);
|
|
srunner_free (sr);
|
|
|
|
if (number_failed)
|
|
printf("ERROR: %d tests failed\n", number_failed);
|
|
|
|
return (number_failed != 0) ;
|
|
}
|