summaryrefslogtreecommitdiffstats
path: root/src/boost/tools/cmake/test/boost_test
diff options
context:
space:
mode:
Diffstat (limited to 'src/boost/tools/cmake/test/boost_test')
-rw-r--r--src/boost/tools/cmake/test/boost_test/CMakeLists.txt58
-rw-r--r--src/boost/tools/cmake/test/boost_test/Jamfile21
-rw-r--r--src/boost/tools/cmake/test/boost_test/arguments.cpp18
-rw-r--r--src/boost/tools/cmake/test/boost_test/compile.cpp8
-rw-r--r--src/boost/tools/cmake/test/boost_test/compile_fail.cpp8
-rw-r--r--src/boost/tools/cmake/test/boost_test/emits_warning.cpp9
-rw-r--r--src/boost/tools/cmake/test/boost_test/link.cpp13
-rw-r--r--src/boost/tools/cmake/test/boost_test/link_fail.cpp10
-rw-r--r--src/boost/tools/cmake/test/boost_test/requires_no_exceptions.cpp18
-rw-r--r--src/boost/tools/cmake/test/boost_test/requires_no_rtti.cpp18
-rw-r--r--src/boost/tools/cmake/test/boost_test/requires_variadic_templates.cpp13
-rw-r--r--src/boost/tools/cmake/test/boost_test/return_exit_code.cpp8
-rw-r--r--src/boost/tools/cmake/test/boost_test/run.cpp7
-rw-r--r--src/boost/tools/cmake/test/boost_test/run_fail.cpp8
14 files changed, 217 insertions, 0 deletions
diff --git a/src/boost/tools/cmake/test/boost_test/CMakeLists.txt b/src/boost/tools/cmake/test/boost_test/CMakeLists.txt
new file mode 100644
index 000000000..22dfaad0b
--- /dev/null
+++ b/src/boost/tools/cmake/test/boost_test/CMakeLists.txt
@@ -0,0 +1,58 @@
+# Copyright 2018, 2019 Peter Dimov
+# Distributed under the Boost Software License, Version 1.0.
+# See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt
+
+cmake_minimum_required(VERSION 3.5...3.16)
+
+project(boost_cmake_test LANGUAGES CXX)
+
+include(CTest)
+
+set(BUILD_TESTING OFF) # hide cache variable
+
+add_subdirectory(../../../../libs/assert EXCLUDE_FROM_ALL boostorg/assert)
+add_subdirectory(../../../../libs/config EXCLUDE_FROM_ALL boostorg/config)
+add_subdirectory(../../../../libs/core EXCLUDE_FROM_ALL boostorg/core)
+add_subdirectory(../../../../libs/static_assert EXCLUDE_FROM_ALL boostorg/static_assert)
+add_subdirectory(../../../../libs/throw_exception EXCLUDE_FROM_ALL boostorg/throw_exception)
+
+unset(BUILD_TESTING)
+
+list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../include)
+
+# boost_test
+
+include(BoostTest)
+
+boost_test(TYPE compile SOURCES compile.cpp)
+boost_test(TYPE compile-fail SOURCES compile_fail.cpp)
+boost_test(TYPE link SOURCES link.cpp)
+boost_test(TYPE link-fail SOURCES link_fail.cpp)
+boost_test(TYPE run SOURCES run.cpp)
+boost_test(TYPE run-fail SOURCES run_fail.cpp)
+
+boost_test(TYPE run SOURCES arguments.cpp ARGUMENTS pumpkin LINK_LIBRARIES Boost::core)
+
+boost_test(TYPE run NAME return_exit_code_pass SOURCES return_exit_code.cpp COMPILE_DEFINITIONS EXIT_CODE=0)
+boost_test(TYPE run-fail NAME return_exit_code_fail SOURCES return_exit_code.cpp COMPILE_DEFINITIONS EXIT_CODE=1)
+
+boost_test(TYPE run SOURCES requires_variadic_templates.cpp COMPILE_FEATURES cxx_variadic_templates)
+
+boost_test(TYPE run SOURCES requires_no_rtti.cpp COMPILE_OPTIONS -fno-rtti LINK_LIBRARIES Boost::config)
+boost_test(TYPE run SOURCES requires_no_exceptions.cpp COMPILE_OPTIONS -fno-exceptions LINK_LIBRARIES Boost::config)
+
+boost_test(TYPE compile-fail SOURCES emits_warning.cpp COMPILE_OPTIONS -Wall -Werror)
+
+# boost_test, w/ globals
+
+set(BOOST_TEST_COMPILE_OPTIONS -fno-rtti -fno-exceptions)
+set(BOOST_TEST_LINK_LIBRARIES Boost::config)
+
+boost_test(SOURCES requires_no_rtti.cpp PREFIX boost_cmake_test_globals)
+boost_test(SOURCES requires_no_exceptions.cpp PREFIX boost_cmake_test_globals)
+
+# boost_test_jamfile
+
+include(BoostTestJamfile)
+
+boost_test_jamfile(FILE Jamfile PREFIX boost_cmake_test_jamfile)
diff --git a/src/boost/tools/cmake/test/boost_test/Jamfile b/src/boost/tools/cmake/test/boost_test/Jamfile
new file mode 100644
index 000000000..a1ae7b093
--- /dev/null
+++ b/src/boost/tools/cmake/test/boost_test/Jamfile
@@ -0,0 +1,21 @@
+# Copyright 2018, 2019 Peter Dimov
+# Distributed under the Boost Software License, Version 1.0.
+# See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt
+
+import testing ;
+
+project
+ : default-build <warnings-as-errors>on
+;
+
+compile compile.cpp ;
+compile-fail compile_fail.cpp ;
+link link.cpp ;
+link-fail link_fail.cpp ;
+run run.cpp ;
+run-fail run_fail.cpp
+ : ;
+
+run
+ arguments.cpp :
+ pumpkin ;
diff --git a/src/boost/tools/cmake/test/boost_test/arguments.cpp b/src/boost/tools/cmake/test/boost_test/arguments.cpp
new file mode 100644
index 000000000..8ebe8eddb
--- /dev/null
+++ b/src/boost/tools/cmake/test/boost_test/arguments.cpp
@@ -0,0 +1,18 @@
+// Copyright 2018 Peter Dimov
+// Distributed under the Boost Software License, Version 1.0.
+// See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt
+
+#include <boost/core/lightweight_test.hpp>
+#include <string.h>
+
+int main( int ac, char const* av[] )
+{
+ BOOST_TEST_EQ( ac, 2 );
+
+ if( ac >= 2 )
+ {
+ BOOST_TEST_CSTR_EQ( av[1], "pumpkin" );
+ }
+
+ return boost::report_errors();
+}
diff --git a/src/boost/tools/cmake/test/boost_test/compile.cpp b/src/boost/tools/cmake/test/boost_test/compile.cpp
new file mode 100644
index 000000000..07df2b88a
--- /dev/null
+++ b/src/boost/tools/cmake/test/boost_test/compile.cpp
@@ -0,0 +1,8 @@
+// Copyright 2018 Peter Dimov
+// Distributed under the Boost Software License, Version 1.0.
+// See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt
+
+int f()
+{
+ return 0;
+}
diff --git a/src/boost/tools/cmake/test/boost_test/compile_fail.cpp b/src/boost/tools/cmake/test/boost_test/compile_fail.cpp
new file mode 100644
index 000000000..58d4181e6
--- /dev/null
+++ b/src/boost/tools/cmake/test/boost_test/compile_fail.cpp
@@ -0,0 +1,8 @@
+// Copyright 2018 Peter Dimov
+// Distributed under the Boost Software License, Version 1.0.
+// See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt
+
+int f()
+{
+ return x;
+}
diff --git a/src/boost/tools/cmake/test/boost_test/emits_warning.cpp b/src/boost/tools/cmake/test/boost_test/emits_warning.cpp
new file mode 100644
index 000000000..91bcf0ccf
--- /dev/null
+++ b/src/boost/tools/cmake/test/boost_test/emits_warning.cpp
@@ -0,0 +1,9 @@
+// Copyright 2019 Peter Dimov
+// Distributed under the Boost Software License, Version 1.0.
+// See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt
+
+int main()
+{
+ int x, y;
+ return x;
+}
diff --git a/src/boost/tools/cmake/test/boost_test/link.cpp b/src/boost/tools/cmake/test/boost_test/link.cpp
new file mode 100644
index 000000000..d843d0c0a
--- /dev/null
+++ b/src/boost/tools/cmake/test/boost_test/link.cpp
@@ -0,0 +1,13 @@
+// Copyright 2018 Peter Dimov
+// Distributed under the Boost Software License, Version 1.0.
+// See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt
+
+int f()
+{
+ return 0;
+}
+
+int main()
+{
+ return f();
+}
diff --git a/src/boost/tools/cmake/test/boost_test/link_fail.cpp b/src/boost/tools/cmake/test/boost_test/link_fail.cpp
new file mode 100644
index 000000000..e271ced9c
--- /dev/null
+++ b/src/boost/tools/cmake/test/boost_test/link_fail.cpp
@@ -0,0 +1,10 @@
+// Copyright 2018 Peter Dimov
+// Distributed under the Boost Software License, Version 1.0.
+// See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt
+
+int f();
+
+int main()
+{
+ return f();
+}
diff --git a/src/boost/tools/cmake/test/boost_test/requires_no_exceptions.cpp b/src/boost/tools/cmake/test/boost_test/requires_no_exceptions.cpp
new file mode 100644
index 000000000..f4ed46110
--- /dev/null
+++ b/src/boost/tools/cmake/test/boost_test/requires_no_exceptions.cpp
@@ -0,0 +1,18 @@
+// Copyright 2019 Peter Dimov
+// Distributed under the Boost Software License, Version 1.0.
+// See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt
+
+#include <boost/config.hpp>
+
+int main()
+{
+#if defined(BOOST_NO_EXCEPTIONS)
+
+ return 0;
+
+#else
+
+ return 1;
+
+#endif
+}
diff --git a/src/boost/tools/cmake/test/boost_test/requires_no_rtti.cpp b/src/boost/tools/cmake/test/boost_test/requires_no_rtti.cpp
new file mode 100644
index 000000000..33030b5e7
--- /dev/null
+++ b/src/boost/tools/cmake/test/boost_test/requires_no_rtti.cpp
@@ -0,0 +1,18 @@
+// Copyright 2019 Peter Dimov
+// Distributed under the Boost Software License, Version 1.0.
+// See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt
+
+#include <boost/config.hpp>
+
+int main()
+{
+#if defined(BOOST_NO_RTTI)
+
+ return 0;
+
+#else
+
+ return 1;
+
+#endif
+}
diff --git a/src/boost/tools/cmake/test/boost_test/requires_variadic_templates.cpp b/src/boost/tools/cmake/test/boost_test/requires_variadic_templates.cpp
new file mode 100644
index 000000000..ce516c60b
--- /dev/null
+++ b/src/boost/tools/cmake/test/boost_test/requires_variadic_templates.cpp
@@ -0,0 +1,13 @@
+// Copyright 2019 Peter Dimov
+// Distributed under the Boost Software License, Version 1.0.
+// See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt
+
+template<class... T> int f()
+{
+ return sizeof...(T);
+}
+
+int main()
+{
+ return f<int, void, float>() == 3? 0: 1;
+}
diff --git a/src/boost/tools/cmake/test/boost_test/return_exit_code.cpp b/src/boost/tools/cmake/test/boost_test/return_exit_code.cpp
new file mode 100644
index 000000000..372988bb2
--- /dev/null
+++ b/src/boost/tools/cmake/test/boost_test/return_exit_code.cpp
@@ -0,0 +1,8 @@
+// Copyright 2019 Peter Dimov
+// Distributed under the Boost Software License, Version 1.0.
+// See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt
+
+int main()
+{
+ return EXIT_CODE;
+}
diff --git a/src/boost/tools/cmake/test/boost_test/run.cpp b/src/boost/tools/cmake/test/boost_test/run.cpp
new file mode 100644
index 000000000..a23cef0dc
--- /dev/null
+++ b/src/boost/tools/cmake/test/boost_test/run.cpp
@@ -0,0 +1,7 @@
+// Copyright 2018 Peter Dimov
+// Distributed under the Boost Software License, Version 1.0.
+// See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt
+
+int main()
+{
+}
diff --git a/src/boost/tools/cmake/test/boost_test/run_fail.cpp b/src/boost/tools/cmake/test/boost_test/run_fail.cpp
new file mode 100644
index 000000000..bdb31cb73
--- /dev/null
+++ b/src/boost/tools/cmake/test/boost_test/run_fail.cpp
@@ -0,0 +1,8 @@
+// Copyright 2018 Peter Dimov
+// Distributed under the Boost Software License, Version 1.0.
+// See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt
+
+int main()
+{
+ return 1;
+}