summaryrefslogtreecommitdiff
path: root/Tests/LibC
diff options
context:
space:
mode:
Diffstat (limited to 'Tests/LibC')
-rw-r--r--Tests/LibC/CMakeLists.txt1
-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;
+ });
}