aboutsummaryrefslogtreecommitdiffstats
path: root/src/tests/filst/sc-bad-nr-3.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/tests/filst/sc-bad-nr-3.c')
-rw-r--r--src/tests/filst/sc-bad-nr-3.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/tests/filst/sc-bad-nr-3.c b/src/tests/filst/sc-bad-nr-3.c
new file mode 100644
index 0000000..6cde22b
--- /dev/null
+++ b/src/tests/filst/sc-bad-nr-3.c
@@ -0,0 +1,24 @@
+#include <syscall-nr.h>
+#include "tests/lib.h"
+#include "tests/main.h"
+
+// From "lib/user/syscall.c", but modified to push some zeros on the stack
+// first, to get a better output for the tests if the stack error message
+// remains.
+#define syscall0(NUMBER) \
+ ({ \
+ int retval; \
+ asm volatile \
+ ("pushl $0; pushl $0; pushl %[number]; int $0x30; addl $4, %%esp" \
+ : "=a" (retval) \
+ : [number] "i" (NUMBER) \
+ : "memory"); \
+ retval; \
+ })
+
+void test_main(void)
+{
+ // Call a negative syscall.
+ syscall0(-1);
+ fail("Should have failed.");
+}