aboutsummaryrefslogtreecommitdiff
path: root/test/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'test/CMakeLists.txt')
-rw-r--r--test/CMakeLists.txt34
1 files changed, 28 insertions, 6 deletions
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index 6b79d98..9dab686 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -1,12 +1,34 @@
project(tests)
+set(INPUT_SEARCH
+ /_0123456789_0123456789_0123456789_0123456789_0123456789_0123456789_0123456789_)
+set(INPUT_REPLACE
+ _ctest_replaced_this)
+set(INPUT_FN
+ test_data.bin)
+set(OUTPUT_FN
+ test_data.out)
+
+configure_file(${INPUT_FN} ${INPUT_FN} COPYONLY)
+file(REMOVE ${OUTPUT_FN})
+
include_directories("${CMAKE_SOURCE_DIR}")
include_directories("${CMAKE_BINARY_DIR}")
-add_executable(test_reloc_match test_reloc_match.c)
-add_executable(test_reloc_read test_reloc_read.c)
-target_link_libraries(test_reloc_match relocate)
-target_link_libraries(test_reloc_read relocate)
+function(add_reloc_test target)
+ add_executable(${target} ${ARGN})
+ target_link_libraries(${target} relocate)
+ add_test(${target} ${target})
+endfunction()
+
+function(add_exec_test target)
+ add_test(NAME ${target} COMMAND ${ARGN})
+endfunction()
+
+add_reloc_test(test_reloc_match test_reloc_match.c)
+add_reloc_test(test_reloc_read test_reloc_read.c)
+add_reloc_test(test_reloc_write test_reloc_write.c)
+add_exec_test(test_exec_success reloc "${INPUT_SEARCH}" "${INPUT_REPLACE}" "${INPUT_FN}" "${OUTPUT_FN}")
-add_test(test_reloc_match test_reloc_match)
-add_test(test_reloc_read test_reloc_read)
+# Windows users need grep too. "findstr" and "find" were not reliable here
+add_exec_test(test_exec_result grep "${INPUT_REPLACE}" "${OUTPUT_FN}")