diff --git a/Base/home/anon/.config/Tests.ini b/Base/home/anon/.config/Tests.ini index f549dad980..550a26eeba 100644 --- a/Base/home/anon/.config/Tests.ini +++ b/Base/home/anon/.config/Tests.ini @@ -1,6 +1,6 @@ [Global] SkipDirectories=Kernel/Legacy UserEmulator -SkipTests=stack-smash test-web +SkipTests=test-web NotTestsPattern=.txt|.frm|.inc [test-js] 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 similarity index 64% rename from Tests/LibC/stack-smash.cpp rename to 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 +#include +#include // 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; + }); }