summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--etc/TestSCons.py10
-rw-r--r--src/CHANGES.txt2
-rw-r--r--test/option-c.py39
-rw-r--r--test/option-n.py9
4 files changed, 27 insertions, 33 deletions
diff --git a/etc/TestSCons.py b/etc/TestSCons.py
index 0a5469b..64bb90d 100644
--- a/etc/TestSCons.py
+++ b/etc/TestSCons.py
@@ -165,18 +165,20 @@ class TestSCons(TestCommon):
return None
return env.Detect([prog])
- def wrap_stdout(self, build_str = "", read_str = "", error = 0):
+ def wrap_stdout(self, build_str = "", read_str = "", error = 0, cleaning = 0):
"""Wraps standard output string(s) in the normal
"Reading ... done" and "Building ... done" strings
"""
+ cap,lc = [ ('Build','build'),
+ ('Clean','clean') ][cleaning]
if error:
- term = "scons: building terminated because of errors.\n"
+ term = "scons: %sing terminated because of errors.\n" % lc
else:
- term = "scons: done building targets.\n"
+ term = "scons: done %sing targets.\n" % lc
return "scons: Reading SConscript files ...\n" + \
read_str + \
"scons: done reading SConscript files.\n" + \
- "scons: Building targets ...\n" + \
+ "scons: %sing targets ...\n" % cap + \
build_str + \
term
diff --git a/src/CHANGES.txt b/src/CHANGES.txt
index 502ef2a..71c03dc 100644
--- a/src/CHANGES.txt
+++ b/src/CHANGES.txt
@@ -135,6 +135,8 @@ RELEASE 0.97 - XXX
- Catch incidents of bad builder creation (without an action) and
supply meaningful error messages.
+ - Better test infrastructure for -c output.
+
From Christoph Wiedemann:
- Add an Environment.SetDefault() method that only sets values if
diff --git a/test/option-c.py b/test/option-c.py
index 26d40ea..30ec6f8 100644
--- a/test/option-c.py
+++ b/test/option-c.py
@@ -72,15 +72,8 @@ test.fail_test(test.read(test.workpath('foo2.xxx')) != "foo2.in\n")
test.fail_test(test.read(test.workpath('foo2.out')) != "foo2.in\n")
test.fail_test(test.read(test.workpath('foo3.out')) != "foo3.in\n")
-def wrap_clean_stdout(string):
- return "scons: Reading SConscript files ...\n" + \
- "scons: done reading SConscript files.\n" + \
- "scons: Cleaning targets ...\n" + \
- string + \
- "scons: done cleaning targets.\n"
-
test.run(arguments = '-c foo1.out',
- stdout = wrap_clean_stdout("Removed foo1.out\n"))
+ stdout = test.wrap_stdout("Removed foo1.out\n", cleaning=1))
test.fail_test(os.path.exists(test.workpath('foo1.out')))
test.fail_test(not os.path.exists(test.workpath('foo2.xxx')))
@@ -88,7 +81,8 @@ test.fail_test(not os.path.exists(test.workpath('foo2.out')))
test.fail_test(not os.path.exists(test.workpath('foo3.out')))
test.run(arguments = '--clean foo2.out foo2.xxx',
- stdout = wrap_clean_stdout("Removed foo2.xxx\nRemoved foo2.out\n"))
+ stdout = test.wrap_stdout("Removed foo2.xxx\nRemoved foo2.out\n",
+ cleaning=1))
test.fail_test(os.path.exists(test.workpath('foo1.out')))
test.fail_test(os.path.exists(test.workpath('foo2.xxx')))
@@ -96,7 +90,7 @@ test.fail_test(os.path.exists(test.workpath('foo2.out')))
test.fail_test(not os.path.exists(test.workpath('foo3.out')))
test.run(arguments = '--remove foo3.out',
- stdout = wrap_clean_stdout("Removed foo3.out\n"))
+ stdout = test.wrap_stdout("Removed foo3.out\n", cleaning=1))
test.fail_test(os.path.exists(test.workpath('foo1.out')))
test.fail_test(os.path.exists(test.workpath('foo2.xxx')))
@@ -115,7 +109,7 @@ if hasattr(os, 'symlink'):
test.fail_test(not os.path.islink(test.workpath('symlink2')))
test.run(arguments = '-c foo2.xxx',
- stdout = wrap_clean_stdout("Removed foo2.xxx\n"))
+ stdout = test.wrap_stdout("Removed foo2.xxx\n", cleaning=1))
test.fail_test(test.read(test.workpath('foo1.out')) != "foo1.in\n")
test.fail_test(os.path.exists(test.workpath('foo2.xxx')))
@@ -134,11 +128,11 @@ if hasattr(os, 'symlink'):
test.run(arguments = 'foo1.out foo2.out foo3.out')
-expect = wrap_clean_stdout("""Removed foo1.out
+expect = test.wrap_stdout("""Removed foo1.out
Removed foo2.xxx
Removed foo2.out
Removed foo3.out
-""")
+""", cleaning=1)
test.run(arguments = '-c -n foo1.out foo2.out foo3.out', stdout = expect)
@@ -152,7 +146,7 @@ test.fail_test(test.read(test.workpath('foo3.out')) != "foo3.in\n")
test.writable('.', 0)
f = open(test.workpath('foo1.out'))
test.run(arguments = '-c foo1.out',
- stdout = wrap_clean_stdout("scons: Could not remove 'foo1.out': Permission denied\n"))
+ stdout = test.wrap_stdout("scons: Could not remove 'foo1.out': Permission denied\n", cleaning=1))
test.fail_test(not os.path.exists(test.workpath('foo1.out')))
f.close()
test.writable('.', 1)
@@ -179,37 +173,40 @@ test.write(['subd', 'SConscript'], """
Clean('.', 'foox.in')
""")
-expect = wrap_clean_stdout("""Removed foo2.xxx
+expect = test.wrap_stdout("""Removed foo2.xxx
Removed aux1.x
Removed aux2.x
-""")
+""", cleaning=1)
test.run(arguments = '-c foo2.xxx', stdout=expect)
test.fail_test(test.read(test.workpath('foo1.out')) != "foo1.in\n")
test.fail_test(os.path.exists(test.workpath('foo2.xxx')))
test.fail_test(test.read(test.workpath('foo2.out')) != "foo2.in\n")
test.fail_test(test.read(test.workpath('foo3.out')) != "foo3.in\n")
-expect = wrap_clean_stdout("Removed %s\n" % os.path.join('subd', 'foox.in'))
+expect = test.wrap_stdout("Removed %s\n" % os.path.join('subd', 'foox.in'),
+ cleaning = 1)
test.run(arguments = '-c subd', stdout=expect)
test.fail_test(os.path.exists(test.workpath('foox.in')))
-expect = wrap_clean_stdout("""Removed foo1.out
+expect = test.wrap_stdout("""Removed foo1.out
Removed foo2.xxx
Removed foo2.out
Removed foo3.out
Removed %s
Removed %s
Removed directory subd
-""" % (os.path.join('subd','SConscript'), os.path.join('subd', 'foon.in')))
+""" % (os.path.join('subd','SConscript'), os.path.join('subd', 'foon.in')),
+ cleaning = 1)
test.run(arguments = '-c -n .', stdout=expect)
-expect = wrap_clean_stdout("""Removed foo1.out
+expect = test.wrap_stdout("""Removed foo1.out
Removed foo2.out
Removed foo3.out
Removed %s
Removed %s
Removed directory subd
-""" % (os.path.join('subd','SConscript'), os.path.join('subd', 'foon.in')))
+""" % (os.path.join('subd','SConscript'), os.path.join('subd', 'foon.in')),
+ cleaning = 1)
test.run(arguments = '-c .', stdout=expect)
test.fail_test(os.path.exists(test.workpath('subdir', 'foon.in')))
test.fail_test(os.path.exists(test.workpath('subdir')))
diff --git a/test/option-n.py b/test/option-n.py
index 8730c83..aa0b8f2 100644
--- a/test/option-n.py
+++ b/test/option-n.py
@@ -125,14 +125,7 @@ test.write('f1.out', "X1.out\n")
test.run(arguments = '-n f1.out', stdout = expect)
test.run(arguments = '-n f1.out', stdout = expect)
-def wrap_clean_stdout(string):
- return "scons: Reading SConscript files ...\n" + \
- "scons: done reading SConscript files.\n" + \
- "scons: Cleaning targets ...\n" + \
- string + \
- "scons: done cleaning targets.\n"
-
-expect = wrap_clean_stdout("Removed f1.out\nRemoved f2.out\n")
+expect = test.wrap_stdout("Removed f1.out\nRemoved f2.out\n", cleaning=1)
test.run(arguments = '-n -c ' + args, stdout = expect)