summaryrefslogtreecommitdiffstats
path: root/QMTest
diff options
context:
space:
mode:
authorGary Oberbrunner <garyo@oberbrunner.com>2011-02-13 19:27:20 (GMT)
committerGary Oberbrunner <garyo@oberbrunner.com>2011-02-13 19:27:20 (GMT)
commit18097a7686a70d499f8fc83001bf517b06a61864 (patch)
tree9ae7588527a58bbc44eb5af1efed3632b652f45d /QMTest
parent2314323fb1826ab4e1950fe79637292a9e19d9a5 (diff)
downloadSCons-18097a7686a70d499f8fc83001bf517b06a61864.zip
SCons-18097a7686a70d499f8fc83001bf517b06a61864.tar.gz
SCons-18097a7686a70d499f8fc83001bf517b06a61864.tar.bz2
Apply patch from issue #2710. Test harness fixes only, no user impact (no doc/changelog). Predecessor to fixing #2708.
Diffstat (limited to 'QMTest')
-rw-r--r--QMTest/TestCommon.py4
-rw-r--r--QMTest/TestCommonTests.py33
2 files changed, 35 insertions, 2 deletions
diff --git a/QMTest/TestCommon.py b/QMTest/TestCommon.py
index 37d3f9c..c677226 100644
--- a/QMTest/TestCommon.py
+++ b/QMTest/TestCommon.py
@@ -417,7 +417,7 @@ class TestCommon(TestCmd):
if any of the files does not exist.
"""
files = [is_List(x) and os.path.join(*x) or x for x in files]
- missing = [x for x in files if not os.path.exists(x)]
+ missing = [x for x in files if not os.path.exists(x) and not os.path.islink(x) ]
if missing:
print "Missing files: `%s'" % "', `".join(missing)
self.fail_test(missing)
@@ -493,7 +493,7 @@ class TestCommon(TestCmd):
Exits FAILED if any of the files exists.
"""
files = [is_List(x) and os.path.join(*x) or x for x in files]
- existing = list(filter(os.path.exists, files))
+ existing = [x for x in files if os.path.exists(x) or os.path.islink(x)]
if existing:
print "Unexpected files exist: `%s'" % "', `".join(existing)
self.fail_test(existing)
diff --git a/QMTest/TestCommonTests.py b/QMTest/TestCommonTests.py
index 8bf64fc..a19fc83 100644
--- a/QMTest/TestCommonTests.py
+++ b/QMTest/TestCommonTests.py
@@ -974,6 +974,23 @@ class must_exist_TestCase(TestCommonTestCase):
stderr = run_env.stderr()
assert stderr == "PASSED\n", stderr
+ def test_broken_link(self) :
+ """Test must_exist(): exists but it is a broken link"""
+ run_env = self.run_env
+
+ script = lstrip("""\
+ from TestCommon import TestCommon
+ tc = TestCommon(workdir='')
+ tc.symlink('badtarget', "brokenlink")
+ tc.must_exist('brokenlink')
+ tc.pass_test()
+ """)
+ run_env.run(program=sys.executable, stdin=script)
+ stdout = run_env.stdout()
+ assert stdout == "", stdout
+ stderr = run_env.stderr()
+ assert stderr == "PASSED\n", stderr
+
class must_match_TestCase(TestCommonTestCase):
@@ -1498,6 +1515,22 @@ class must_not_exist_TestCase(TestCommonTestCase):
stderr = run_env.stderr()
assert stderr == "PASSED\n", stderr
+ def test_existing_broken_link(self):
+ """Test must_not_exist(): exists but it is a broken link"""
+ run_env = self.run_env
+
+ script = lstrip("""\
+ from TestCommon import TestCommon
+ tc = TestCommon(workdir='')
+ tc.symlink('badtarget', 'brokenlink')
+ tc.must_not_exist('brokenlink')
+ tc.pass_test()
+ """)
+ run_env.run(program=sys.executable, stdin=script)
+ stdout = run_env.stdout()
+ assert stdout == "Unexpected files exist: `brokenlink'\n", stdout
+ stderr = run_env.stderr()
+ assert stderr.find("FAILED") != -1, stderr
class run_TestCase(TestCommonTestCase):