diff options
Diffstat (limited to 'Tests/LibC')
-rw-r--r-- | Tests/LibC/CMakeLists.txt | 1 | ||||
-rw-r--r-- | Tests/LibC/TestStackSmash.cpp (renamed from Tests/LibC/stack-smash.cpp) | 16 |
2 files changed, 10 insertions, 7 deletions
diff --git a/Tests/LibC/CMakeLists.txt b/Tests/LibC/CMakeLists.txt index a4f8a4ce0b..3c5dc09d43 100644 --- a/Tests/LibC/CMakeLists.txt +++ b/Tests/LibC/CMakeLists.txt @@ -7,6 +7,7 @@ set(TEST_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/TestLibCDirEnt.cpp ${CMAKE_CURRENT_SOURCE_DIR}/TestLibCInodeWatcher.cpp ${CMAKE_CURRENT_SOURCE_DIR}/TestLibCString.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/TestStackSmash.cpp ) file(GLOB CMD_SOURCES CONFIGURE_DEPENDS "*.cpp") diff --git a/Tests/LibC/stack-smash.cpp b/Tests/LibC/TestStackSmash.cpp index 6a2a303951..bcea97d501 100644 --- a/Tests/LibC/stack-smash.cpp +++ b/Tests/LibC/TestStackSmash.cpp @@ -4,7 +4,8 @@ * SPDX-License-Identifier: BSD-2-Clause */ -#include <cstdio> +#include <AK/Format.h> +#include <LibTest/TestCase.h> // Note: Needs to be 'noline' so stack canary isn't optimized out. static void __attribute__((noinline)) smasher(char* string) @@ -24,11 +25,12 @@ static void __attribute__((noinline)) stack_to_smash() smasher(string); } -int main() +TEST_CASE(stack_smash) { - puts("[+] Starting the stack smash..."); - stack_to_smash(); - puts("[+] Stack smash wasn't detected!"); - - return 0; + EXPECT_CRASH("Smash the stack and trigger __stack_chk_fail", [] { + outln("[+] Starting the stack smash..."); + stack_to_smash(); + outln("[+] Stack smash wasn't detected!"); + return Test::Crash::Failure::DidNotCrash; + }); } |