diff options
Diffstat (limited to 'unittests')
-rw-r--r-- | unittests/allplatformstests.py | 1 | ||||
-rw-r--r-- | unittests/platformagnostictests.py | 35 |
2 files changed, 36 insertions, 0 deletions
diff --git a/unittests/allplatformstests.py b/unittests/allplatformstests.py index ea9d795..0581caf 100644 --- a/unittests/allplatformstests.py +++ b/unittests/allplatformstests.py @@ -2046,6 +2046,7 @@ class AllPlatformTests(BasePlatformTests): self.assertFalse(os.path.isfile(promoted_wrap)) subprocess.check_call(self.wrap_command + ['promote', 'athing'], cwd=workdir) self.assertTrue(os.path.isfile(promoted_wrap)) + self.new_builddir() # Ensure builddir is not parent or workdir self.init(workdir) self.build() diff --git a/unittests/platformagnostictests.py b/unittests/platformagnostictests.py index 9fb24f3..1dc8eb0 100644 --- a/unittests/platformagnostictests.py +++ b/unittests/platformagnostictests.py @@ -163,3 +163,38 @@ class PlatformAgnosticTests(BasePlatformTests): # Wipe with a different backend is allowed self.init(testdir, extra_args=['--wipe', '--backend=none']) + + def test_validate_dirs(self): + testdir = os.path.join(self.common_test_dir, '1 trivial') + + # Using parent as builddir should fail + self.builddir = os.path.dirname(self.builddir) + with self.assertRaises(subprocess.CalledProcessError) as cm: + self.init(testdir) + self.assertIn('cannot be a parent of source directory', cm.exception.stdout) + + # Reconfigure of empty builddir should work + self.new_builddir() + self.init(testdir, extra_args=['--reconfigure']) + + # Reconfigure of not empty builddir should work + self.new_builddir() + Path(self.builddir, 'dummy').touch() + self.init(testdir, extra_args=['--reconfigure']) + + # Wipe of empty builddir should work + self.new_builddir() + self.init(testdir, extra_args=['--wipe']) + + # Wipe of partial builddir should work + self.new_builddir() + Path(self.builddir, 'meson-private').mkdir() + Path(self.builddir, 'dummy').touch() + self.init(testdir, extra_args=['--wipe']) + + # Wipe of not empty builddir should fail + self.new_builddir() + Path(self.builddir, 'dummy').touch() + with self.assertRaises(subprocess.CalledProcessError) as cm: + self.init(testdir, extra_args=['--wipe']) + self.assertIn('Directory is not empty', cm.exception.stdout) |