summaryrefslogtreecommitdiffstats
path: root/src/boost/tools/build/test/feature_force_include.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/boost/tools/build/test/feature_force_include.py')
-rw-r--r--src/boost/tools/build/test/feature_force_include.py41
1 files changed, 41 insertions, 0 deletions
diff --git a/src/boost/tools/build/test/feature_force_include.py b/src/boost/tools/build/test/feature_force_include.py
new file mode 100644
index 000000000..03aea4891
--- /dev/null
+++ b/src/boost/tools/build/test/feature_force_include.py
@@ -0,0 +1,41 @@
+#!/usr/bin/env python
+
+# Copyright 2020 Nikita Kniazev
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE.txt or copy at
+# https://www.bfgroup.xyz/b2/LICENSE.txt)
+
+# Tests the force-include feature
+
+import BoostBuild
+
+t = BoostBuild.Tester(use_test_config=False)
+
+t.write("Jamroot.jam", """
+obj test-cpp : test.cpp : <force-include>one.h <force-include>two.h ;
+obj test-c : test.c : <force-include>one.h <force-include>two.h ;
+""")
+
+for name in ("test.cpp", "test.c"):
+ t.write(name, """
+#ifndef ONE
+#error Cannot compile without ONE
+#endif
+#ifndef TWO
+#error Cannot compile without TWO
+#endif
+""")
+
+t.write("one.h", """
+#define ONE
+""")
+
+t.write("two.h", """
+#define TWO
+""")
+
+t.run_build_system()
+t.expect_addition("bin/$toolset/debug*/test-cpp.obj")
+t.expect_addition("bin/$toolset/debug*/test-c.obj")
+
+t.cleanup()