summaryrefslogtreecommitdiff
path: root/tools/build/v2/test/engine/parallel_multifile_actions_2.jam
diff options
context:
space:
mode:
Diffstat (limited to 'tools/build/v2/test/engine/parallel_multifile_actions_2.jam')
-rw-r--r--tools/build/v2/test/engine/parallel_multifile_actions_2.jam49
1 files changed, 49 insertions, 0 deletions
diff --git a/tools/build/v2/test/engine/parallel_multifile_actions_2.jam b/tools/build/v2/test/engine/parallel_multifile_actions_2.jam
new file mode 100644
index 0000000000..a85cf63fdb
--- /dev/null
+++ b/tools/build/v2/test/engine/parallel_multifile_actions_2.jam
@@ -0,0 +1,49 @@
+# Copyright 2008 Jurko Gospodnetic, Vladimir Prus
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+
+# Added to guard against a bug causing targets to be used before they
+# themselves have finished building. This used to happen for targets built by a
+# multi-file action that got triggered by another target, except when the target
+# triggering the action was the first one in the list of targets produced by
+# that action.
+#
+# Example:
+# When target A and target B were declared as created by a single action with
+# A being the first one listed, and target B triggered running that action then
+# while the action was still running, target A was already reporting as being
+# built causing other targets depending on target A to be built prematurely.
+
+if ! $(BJAM_SUBTEST)
+{
+ ECHO --- Testing -jN parallel execution of multi-file actions - 2... ;
+
+ assert "...found 4 targets...
+...updating 3 targets...
+link dll
+001 - linked
+install installed_dll
+002 - installed
+...updated 3 targets...
+" : (==) : [ SHELL "\"$(ARGV[1])\" -f parallel_multifile_actions_2.jam -sBJAM_SUBTEST=1 -j2" ] ;
+}
+else
+{
+ actions link
+ {
+ sleep 1
+ echo 001 - linked
+ }
+
+ link dll lib ;
+
+ actions install
+ {
+ echo 002 - installed
+ }
+
+ install installed_dll : dll ;
+ DEPENDS installed_dll : dll ;
+
+ DEPENDS all : lib installed_dll ;
+}