mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-04-14 10:07:39 +08:00
Fix the 'time' test, now that rand() seems to be working.
This commit is contained in:
parent
b5d3d8e436
commit
c38ad4ded5
@ -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;
|
||||
}
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user