summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2013-07-13 17:36:03 -0400
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2013-07-13 21:59:17 -0400
commitbf502e636be8f76e05b0334b4e78ea7a398ba241 (patch)
tree61e012ab928cf7b16a21fe7c63207c7bc765bba3
parent6aea6d10f460853111ca8744201ec8dade97de3c (diff)
test: add trivial test for syscall table and extend table tests to error paths
-rw-r--r--src/shared/test-tables.h8
-rw-r--r--src/test/test-tables.c3
2 files changed, 8 insertions, 3 deletions
diff --git a/src/shared/test-tables.h b/src/shared/test-tables.h
index ac7deda39b..deebec2ed2 100644
--- a/src/shared/test-tables.h
+++ b/src/shared/test-tables.h
@@ -29,15 +29,17 @@ static inline void _test_table(const char *name,
int size) {
int i;
- for (i = 0; i < size; i++) {
+ for (i = 0; i < size + 1; i++) {
const char* val = lookup(i);
- int rev = -1;
+ int rev;
if (val)
rev = reverse(val);
+ else
+ rev = reverse("--no-such--value----");
printf("%s: %d → %s → %d\n", name, i, val, rev);
- if (!val || rev != i)
+ if (i < size ? val == NULL || rev != i : val != NULL || rev != -1)
exit(EXIT_FAILURE);
}
}
diff --git a/src/test/test-tables.c b/src/test/test-tables.c
index dff6431b6d..9a3d3e8e74 100644
--- a/src/test/test-tables.c
+++ b/src/test/test-tables.c
@@ -43,6 +43,7 @@
#include "unit-name.h"
#include "unit.h"
#include "util.h"
+#include "syscall-list.h"
#include "test-tables.h"
@@ -98,5 +99,7 @@ int main(int argc, char **argv) {
test_table(unit_load_state, UNIT_LOAD_STATE);
test_table(unit_type, UNIT_TYPE);
+ _test_table("syscall", syscall_to_name, syscall_from_name, syscall_max());
+
return EXIT_SUCCESS;
}