summaryrefslogtreecommitdiffstats
path: root/test/option-j.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/option-j.py')
-rw-r--r--test/option-j.py68
1 files changed, 68 insertions, 0 deletions
diff --git a/test/option-j.py b/test/option-j.py
new file mode 100644
index 0000000..ae403a6
--- /dev/null
+++ b/test/option-j.py
@@ -0,0 +1,68 @@
+#!/usr/bin/env python
+
+__revision__ = "test/option-j.py __REVISION__ __DATE__ __DEVELOPER__"
+
+import TestCmd
+import string
+import sys
+
+
+try:
+ import threading
+except ImportError:
+ # if threads are not supported, then
+ # there is nothing to test
+ TestCmd.no_result()
+ sys.exit()
+
+
+test = TestCmd.TestCmd(program = 'scons.py',
+ workdir = '',
+ interpreter = 'python')
+
+test.write('build.py', r"""
+import time
+import sys
+file = open(sys.argv[1], 'w')
+file.write(str(time.time()) + '\n')
+time.sleep(1)
+file.write(str(time.time()))
+file.close()
+""")
+
+test.write('SConstruct', """
+MyBuild = Builder(name = "MyBuild",
+ action = "python build.py %(target)s")
+env = Environment(BUILDERS = [MyBuild])
+env.MyBuild(target = 'f1', source = 'f1.in')
+env.MyBuild(target = 'f2', source = 'f2.in')
+""")
+
+def RunTest(args):
+ test.write('f1.in', 'f1.in')
+ test.write('f2.in', 'f2.in')
+
+ test.run(chdir = '.', arguments = args)
+
+ str = test.read("f1")
+ start1,finish1 = map(float, string.split(str, "\n"))
+
+ str = test.read("f2")
+ start2,finish2 = map(float, string.split(str, "\n"))
+
+ return start2, finish1
+
+start2, finish1 = RunTest('-j 2 f1 f2')
+
+# fail if the second file was not started
+# before the first one was finished
+test.fail_test(not (start2 < finish1))
+
+start2, finish1 = RunTest('f1 f2')
+
+# fail if the second file was started
+# before the first one was finished
+test.fail_test(start2 < finish1)
+
+test.pass_test()
+