aboutsummaryrefslogtreecommitdiff
path: root/run_unittests.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2018-08-18 23:39:06 +0300
committerGitHub <noreply@github.com>2018-08-18 23:39:06 +0300
commit15243e0acc4c00bf0e3ac3421712d51a7c1221e8 (patch)
tree17dfc34252e10619038b1dc39e5449056acc081d /run_unittests.py
parentd83f77109a7ac22da53acfad8f7ff078d929cd9d (diff)
parentabf65c92af298683fa9ffa5e360ce6c836a1d2fa (diff)
downloadmeson-15243e0acc4c00bf0e3ac3421712d51a7c1221e8.zip
meson-15243e0acc4c00bf0e3ac3421712d51a7c1221e8.tar.gz
meson-15243e0acc4c00bf0e3ac3421712d51a7c1221e8.tar.bz2
Merge pull request #4030 from 3v1n0/broken-symlink-install-with-mode-fix
Fix broken symlinks install when using install_umask or install_mode
Diffstat (limited to 'run_unittests.py')
-rwxr-xr-xrun_unittests.py22
1 files changed, 16 insertions, 6 deletions
diff --git a/run_unittests.py b/run_unittests.py
index ab71882..411fd61 100755
--- a/run_unittests.py
+++ b/run_unittests.py
@@ -3831,32 +3831,42 @@ endian = 'little'
# Ensure that the otool output does not contain self.installdir
self.assertNotRegex(out, self.installdir + '.*dylib ')
- def test_install_subdir_symlinks(self):
+ def install_subdir_invalid_symlinks(self, testdir, subdir_path):
'''
Test that installation of broken symlinks works fine.
https://github.com/mesonbuild/meson/issues/3914
'''
- testdir = os.path.join(self.common_test_dir, '66 install subdir')
- subdir = os.path.join(testdir, 'sub/sub1')
+ testdir = os.path.join(self.common_test_dir, testdir)
+ subdir = os.path.join(testdir, subdir_path)
curdir = os.getcwd()
os.chdir(subdir)
# Can't distribute broken symlinks in the source tree because it breaks
# the creation of zipapps. Create it dynamically and run the test by
# hand.
src = '../../nonexistent.txt'
- os.symlink(src, 'test.txt')
+ os.symlink(src, 'invalid-symlink.txt')
try:
self.init(testdir)
self.build()
self.install()
- link = os.path.join(self.installdir, 'usr', 'share', 'sub1', 'test.txt')
+ install_path = subdir_path.split(os.path.sep)[-1]
+ link = os.path.join(self.installdir, 'usr', 'share', install_path, 'invalid-symlink.txt')
self.assertTrue(os.path.islink(link), msg=link)
self.assertEqual(src, os.readlink(link))
self.assertFalse(os.path.isfile(link), msg=link)
finally:
- os.remove(os.path.join(subdir, 'test.txt'))
+ os.remove(os.path.join(subdir, 'invalid-symlink.txt'))
os.chdir(curdir)
+ def test_install_subdir_symlinks(self):
+ self.install_subdir_invalid_symlinks('66 install subdir', os.path.join('sub', 'sub1'))
+
+ def test_install_subdir_symlinks_with_default_umask(self):
+ self.install_subdir_invalid_symlinks('199 install_mode', 'sub2')
+
+ def test_install_subdir_symlinks_with_default_umask_and_mode(self):
+ self.install_subdir_invalid_symlinks('199 install_mode', 'sub1')
+
class LinuxCrossArmTests(BasePlatformTests):
'''