diff options
Diffstat (limited to 'test/option-j.py')
-rw-r--r-- | test/option-j.py | 68 |
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() + |