diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2018-08-18 23:39:06 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-08-18 23:39:06 +0300 |
commit | 15243e0acc4c00bf0e3ac3421712d51a7c1221e8 (patch) | |
tree | 17dfc34252e10619038b1dc39e5449056acc081d /run_unittests.py | |
parent | d83f77109a7ac22da53acfad8f7ff078d929cd9d (diff) | |
parent | abf65c92af298683fa9ffa5e360ce6c836a1d2fa (diff) | |
download | meson-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-x | run_unittests.py | 22 |
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): ''' |