Clarify purpose and rationale.
[pintos.git] / src / tests / userprog / sc-bad-sp.c
blob6da4a6e53927b9d8edbd958e949f32ef792c0c39
1 /* Invokes a system call with the stack pointer (%esp) set to a
2 bad address. The process must be terminated with -1 exit
3 code.
5 For Project 3: The bad address lies approximately 64MB below
6 the code segment, so there is no ambiguity that this attempt
7 must be rejected even after stack growth is implemented.
8 Moreover, a good stack growth heuristics should probably not
9 grow the stack for the purpose of reading the system call
10 number and arguments. */
12 #include "tests/lib.h"
13 #include "tests/main.h"
15 void
16 test_main (void)
18 asm volatile ("movl . - (64*1024*1024), %esp; int $0x30");
19 fail ("should have called exit(-1)");