diff options
author | px4dev <px4@purgatory.org> | 2013-01-14 10:08:47 -0800 |
---|---|---|
committer | px4dev <px4@purgatory.org> | 2013-01-14 10:08:47 -0800 |
commit | c38ad4ded570eddadeeca3579d02dfc63dcc8a9d (patch) | |
tree | be134f68c219d4703fec315ac0714e76854523ed /apps | |
parent | b5d3d8e436b5ba6415198b6ecd60185dceeccb18 (diff) | |
download | px4-firmware-c38ad4ded570eddadeeca3579d02dfc63dcc8a9d.tar.gz px4-firmware-c38ad4ded570eddadeeca3579d02dfc63dcc8a9d.tar.bz2 px4-firmware-c38ad4ded570eddadeeca3579d02dfc63dcc8a9d.zip |
Fix the 'time' test, now that rand() seems to be working.
Diffstat (limited to 'apps')
-rw-r--r-- | apps/px4/tests/test_time.c | 8 | ||||
-rw-r--r-- | apps/px4/tests/tests_main.c | 66 |
2 files changed, 39 insertions, 35 deletions
diff --git a/apps/px4/tests/test_time.c b/apps/px4/tests/test_time.c index 25bf02c31..8a164f3fc 100644 --- a/apps/px4/tests/test_time.c +++ b/apps/px4/tests/test_time.c @@ -95,7 +95,7 @@ cycletime(void) lasttime = cycles; - return (basetime + cycles) / 168; + return (basetime + cycles) / 168; /* XXX magic number */ } /**************************************************************************** @@ -133,9 +133,9 @@ int test_time(int argc, char *argv[]) lowdelta = abs(delta / 100); /* loop checking the time */ - for (unsigned i = 0; i < 100000; i++) { + for (unsigned i = 0; i < 100; i++) { - usleep(rand() * 10); + usleep(rand()); uint32_t flags = irqsave(); @@ -154,7 +154,7 @@ int test_time(int argc, char *argv[]) fprintf(stderr, "h %llu c %llu d %lld\n", h, c, delta - lowdelta); } - printf("Maximum jitter %lld\n", maxdelta); + printf("Maximum jitter %lldus\n", maxdelta); return 0; } diff --git a/apps/px4/tests/tests_main.c b/apps/px4/tests/tests_main.c index d99464546..5bedd257b 100644 --- a/apps/px4/tests/tests_main.c +++ b/apps/px4/tests/tests_main.c @@ -82,38 +82,39 @@ const struct { const char *name; int (* fn)(int argc, char *argv[]); unsigned options; - int passed; #define OPT_NOHELP (1<<0) #define OPT_NOALLTEST (1<<1) #define OPT_NOJIGTEST (1<<2) } tests[] = { - {"led", test_led, 0, 0}, - {"int", test_int, 0, 0}, - {"float", test_float, 0, 0}, - {"sensors", test_sensors, 0, 0}, - {"gpio", test_gpio, OPT_NOJIGTEST | OPT_NOALLTEST, 0}, - {"hrt", test_hrt, OPT_NOJIGTEST | OPT_NOALLTEST, 0}, - {"ppm", test_ppm, OPT_NOJIGTEST | OPT_NOALLTEST, 0}, - {"servo", test_servo, OPT_NOJIGTEST | OPT_NOALLTEST, 0}, - {"adc", test_adc, OPT_NOJIGTEST, 0}, - {"jig_voltages", test_jig_voltages, OPT_NOALLTEST, 0}, - {"uart_loopback", test_uart_loopback, OPT_NOJIGTEST | OPT_NOALLTEST, 0}, - {"uart_baudchange", test_uart_baudchange, OPT_NOJIGTEST | OPT_NOALLTEST, 0}, - {"uart_send", test_uart_send, OPT_NOJIGTEST | OPT_NOALLTEST, 0}, - {"uart_console", test_uart_console, OPT_NOJIGTEST | OPT_NOALLTEST, 0}, - {"tone", test_tone, 0, 0}, - {"sleep", test_sleep, OPT_NOJIGTEST, 0}, - {"time", test_time, OPT_NOJIGTEST, 0}, - {"perf", test_perf, OPT_NOJIGTEST, 0}, - {"all", test_all, OPT_NOALLTEST | OPT_NOJIGTEST, 0}, - {"jig", test_jig, OPT_NOJIGTEST | OPT_NOALLTEST, 0}, - {"param", test_param, 0, 0}, - {"bson", test_bson, 0, 0}, - {"file", test_file, 0, 0}, - {"help", test_help, OPT_NOALLTEST | OPT_NOHELP | OPT_NOJIGTEST, 0}, - {NULL, NULL, 0, 0} + {"led", test_led, 0}, + {"int", test_int, 0}, + {"float", test_float, 0}, + {"sensors", test_sensors, 0}, + {"gpio", test_gpio, OPT_NOJIGTEST | OPT_NOALLTEST}, + {"hrt", test_hrt, OPT_NOJIGTEST | OPT_NOALLTEST}, + {"ppm", test_ppm, OPT_NOJIGTEST | OPT_NOALLTEST}, + {"servo", test_servo, OPT_NOJIGTEST | OPT_NOALLTEST}, + {"adc", test_adc, OPT_NOJIGTEST}, + {"jig_voltages", test_jig_voltages, OPT_NOALLTEST}, + {"uart_loopback", test_uart_loopback, OPT_NOJIGTEST | OPT_NOALLTEST}, + {"uart_baudchange", test_uart_baudchange, OPT_NOJIGTEST | OPT_NOALLTEST}, + {"uart_send", test_uart_send, OPT_NOJIGTEST | OPT_NOALLTEST}, + {"uart_console", test_uart_console, OPT_NOJIGTEST | OPT_NOALLTEST}, + {"tone", test_tone, 0}, + {"sleep", test_sleep, OPT_NOJIGTEST}, + {"time", test_time, OPT_NOJIGTEST}, + {"perf", test_perf, OPT_NOJIGTEST}, + {"all", test_all, OPT_NOALLTEST | OPT_NOJIGTEST}, + {"jig", test_jig, OPT_NOJIGTEST | OPT_NOALLTEST}, + {"param", test_param, 0}, + {"bson", test_bson, 0}, + {"file", test_file, 0}, + {"help", test_help, OPT_NOALLTEST | OPT_NOHELP | OPT_NOJIGTEST}, + {NULL, NULL, 0} }; +#define NTESTS (sizeof(tests) / sizeof(tests[0])) + static int test_help(int argc, char *argv[]) { @@ -133,6 +134,7 @@ test_all(int argc, char *argv[]) unsigned i; char *args[2] = {"all", NULL}; unsigned int failcount = 0; + bool passed[NTESTS]; printf("\nRunning all tests...\n\n"); @@ -147,11 +149,11 @@ test_all(int argc, char *argv[]) fprintf(stderr, " [%s] \t\t\tFAIL\n", tests[i].name); fflush(stderr); failcount++; - + passed[i] = false; } else { - tests[i].passed = 1; printf(" [%s] \t\t\tPASS\n", tests[i].name); fflush(stdout); + passed[i] = true; } } } @@ -195,7 +197,7 @@ test_all(int argc, char *argv[]) unsigned int k; for (k = 0; k < i; k++) { - if ((tests[k].passed == 0) && !(tests[k].options & OPT_NOALLTEST)) { + if (!passed[k] && !(tests[k].options & OPT_NOALLTEST)) { printf(" [%s] to obtain details, please re-run with\n\t nsh> tests %s\n\n", tests[k].name, tests[k].name); } } @@ -242,6 +244,7 @@ int test_jig(int argc, char *argv[]) unsigned i; char *args[2] = {"jig", NULL}; unsigned int failcount = 0; + bool passed[NTESTS]; printf("\nRunning all tests...\n\n"); for (i = 0; tests[i].name; i++) { @@ -254,10 +257,11 @@ int test_jig(int argc, char *argv[]) fprintf(stderr, " [%s] \t\t\tFAIL\n", tests[i].name); fflush(stderr); failcount++; + passed[i] = false; } else { - tests[i].passed = 1; printf(" [%s] \t\t\tPASS\n", tests[i].name); fflush(stdout); + passed[i] = true; } } } @@ -296,7 +300,7 @@ int test_jig(int argc, char *argv[]) unsigned int k; for (k = 0; k < i; k++) { - if ((tests[k].passed == 0) && !(tests[k].options & OPT_NOJIGTEST)) + if (!passed[i] && !(tests[k].options & OPT_NOJIGTEST)) { printf(" [%s] to obtain details, please re-run with\n\t nsh> tests %s\n\n", tests[k].name, tests[k].name); } |