|
|
|
@ -38,6 +38,7 @@
@@ -38,6 +38,7 @@
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
#include <sys/stat.h> |
|
|
|
|
#include <poll.h> |
|
|
|
|
#include <dirent.h> |
|
|
|
|
#include <stdio.h> |
|
|
|
|
#include <stddef.h> |
|
|
|
@ -51,6 +52,38 @@
@@ -51,6 +52,38 @@
|
|
|
|
|
|
|
|
|
|
#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 |
|
|
|
|
test_file(int argc, char *argv[]) |
|
|
|
|
{ |
|
|
|
@ -108,6 +141,9 @@ test_file(int argc, char *argv[])
@@ -108,6 +141,9 @@ test_file(int argc, char *argv[])
|
|
|
|
|
fsync(fd); |
|
|
|
|
//perf_end(wperf);
|
|
|
|
|
|
|
|
|
|
if (!check_user_abort()) |
|
|
|
|
return OK; |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
end = hrt_absolute_time(); |
|
|
|
|
|
|
|
|
@ -142,6 +178,9 @@ test_file(int argc, char *argv[])
@@ -142,6 +178,9 @@ test_file(int argc, char *argv[])
|
|
|
|
|
errx(1, "ABORTING FURTHER COMPARISON DUE TO ERROR"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (!check_user_abort()) |
|
|
|
|
return OK; |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
@ -152,7 +191,7 @@ test_file(int argc, char *argv[])
@@ -152,7 +191,7 @@ test_file(int argc, char *argv[])
|
|
|
|
|
int ret = unlink("/fs/microsd/testfile"); |
|
|
|
|
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(); |
|
|
|
|
for (unsigned i = 0; i < iterations; i++) { |
|
|
|
@ -162,6 +201,9 @@ test_file(int argc, char *argv[])
@@ -162,6 +201,9 @@ test_file(int argc, char *argv[])
|
|
|
|
|
err(1, "WRITE ERROR!"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (!check_user_abort()) |
|
|
|
|
return OK; |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
fsync(fd); |
|
|
|
@ -190,6 +232,9 @@ test_file(int argc, char *argv[])
@@ -190,6 +232,9 @@ test_file(int argc, char *argv[])
|
|
|
|
|
align_read_ok = false; |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (!check_user_abort()) |
|
|
|
|
return OK; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (!align_read_ok) { |
|
|
|
@ -228,6 +273,9 @@ test_file(int argc, char *argv[])
@@ -228,6 +273,9 @@ test_file(int argc, char *argv[])
|
|
|
|
|
if (unalign_read_err_count > 10) |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (!check_user_abort()) |
|
|
|
|
return OK; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (!unalign_read_ok) { |
|
|
|
|