aboutsummaryrefslogtreecommitdiffstats
path: root/src/tests/filst/sc-bad-nr-2.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/tests/filst/sc-bad-nr-2.c')
-rw-r--r--src/tests/filst/sc-bad-nr-2.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/tests/filst/sc-bad-nr-2.c b/src/tests/filst/sc-bad-nr-2.c
new file mode 100644
index 0000000..35fc49e
--- /dev/null
+++ b/src/tests/filst/sc-bad-nr-2.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 syscall that is quite a bit larger than the maximum syscall number.
+ syscall0(1024 * 1024);
+ fail("Should have failed.");
+}