diff options
author | Daniel Mensinger <daniel@mensinger-ka.de> | 2019-06-29 17:39:57 +0200 |
---|---|---|
committer | Dylan Baker <dylan@pnwbakers.com> | 2019-07-01 11:28:54 -0700 |
commit | 54b1c43277d16dcef2d8acc98d131ab9232d2fac (patch) | |
tree | ee010cc42a385159b096d2b77a84eda59cec215d /run_unittests.py | |
parent | ba6c0cab8fd516c414c3f5cb76bebc0d93b50e30 (diff) | |
download | meson-54b1c43277d16dcef2d8acc98d131ab9232d2fac.zip meson-54b1c43277d16dcef2d8acc98d131ab9232d2fac.tar.gz meson-54b1c43277d16dcef2d8acc98d131ab9232d2fac.tar.bz2 |
mintro: Add installed subdirs introspection (fixes #5556)
Diffstat (limited to 'run_unittests.py')
-rwxr-xr-x | run_unittests.py | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/run_unittests.py b/run_unittests.py index 602c6b7..90e5c9d 100755 --- a/run_unittests.py +++ b/run_unittests.py @@ -1695,6 +1695,34 @@ class AllPlatformTests(BasePlatformTests): self.assertPathListEqual(intro[0]['install_filename'], ['/usr/lib/libstat.a']) self.assertPathListEqual(intro[1]['install_filename'], ['/usr/bin/prog' + exe_suffix]) + def test_install_subdir_introspection(self): + ''' + Test that the Meson introspection API also contains subdir install information + https://github.com/mesonbuild/meson/issues/5556 + ''' + testdir = os.path.join(self.common_test_dir, '63 install subdir') + self.init(testdir) + intro = self.introspect('--installed') + expected = { + 'sub2': 'share/sub2', + 'subdir/sub1': 'share/sub1', + 'subdir/sub_elided': 'share', + 'sub1': 'share/sub1', + 'sub/sub1': 'share/sub1', + 'sub_elided': 'share', + 'nested_elided/sub': 'share', + } + + self.assertEqual(len(intro), len(expected)) + + # Convert expected to PurePath + expected_converted = {PurePath(os.path.join(testdir, key)): PurePath(os.path.join(self.prefix, val)) for key, val in expected.items()} + intro_converted = {PurePath(key): PurePath(val) for key, val in intro.items()} + + for src, dst in expected_converted.items(): + self.assertIn(src, intro_converted) + self.assertEqual(dst, intro_converted[src]) + def test_install_introspection_multiple_outputs(self): ''' Tests that the Meson introspection API exposes multiple install filenames correctly without crashing |