aboutsummaryrefslogtreecommitdiff
path: root/tests/ECMAddTests
diff options
context:
space:
mode:
authorAlex Merry <alex.merry@kde.org>2015-05-11 13:56:28 +0100
committerAlex Merry <alex.merry@kde.org>2015-05-13 19:22:15 +0100
commit1b636b43d2bf4dca0332a2e2b36affa67fbe1e0b (patch)
tree6a82d1acbdd48c76ab94b1aa4921696aef3bf4e1 /tests/ECMAddTests
parent09822e2631644875d3b22fef54b9bfa30a295169 (diff)
downloadextra-cmake-modules-1b636b43d2bf4dca0332a2e2b36affa67fbe1e0b.tar.gz
extra-cmake-modules-1b636b43d2bf4dca0332a2e2b36affa67fbe1e0b.tar.bz2
Add unit tests for ECMAddTests module.
REVIEW: 123722
Diffstat (limited to 'tests/ECMAddTests')
-rw-r--r--tests/ECMAddTests/CMakeLists.txt49
-rw-r--r--tests/ECMAddTests/check_files.cmake15
-rw-r--r--tests/ECMAddTests/multi_tests/CMakeLists.txt142
-rw-r--r--tests/ECMAddTests/multi_tests/test1.cpp8
-rw-r--r--tests/ECMAddTests/multi_tests/test2.cpp8
-rw-r--r--tests/ECMAddTests/multi_tests/test3.cpp8
-rw-r--r--tests/ECMAddTests/multi_tests/test4.cpp8
-rw-r--r--tests/ECMAddTests/multi_tests/test5.cpp8
-rw-r--r--tests/ECMAddTests/multi_tests/test6.cpp8
-rw-r--r--tests/ECMAddTests/multi_tests/test7.cpp8
-rw-r--r--tests/ECMAddTests/multi_tests/test8.cpp8
-rw-r--r--tests/ECMAddTests/multi_tests/test9.cpp8
-rw-r--r--tests/ECMAddTests/single_tests/CMakeLists.txt122
-rw-r--r--tests/ECMAddTests/single_tests/test1.cpp8
-rw-r--r--tests/ECMAddTests/single_tests/test2.cpp8
-rw-r--r--tests/ECMAddTests/single_tests/test3.cpp8
-rw-r--r--tests/ECMAddTests/single_tests/test4.cpp8
-rw-r--r--tests/ECMAddTests/single_tests/test5.cpp8
-rw-r--r--tests/ECMAddTests/single_tests/test6.cpp8
-rw-r--r--tests/ECMAddTests/single_tests/test6body.cpp7
-rw-r--r--tests/ECMAddTests/testhelper.cpp8
-rw-r--r--tests/ECMAddTests/testhelper.h1
22 files changed, 464 insertions, 0 deletions
diff --git a/tests/ECMAddTests/CMakeLists.txt b/tests/ECMAddTests/CMakeLists.txt
new file mode 100644
index 00000000..e77b33f9
--- /dev/null
+++ b/tests/ECMAddTests/CMakeLists.txt
@@ -0,0 +1,49 @@
+macro(add_check NAME)
+ string(REPLACE "." "/" dir "${NAME}")
+ string(REGEX REPLACE "[^.]*\\." "" proj "${NAME}")
+ add_test(
+ NAME ecm_add_tests-${NAME}
+ COMMAND
+ ${CMAKE_CTEST_COMMAND}
+ --build-and-test
+ "${CMAKE_CURRENT_SOURCE_DIR}/${dir}"
+ "${CMAKE_CURRENT_BINARY_DIR}/${dir}"
+ --build-two-config
+ --build-generator ${CMAKE_GENERATOR}
+ --build-makeprogram ${CMAKE_MAKE_PROGRAM}
+ --build-project ${proj}
+ --build-options -DBUILD_TESTING:BOOL=ON
+ ${${NAME}_EXTRA_OPTIONS}
+ --test-command "${CMAKE_CTEST_COMMAND}"
+ )
+ add_test(
+ NAME ecm_add_tests_did_run-${NAME}
+ COMMAND "${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_SOURCE_DIR}/check_files.cmake" ${ARGN}
+ WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/${dir}"
+ )
+ set_property(TEST ecm_add_tests_did_run-${NAME}
+ APPEND
+ PROPERTY DEPENDS "ecm_add_tests-${NAME}"
+ )
+endmacro()
+
+add_check(single_tests
+ test1.txt
+ test2.txt
+ test3.txt
+ test4.txt
+ test5.txt
+ test6.txt
+ )
+add_check(multi_tests
+ test1.txt
+ test2.txt
+ test3.txt
+ test4.txt
+ test5.txt
+ test6.txt
+ test7.txt
+ test8.txt
+ test9.txt
+ )
+
diff --git a/tests/ECMAddTests/check_files.cmake b/tests/ECMAddTests/check_files.cmake
new file mode 100644
index 00000000..fc6003c6
--- /dev/null
+++ b/tests/ECMAddTests/check_files.cmake
@@ -0,0 +1,15 @@
+set(i 0)
+set(in_file_args FALSE)
+while (i LESS CMAKE_ARGC)
+ if (in_file_args)
+ if (NOT EXISTS "${CMAKE_ARGV${i}}")
+ message(FATAL_ERROR "${CMAKE_ARGV${i}} does not exist")
+ endif()
+ elseif (CMAKE_ARGV${i} STREQUAL "-P")
+ # skip script name
+ math(EXPR i "${i} + 1")
+ set(in_file_args TRUE)
+ endif()
+ math(EXPR i "${i} + 1")
+endwhile()
+
diff --git a/tests/ECMAddTests/multi_tests/CMakeLists.txt b/tests/ECMAddTests/multi_tests/CMakeLists.txt
new file mode 100644
index 00000000..ca434773
--- /dev/null
+++ b/tests/ECMAddTests/multi_tests/CMakeLists.txt
@@ -0,0 +1,142 @@
+project(ECMAddTests)
+cmake_minimum_required(VERSION 2.8.12)
+
+set(ECM_MODULE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../../modules)
+set(CMAKE_MODULE_PATH "${ECM_MODULE_DIR}")
+
+add_library(testhelper STATIC ../testhelper.cpp)
+target_include_directories(testhelper PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/..")
+
+enable_testing()
+
+include(ECMAddTests)
+
+# clean up to avoid false-positives from check_files.cmake
+file(REMOVE
+ "${CMAKE_CURRENT_BINARY_DIR}/test1.txt"
+ "${CMAKE_CURRENT_BINARY_DIR}/test2.txt"
+ "${CMAKE_CURRENT_BINARY_DIR}/test3.txt"
+ "${CMAKE_CURRENT_BINARY_DIR}/test4.txt"
+ "${CMAKE_CURRENT_BINARY_DIR}/test5.txt"
+ "${CMAKE_CURRENT_BINARY_DIR}/test6.txt"
+ "${CMAKE_CURRENT_BINARY_DIR}/test7.txt"
+ "${CMAKE_CURRENT_BINARY_DIR}/test8.txt"
+ "${CMAKE_CURRENT_BINARY_DIR}/test9.txt"
+ )
+
+ecm_add_tests(
+ test1.cpp
+ test2.cpp
+ test3.cpp
+ LINK_LIBRARIES testhelper
+ )
+# check targets exist
+get_property(_dummy TARGET test1 PROPERTY TYPE)
+get_property(_dummy TARGET test2 PROPERTY TYPE)
+get_property(_dummy TARGET test3 PROPERTY TYPE)
+# check tests exists
+get_property(_dummy TEST test1 PROPERTY TIMEOUT)
+get_property(_dummy TEST test2 PROPERTY TIMEOUT)
+get_property(_dummy TEST test3 PROPERTY TIMEOUT)
+get_property(_is_win32 TARGET test1 PROPERTY WIN32_EXECUTABLE)
+if (_is_win32)
+ message(FATAL_ERROR "test1 is a WIN32 executable when it should not be")
+endif()
+get_property(_is_bundle TARGET test1 PROPERTY MACOSX_BUNDLE)
+if (_is_bundle)
+ message(FATAL_ERROR "test1 is an OS/X bundle when it should not be")
+endif()
+get_property(_is_win32 TARGET test2 PROPERTY WIN32_EXECUTABLE)
+if (_is_win32)
+ message(FATAL_ERROR "test2 is a WIN32 executable when it should not be")
+endif()
+get_property(_is_bundle TARGET test2 PROPERTY MACOSX_BUNDLE)
+if (_is_bundle)
+ message(FATAL_ERROR "test2 is an OS/X bundle when it should not be")
+endif()
+
+
+ecm_add_tests(
+ test4.cpp
+ test5.cpp
+ LINK_LIBRARIES testhelper
+ NAME_PREFIX pref_
+ )
+get_property(_dummy TARGET test4 PROPERTY TYPE)
+get_property(_dummy TARGET test5 PROPERTY TYPE)
+get_property(_dummy TEST pref_test4 PROPERTY TIMEOUT)
+get_property(_dummy TEST pref_test5 PROPERTY TIMEOUT)
+get_property(_is_win32 TARGET test4 PROPERTY WIN32_EXECUTABLE)
+if (_is_win32)
+ message(FATAL_ERROR "test4 is a WIN32 executable when it should not be")
+endif()
+get_property(_is_bundle TARGET test4 PROPERTY MACOSX_BUNDLE)
+if (_is_bundle)
+ message(FATAL_ERROR "test4 is an OS/X bundle when it should not be")
+endif()
+get_property(_is_win32 TARGET test5 PROPERTY WIN32_EXECUTABLE)
+if (_is_win32)
+ message(FATAL_ERROR "test5 is a WIN32 executable when it should not be")
+endif()
+get_property(_is_bundle TARGET test5 PROPERTY MACOSX_BUNDLE)
+if (_is_bundle)
+ message(FATAL_ERROR "test5 is an OS/X bundle when it should not be")
+endif()
+
+
+ecm_add_tests(
+ test6.cpp
+ test7.cpp
+ LINK_LIBRARIES testhelper
+ GUI
+ )
+get_property(_dummy TARGET test6 PROPERTY TYPE)
+get_property(_dummy TARGET test7 PROPERTY TYPE)
+get_property(_dummy TEST test6 PROPERTY TIMEOUT)
+get_property(_dummy TEST test7 PROPERTY TIMEOUT)
+get_property(_is_win32 TARGET test6 PROPERTY WIN32_EXECUTABLE)
+if (NOT _is_win32)
+ message(FATAL_ERROR "test6 is not a WIN32 executable when it should be")
+endif()
+get_property(_is_bundle TARGET test6 PROPERTY MACOSX_BUNDLE)
+if (NOT _is_bundle)
+ message(FATAL_ERROR "test6 is not an OS/X bundle when it should be")
+endif()
+get_property(_is_win32 TARGET test7 PROPERTY WIN32_EXECUTABLE)
+if (NOT _is_win32)
+ message(FATAL_ERROR "test7 is not a WIN32 executable when it should be")
+endif()
+get_property(_is_bundle TARGET test7 PROPERTY MACOSX_BUNDLE)
+if (NOT _is_bundle)
+ message(FATAL_ERROR "test7 is not an OS/X bundle when it should be")
+endif()
+
+
+ecm_add_tests(
+ test8.cpp
+ test9.cpp
+ LINK_LIBRARIES testhelper
+ NAME_PREFIX p_
+ GUI
+ )
+get_property(_dummy TARGET test8 PROPERTY TYPE)
+get_property(_dummy TARGET test9 PROPERTY TYPE)
+get_property(_dummy TEST p_test8 PROPERTY TIMEOUT)
+get_property(_dummy TEST p_test9 PROPERTY TIMEOUT)
+get_property(_is_win32 TARGET test8 PROPERTY WIN32_EXECUTABLE)
+if (NOT _is_win32)
+ message(FATAL_ERROR "test8 is not a WIN32 executable when it should be")
+endif()
+get_property(_is_bundle TARGET test8 PROPERTY MACOSX_BUNDLE)
+if (NOT _is_bundle)
+ message(FATAL_ERROR "test8 is not an OS/X bundle when it should be")
+endif()
+get_property(_is_win32 TARGET test9 PROPERTY WIN32_EXECUTABLE)
+if (NOT _is_win32)
+ message(FATAL_ERROR "test9 is not a WIN32 executable when it should be")
+endif()
+get_property(_is_bundle TARGET test9 PROPERTY MACOSX_BUNDLE)
+if (NOT _is_bundle)
+ message(FATAL_ERROR "test9 is not an OS/X bundle when it should be")
+endif()
+
diff --git a/tests/ECMAddTests/multi_tests/test1.cpp b/tests/ECMAddTests/multi_tests/test1.cpp
new file mode 100644
index 00000000..e5482865
--- /dev/null
+++ b/tests/ECMAddTests/multi_tests/test1.cpp
@@ -0,0 +1,8 @@
+#include "testhelper.h"
+
+int main()
+{
+ make_test_file("test1.txt");
+ return 0;
+}
+
diff --git a/tests/ECMAddTests/multi_tests/test2.cpp b/tests/ECMAddTests/multi_tests/test2.cpp
new file mode 100644
index 00000000..7f45bb56
--- /dev/null
+++ b/tests/ECMAddTests/multi_tests/test2.cpp
@@ -0,0 +1,8 @@
+#include "testhelper.h"
+
+int main()
+{
+ make_test_file("test2.txt");
+ return 0;
+}
+
diff --git a/tests/ECMAddTests/multi_tests/test3.cpp b/tests/ECMAddTests/multi_tests/test3.cpp
new file mode 100644
index 00000000..142b2765
--- /dev/null
+++ b/tests/ECMAddTests/multi_tests/test3.cpp
@@ -0,0 +1,8 @@
+#include "testhelper.h"
+
+int main()
+{
+ make_test_file("test3.txt");
+ return 0;
+}
+
diff --git a/tests/ECMAddTests/multi_tests/test4.cpp b/tests/ECMAddTests/multi_tests/test4.cpp
new file mode 100644
index 00000000..1ba9b148
--- /dev/null
+++ b/tests/ECMAddTests/multi_tests/test4.cpp
@@ -0,0 +1,8 @@
+#include "testhelper.h"
+
+int main()
+{
+ make_test_file("test4.txt");
+ return 0;
+}
+
diff --git a/tests/ECMAddTests/multi_tests/test5.cpp b/tests/ECMAddTests/multi_tests/test5.cpp
new file mode 100644
index 00000000..987af36b
--- /dev/null
+++ b/tests/ECMAddTests/multi_tests/test5.cpp
@@ -0,0 +1,8 @@
+#include "testhelper.h"
+
+int main()
+{
+ make_test_file("test5.txt");
+ return 0;
+}
+
diff --git a/tests/ECMAddTests/multi_tests/test6.cpp b/tests/ECMAddTests/multi_tests/test6.cpp
new file mode 100644
index 00000000..6bda9f0d
--- /dev/null
+++ b/tests/ECMAddTests/multi_tests/test6.cpp
@@ -0,0 +1,8 @@
+#include "testhelper.h"
+
+int main()
+{
+ make_test_file("test6.txt");
+ return 0;
+}
+
diff --git a/tests/ECMAddTests/multi_tests/test7.cpp b/tests/ECMAddTests/multi_tests/test7.cpp
new file mode 100644
index 00000000..069859e7
--- /dev/null
+++ b/tests/ECMAddTests/multi_tests/test7.cpp
@@ -0,0 +1,8 @@
+#include "testhelper.h"
+
+int main()
+{
+ make_test_file("test7.txt");
+ return 0;
+}
+
diff --git a/tests/ECMAddTests/multi_tests/test8.cpp b/tests/ECMAddTests/multi_tests/test8.cpp
new file mode 100644
index 00000000..ce762c8d
--- /dev/null
+++ b/tests/ECMAddTests/multi_tests/test8.cpp
@@ -0,0 +1,8 @@
+#include "testhelper.h"
+
+int main()
+{
+ make_test_file("test8.txt");
+ return 0;
+}
+
diff --git a/tests/ECMAddTests/multi_tests/test9.cpp b/tests/ECMAddTests/multi_tests/test9.cpp
new file mode 100644
index 00000000..e432aeba
--- /dev/null
+++ b/tests/ECMAddTests/multi_tests/test9.cpp
@@ -0,0 +1,8 @@
+#include "testhelper.h"
+
+int main()
+{
+ make_test_file("test9.txt");
+ return 0;
+}
+
diff --git a/tests/ECMAddTests/single_tests/CMakeLists.txt b/tests/ECMAddTests/single_tests/CMakeLists.txt
new file mode 100644
index 00000000..6af3857b
--- /dev/null
+++ b/tests/ECMAddTests/single_tests/CMakeLists.txt
@@ -0,0 +1,122 @@
+project(ECMAddTests)
+cmake_minimum_required(VERSION 2.8.12)
+
+set(ECM_MODULE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../../modules)
+set(CMAKE_MODULE_PATH "${ECM_MODULE_DIR}")
+
+add_library(testhelper STATIC ../testhelper.cpp)
+target_include_directories(testhelper PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/..")
+
+enable_testing()
+
+include(ECMAddTests)
+
+# clean up to avoid false-positives from check_files.cmake
+file(REMOVE
+ "${CMAKE_CURRENT_BINARY_DIR}/test1.txt"
+ "${CMAKE_CURRENT_BINARY_DIR}/test2.txt"
+ "${CMAKE_CURRENT_BINARY_DIR}/test3.txt"
+ "${CMAKE_CURRENT_BINARY_DIR}/test4.txt"
+ "${CMAKE_CURRENT_BINARY_DIR}/test5.txt"
+ "${CMAKE_CURRENT_BINARY_DIR}/test6.txt"
+ )
+
+ecm_add_test(test1.cpp
+ LINK_LIBRARIES testhelper
+ )
+# check target exists
+get_property(_dummy TARGET test1 PROPERTY TYPE)
+# check test exists
+get_property(_dummy TEST test1 PROPERTY TIMEOUT)
+get_property(_is_win32 TARGET test1 PROPERTY WIN32_EXECUTABLE)
+if (_is_win32)
+ message(FATAL_ERROR "test1 is a WIN32 executable when it should not be")
+endif()
+get_property(_is_bundle TARGET test1 PROPERTY MACOSX_BUNDLE)
+if (_is_bundle)
+ message(FATAL_ERROR "test1 is an OS/X bundle when it should not be")
+endif()
+
+
+ecm_add_test(test2.cpp
+ LINK_LIBRARIES testhelper
+ TEST_NAME named_test
+ )
+get_property(_dummy TARGET named_test PROPERTY TYPE)
+get_property(_dummy TEST named_test PROPERTY TIMEOUT)
+get_property(_is_win32 TARGET named_test PROPERTY WIN32_EXECUTABLE)
+if (_is_win32)
+ message(FATAL_ERROR "named_test is a WIN32 executable when it should not be")
+endif()
+get_property(_is_bundle TARGET named_test PROPERTY MACOSX_BUNDLE)
+if (_is_bundle)
+ message(FATAL_ERROR "named_test is an OS/X bundle when it should not be")
+endif()
+
+
+ecm_add_test(test3.cpp
+ LINK_LIBRARIES testhelper
+ NAME_PREFIX prefix_
+ )
+get_property(_dummy TARGET test3 PROPERTY TYPE)
+get_property(_dummy TEST prefix_test3 PROPERTY TIMEOUT)
+get_property(_is_win32 TARGET test3 PROPERTY WIN32_EXECUTABLE)
+if (_is_win32)
+ message(FATAL_ERROR "test3 is a WIN32 executable when it should not be")
+endif()
+get_property(_is_bundle TARGET test3 PROPERTY MACOSX_BUNDLE)
+if (_is_bundle)
+ message(FATAL_ERROR "test3 is an OS/X bundle when it should not be")
+endif()
+
+
+ecm_add_test(test4.cpp
+ LINK_LIBRARIES testhelper
+ GUI
+ )
+get_property(_dummy TARGET test4 PROPERTY TYPE)
+get_property(_dummy TEST test4 PROPERTY TIMEOUT)
+get_property(_is_win32 TARGET test4 PROPERTY WIN32_EXECUTABLE)
+if (NOT _is_win32)
+ message(FATAL_ERROR "test4 is not a WIN32 executable when it should be")
+endif()
+get_property(_is_bundle TARGET test4 PROPERTY MACOSX_BUNDLE)
+if (NOT _is_bundle)
+ message(FATAL_ERROR "test4 is not an OS/X bundle when it should be")
+endif()
+
+
+ecm_add_test(test5.cpp
+ LINK_LIBRARIES testhelper
+ TEST_NAME combined_test
+ NAME_PREFIX another_prefix_
+ GUI
+ )
+get_property(_dummy TARGET combined_test PROPERTY TYPE)
+get_property(_dummy TEST another_prefix_combined_test PROPERTY TIMEOUT)
+get_property(_is_win32 TARGET combined_test PROPERTY WIN32_EXECUTABLE)
+if (NOT _is_win32)
+ message(FATAL_ERROR "combined_test is not a WIN32 executable when it should be")
+endif()
+get_property(_is_bundle TARGET combined_test PROPERTY MACOSX_BUNDLE)
+if (NOT _is_bundle)
+ message(FATAL_ERROR "combined_test is not an OS/X bundle when it should be")
+endif()
+
+
+ecm_add_test(test6.cpp test6body.cpp
+ LINK_LIBRARIES testhelper
+ TEST_NAME multifile_test
+ )
+get_property(_dummy TARGET multifile_test PROPERTY TYPE)
+get_property(_dummy TEST multifile_test PROPERTY TIMEOUT)
+get_property(_is_win32 TARGET multifile_test PROPERTY WIN32_EXECUTABLE)
+if (_is_win32)
+ message(FATAL_ERROR "multifile_test is a WIN32 executable when it should not be")
+endif()
+get_property(_is_bundle TARGET multifile_test PROPERTY MACOSX_BUNDLE)
+if (_is_bundle)
+ message(FATAL_ERROR "multifile_test is an OS/X bundle when it should not be")
+endif()
+
+
diff --git a/tests/ECMAddTests/single_tests/test1.cpp b/tests/ECMAddTests/single_tests/test1.cpp
new file mode 100644
index 00000000..e5482865
--- /dev/null
+++ b/tests/ECMAddTests/single_tests/test1.cpp
@@ -0,0 +1,8 @@
+#include "testhelper.h"
+
+int main()
+{
+ make_test_file("test1.txt");
+ return 0;
+}
+
diff --git a/tests/ECMAddTests/single_tests/test2.cpp b/tests/ECMAddTests/single_tests/test2.cpp
new file mode 100644
index 00000000..7f45bb56
--- /dev/null
+++ b/tests/ECMAddTests/single_tests/test2.cpp
@@ -0,0 +1,8 @@
+#include "testhelper.h"
+
+int main()
+{
+ make_test_file("test2.txt");
+ return 0;
+}
+
diff --git a/tests/ECMAddTests/single_tests/test3.cpp b/tests/ECMAddTests/single_tests/test3.cpp
new file mode 100644
index 00000000..142b2765
--- /dev/null
+++ b/tests/ECMAddTests/single_tests/test3.cpp
@@ -0,0 +1,8 @@
+#include "testhelper.h"
+
+int main()
+{
+ make_test_file("test3.txt");
+ return 0;
+}
+
diff --git a/tests/ECMAddTests/single_tests/test4.cpp b/tests/ECMAddTests/single_tests/test4.cpp
new file mode 100644
index 00000000..1ba9b148
--- /dev/null
+++ b/tests/ECMAddTests/single_tests/test4.cpp
@@ -0,0 +1,8 @@
+#include "testhelper.h"
+
+int main()
+{
+ make_test_file("test4.txt");
+ return 0;
+}
+
diff --git a/tests/ECMAddTests/single_tests/test5.cpp b/tests/ECMAddTests/single_tests/test5.cpp
new file mode 100644
index 00000000..987af36b
--- /dev/null
+++ b/tests/ECMAddTests/single_tests/test5.cpp
@@ -0,0 +1,8 @@
+#include "testhelper.h"
+
+int main()
+{
+ make_test_file("test5.txt");
+ return 0;
+}
+
diff --git a/tests/ECMAddTests/single_tests/test6.cpp b/tests/ECMAddTests/single_tests/test6.cpp
new file mode 100644
index 00000000..33cd0421
--- /dev/null
+++ b/tests/ECMAddTests/single_tests/test6.cpp
@@ -0,0 +1,8 @@
+void test_body();
+
+int main()
+{
+ test_body();
+ return 0;
+}
+
diff --git a/tests/ECMAddTests/single_tests/test6body.cpp b/tests/ECMAddTests/single_tests/test6body.cpp
new file mode 100644
index 00000000..c3332738
--- /dev/null
+++ b/tests/ECMAddTests/single_tests/test6body.cpp
@@ -0,0 +1,7 @@
+#include "testhelper.h"
+
+void test_body()
+{
+ make_test_file("test6.txt");
+}
+
diff --git a/tests/ECMAddTests/testhelper.cpp b/tests/ECMAddTests/testhelper.cpp
new file mode 100644
index 00000000..00d0ceed
--- /dev/null
+++ b/tests/ECMAddTests/testhelper.cpp
@@ -0,0 +1,8 @@
+#include "testhelper.h"
+#include <fstream>
+#include <string>
+
+void make_test_file(const char *filename)
+{
+ std::ofstream(filename) << "test" << std::endl;
+}
diff --git a/tests/ECMAddTests/testhelper.h b/tests/ECMAddTests/testhelper.h
new file mode 100644
index 00000000..9810ee41
--- /dev/null
+++ b/tests/ECMAddTests/testhelper.h
@@ -0,0 +1 @@
+void make_test_file(const char *filename);