diff options
author | Marco Trevisan (Treviño) <mail@3v1n0.net> | 2018-08-16 04:05:28 +0200 |
---|---|---|
committer | Nirbheek Chauhan <nirbheek@centricular.com> | 2018-08-24 03:25:37 +0530 |
commit | b728e0c47f183b4bdd35d5aa83801626f2ecc85b (patch) | |
tree | 21900be806e26d8538e9df86fc146bcf3f24f793 | |
parent | bb8ef9f73bd8173c57bc83ffbfdf22278040dbf8 (diff) | |
download | meson-b728e0c47f183b4bdd35d5aa83801626f2ecc85b.zip meson-b728e0c47f183b4bdd35d5aa83801626f2ecc85b.tar.gz meson-b728e0c47f183b4bdd35d5aa83801626f2ecc85b.tar.bz2 |
unittests: test_install_subdir_symlinks_with_default_umask
Add test to verify the installation of broken symlinks when a default_umask
is set.
Reusing the same code of other test, thus sharing the actual test code
in a single function.
-rwxr-xr-x | run_unittests.py | 22 | ||||
-rw-r--r-- | test cases/common/201 install_mode/installed_files.txt | 1 | ||||
-rw-r--r-- | test cases/common/201 install_mode/meson.build | 3 | ||||
-rw-r--r-- | test cases/common/201 install_mode/sub2/stub | 0 |
4 files changed, 20 insertions, 6 deletions
diff --git a/run_unittests.py b/run_unittests.py index 56bdf79..775d316 100755 --- a/run_unittests.py +++ b/run_unittests.py @@ -3703,32 +3703,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('201 install_mode', 'sub2') + + def test_install_subdir_symlinks_with_default_umask_and_mode(self): + self.install_subdir_invalid_symlinks('201 install_mode', 'sub1') + class LinuxArmCrossCompileTests(BasePlatformTests): ''' diff --git a/test cases/common/201 install_mode/installed_files.txt b/test cases/common/201 install_mode/installed_files.txt index 00fb231..724d954 100644 --- a/test cases/common/201 install_mode/installed_files.txt +++ b/test cases/common/201 install_mode/installed_files.txt @@ -5,4 +5,5 @@ usr/include/rootdir.h usr/libtest/libstat.a usr/share/man/man1/foo.1.gz usr/share/sub1/second.dat +usr/share/sub2/stub usr/subdir/data.dat diff --git a/test cases/common/201 install_mode/meson.build b/test cases/common/201 install_mode/meson.build index d06371f..18a2948 100644 --- a/test cases/common/201 install_mode/meson.build +++ b/test cases/common/201 install_mode/meson.build @@ -11,6 +11,9 @@ install_subdir('sub1', install_dir : 'share', install_mode : ['rwxr-x--t', 'root']) +install_subdir('sub2', + install_dir : 'share') + # test install_mode in configure_file conf = configuration_data() conf.set('var', 'mystring') diff --git a/test cases/common/201 install_mode/sub2/stub b/test cases/common/201 install_mode/sub2/stub new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test cases/common/201 install_mode/sub2/stub |