aboutsummaryrefslogtreecommitdiff
path: root/apps/px4
diff options
context:
space:
mode:
authorpx4dev <px4@purgatory.org>2013-01-14 10:08:47 -0800
committerpx4dev <px4@purgatory.org>2013-01-14 10:08:47 -0800
commitc38ad4ded570eddadeeca3579d02dfc63dcc8a9d (patch)
treebe134f68c219d4703fec315ac0714e76854523ed /apps/px4
parentb5d3d8e436b5ba6415198b6ecd60185dceeccb18 (diff)
downloadpx4-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/px4')
-rw-r--r--apps/px4/tests/test_time.c8
-rw-r--r--apps/px4/tests/tests_main.c66
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);
}