Merge branch 'master' of github.com:PX4/Firmware

This commit is contained in:
Lorenz Meier 2014-01-09 08:42:40 +01:00
commit c1ecdadd9b
2 changed files with 50 additions and 2 deletions

View File

@ -302,7 +302,7 @@ CONFIG_USART2_RXDMA=y
CONFIG_USART3_RXDMA=y CONFIG_USART3_RXDMA=y
# CONFIG_UART4_RS485 is not set # CONFIG_UART4_RS485 is not set
CONFIG_UART4_RXDMA=y CONFIG_UART4_RXDMA=y
# CONFIG_UART5_RXDMA is not set CONFIG_UART5_RXDMA=y
# CONFIG_USART6_RS485 is not set # CONFIG_USART6_RS485 is not set
CONFIG_USART6_RXDMA=y CONFIG_USART6_RXDMA=y
# CONFIG_UART7_RS485 is not set # CONFIG_UART7_RS485 is not set

View File

@ -38,6 +38,7 @@
*/ */
#include <sys/stat.h> #include <sys/stat.h>
#include <poll.h>
#include <dirent.h> #include <dirent.h>
#include <stdio.h> #include <stdio.h>
#include <stddef.h> #include <stddef.h>
@ -51,6 +52,38 @@
#include "tests.h" #include "tests.h"
int check_user_abort();
int check_user_abort() {
/* check if user wants to abort */
char c;
struct pollfd fds;
int ret;
fds.fd = 0; /* stdin */
fds.events = POLLIN;
ret = poll(&fds, 1, 0);
if (ret > 0) {
read(0, &c, 1);
switch (c) {
case 0x03: // ctrl-c
case 0x1b: // esc
case 'c':
case 'q':
{
warnx("Test aborted.");
return OK;
/* not reached */
}
}
}
return 1;
}
int int
test_file(int argc, char *argv[]) test_file(int argc, char *argv[])
{ {
@ -108,6 +141,9 @@ test_file(int argc, char *argv[])
fsync(fd); fsync(fd);
//perf_end(wperf); //perf_end(wperf);
if (!check_user_abort())
return OK;
} }
end = hrt_absolute_time(); end = hrt_absolute_time();
@ -142,6 +178,9 @@ test_file(int argc, char *argv[])
errx(1, "ABORTING FURTHER COMPARISON DUE TO ERROR"); errx(1, "ABORTING FURTHER COMPARISON DUE TO ERROR");
} }
if (!check_user_abort())
return OK;
} }
/* /*
@ -152,7 +191,7 @@ test_file(int argc, char *argv[])
int ret = unlink("/fs/microsd/testfile"); int ret = unlink("/fs/microsd/testfile");
fd = open("/fs/microsd/testfile", O_TRUNC | O_WRONLY | O_CREAT); fd = open("/fs/microsd/testfile", O_TRUNC | O_WRONLY | O_CREAT);
warnx("testing aligned writes - please wait.."); warnx("testing aligned writes - please wait.. (CTRL^C to abort)");
start = hrt_absolute_time(); start = hrt_absolute_time();
for (unsigned i = 0; i < iterations; i++) { for (unsigned i = 0; i < iterations; i++) {
@ -162,6 +201,9 @@ test_file(int argc, char *argv[])
err(1, "WRITE ERROR!"); err(1, "WRITE ERROR!");
} }
if (!check_user_abort())
return OK;
} }
fsync(fd); fsync(fd);
@ -190,6 +232,9 @@ test_file(int argc, char *argv[])
align_read_ok = false; align_read_ok = false;
break; break;
} }
if (!check_user_abort())
return OK;
} }
if (!align_read_ok) { if (!align_read_ok) {
@ -228,6 +273,9 @@ test_file(int argc, char *argv[])
if (unalign_read_err_count > 10) if (unalign_read_err_count > 10)
break; break;
} }
if (!check_user_abort())
return OK;
} }
if (!unalign_read_ok) { if (!unalign_read_ok) {