8TEST(StackCorruption, Syscall) {
9 static const wchar_t pattern = 0x1F05;
10 volatile wchar_t data_on_stack[512];
11 wmemset((
wchar_t*)data_on_stack, pattern,
sizeof(data_on_stack) /
sizeof(
wchar_t));
14 for(
size_t i = 0; i <
sizeof(data_on_stack) /
sizeof(
wchar_t); ++i) {
15 EXPECT_EQ(data_on_stack[i], pattern);
19 static uint64_t rsp_before, rsp_after;
20 static uint64_t rbp_before, rbp_after;
31 sc_do_scheduler_sleep(0);
42 EXPECT_EQ(rsp_before, rsp_after);
43 EXPECT_EQ(rbp_before, rbp_after);
45 for(
size_t i = 0; i <
sizeof(data_on_stack) /
sizeof(
wchar_t); ++i) {
46 EXPECT_EQ(data_on_stack[i], pattern);
50TEST(StackCorruption, Interrupts) {
52 sc_do_hardware_interrupt_notify(0,
true, 0, &
error);
55 static const wchar_t pattern = 0x1F05;
56 volatile wchar_t data_on_stack[512];
57 wmemset((
wchar_t*)data_on_stack, pattern,
sizeof(data_on_stack) /
sizeof(
wchar_t));
60 for(
size_t i = 0; i <
sizeof(data_on_stack) /
sizeof(
wchar_t); ++i) {
61 EXPECT_EQ(data_on_stack[i], pattern);
65 static uint64_t rsp_before, rsp_after;
66 static uint64_t rbp_before, rbp_after;
77 bool received =
false;
84 sc_do_ipc_mq_poll(0,
true, msg, &
error);
112 EXPECT_EQ(rsp_before, rsp_after);
113 EXPECT_EQ(rbp_before, rbp_after);
115 for(
size_t i = 0; i <
sizeof(data_on_stack) /
sizeof(
wchar_t); ++i) {
116 EXPECT_EQ(data_on_stack[i], pattern);