diff options
Diffstat (limited to '')
-rwxr-xr-x | src/boost/tools/build/test/core_parallel_actions.py | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/src/boost/tools/build/test/core_parallel_actions.py b/src/boost/tools/build/test/core_parallel_actions.py new file mode 100755 index 000000000..4f1627c20 --- /dev/null +++ b/src/boost/tools/build/test/core_parallel_actions.py @@ -0,0 +1,103 @@ +#!/usr/bin/python + +# Copyright 2006 Rene Rivera. +# Copyright 2011 Steven Watanabe +# 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) + +import BoostBuild + +t = BoostBuild.Tester(["-d1"], pass_toolset=0) + +t.write("sleep.bat", """\ +::@timeout /T %1 /NOBREAK >nul +@ping 127.0.0.1 -n 2 -w 1000 >nul +@ping 127.0.0.1 -n %1 -w 1000 >nul +@exit /B 0 +""") + +t.write("file.jam", """\ +if $(NT) +{ + actions sleeper + { + echo [$(<:S)] 0 + call sleep.bat 1 + echo [$(<:S)] 1 + call sleep.bat 1 + echo [$(<:S)] 2 + call sleep.bat $(<:B) + } +} +else +{ + actions sleeper + { + echo "[$(<:S)] 0" + sleep 1 + echo "[$(<:S)] 1" + sleep 1 + echo "[$(<:S)] 2" + sleep $(<:B) + } +} + +rule sleeper +{ + DEPENDS $(<) : $(>) ; +} + +NOTFILE front ; +sleeper 1.a : front ; +sleeper 2.a : front ; +sleeper 3.a : front ; +sleeper 4.a : front ; +NOTFILE choke ; +DEPENDS choke : 1.a 2.a 3.a 4.a ; +sleeper 1.b : choke ; +sleeper 2.b : choke ; +sleeper 3.b : choke ; +sleeper 4.b : choke ; +DEPENDS bottom : 1.b 2.b 3.b 4.b ; +DEPENDS all : bottom ; +""") + +t.run_build_system(["-ffile.jam", "-j4"], stdout="""\ +...found 12 targets... +...updating 8 targets... +sleeper 1.a +[.a] 0 +[.a] 1 +[.a] 2 +sleeper 2.a +[.a] 0 +[.a] 1 +[.a] 2 +sleeper 3.a +[.a] 0 +[.a] 1 +[.a] 2 +sleeper 4.a +[.a] 0 +[.a] 1 +[.a] 2 +sleeper 1.b +[.b] 0 +[.b] 1 +[.b] 2 +sleeper 2.b +[.b] 0 +[.b] 1 +[.b] 2 +sleeper 3.b +[.b] 0 +[.b] 1 +[.b] 2 +sleeper 4.b +[.b] 0 +[.b] 1 +[.b] 2 +...updated 8 targets... +""") + +t.cleanup() |