diff options
author | Nirbheek Chauhan <nirbheek@centricular.com> | 2018-08-12 01:29:00 +0530 |
---|---|---|
committer | Nirbheek Chauhan <nirbheek.chauhan@gmail.com> | 2018-08-15 04:57:23 -0700 |
commit | d03cf0459838d0b786e5f8cc9cc2dd443dda4585 (patch) | |
tree | a02448c0410ce13fdd0b214e758c391872c0bf42 /run_unittests.py | |
parent | 4f088365e49d28e0d413d42eb024c3ff6cbfee35 (diff) | |
download | meson-d03cf0459838d0b786e5f8cc9cc2dd443dda4585.zip meson-d03cf0459838d0b786e5f8cc9cc2dd443dda4585.tar.gz meson-d03cf0459838d0b786e5f8cc9cc2dd443dda4585.tar.bz2 |
install_subdir: Also copy dangling symlinks
Fixes https://github.com/mesonbuild/meson/issues/3914
Diffstat (limited to 'run_unittests.py')
-rwxr-xr-x | run_unittests.py | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/run_unittests.py b/run_unittests.py index 63547ee..d768028 100755 --- a/run_unittests.py +++ b/run_unittests.py @@ -3779,6 +3779,32 @@ endian = 'little' # Ensure that the otool output does not contain self.installdir self.assertNotRegex(out, self.installdir + '.*dylib ') + def test_install_subdir_symlinks(self): + ''' + 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') + 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') + try: + self.init(testdir) + self.build() + self.install() + link = os.path.join(self.installdir, 'usr', 'share', 'sub1', 'test.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.chdir(curdir) + class LinuxCrossArmTests(BasePlatformTests): ''' |