diff options
Diffstat (limited to 'src/tests/filst/sc-bad-nr-1.c')
| -rw-r--r-- | src/tests/filst/sc-bad-nr-1.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/tests/filst/sc-bad-nr-1.c b/src/tests/filst/sc-bad-nr-1.c new file mode 100644 index 0000000..4735dfb --- /dev/null +++ b/src/tests/filst/sc-bad-nr-1.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 one larger than the largest syscall number. + syscall0(SYS_NUMBER_OF_CALLS); + fail("Should have failed."); +} |
