summaryrefslogtreecommitdiff
path: root/tests/scanner/test_shlibs.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/scanner/test_shlibs.py')
-rw-r--r--tests/scanner/test_shlibs.py31
1 files changed, 26 insertions, 5 deletions
diff --git a/tests/scanner/test_shlibs.py b/tests/scanner/test_shlibs.py
index f3fb0d2e..a8337c60 100644
--- a/tests/scanner/test_shlibs.py
+++ b/tests/scanner/test_shlibs.py
@@ -1,6 +1,8 @@
import unittest
+import sys
+import os
-from giscanner.shlibs import resolve_from_ldd_output
+from giscanner.shlibs import resolve_from_ldd_output, sanitize_shlib_path
class TestLddParser(unittest.TestCase):
@@ -18,6 +20,28 @@ class TestLddParser(unittest.TestCase):
['libglib-2.0.so.0', 'libgtk-3.so.0', 'libpango-1.0.so.0'],
resolve_from_ldd_output(libraries, output))
+ @unittest.skipUnless(os.name == "posix", "posix only")
+ def test_resolve_from_ldd_output_macos_rpath(self):
+ output = '''\
+ @rpath/libbarapp-1.0.dylib (compatibility version 0.0.0, current version 0.0.0)
+ /foo/libgio-2.0.0.dylib (compatibility version 5801.0.0, current version 5801.3.0)
+ /foo/libgmodule-2.0.0.dylib (compatibility version 5801.0.0, current version 5801.3.0)'''
+
+ libraries = ['barapp-1.0']
+ shlibs = resolve_from_ldd_output(libraries, output)
+ self.assertEqual(shlibs, ['@rpath/libbarapp-1.0.dylib'])
+ self.assertEqual(sanitize_shlib_path(shlibs[0]), 'libbarapp-1.0.dylib')
+
+ @unittest.skipUnless(os.name == "posix", "posix only")
+ def test_sanitize_shlib_path(self):
+ self.assertEqual(
+ sanitize_shlib_path('@rpath/libbarapp-1.0.dylib'),
+ 'libbarapp-1.0.dylib')
+
+ self.assertEqual(
+ sanitize_shlib_path('/foo/bar'),
+ '/foo/bar' if sys.platform == 'darwin' else 'bar')
+
def test_unresolved_library(self):
output = ''
libraries = ['foo']
@@ -87,10 +111,7 @@ class TestLddParser(unittest.TestCase):
self.assertEqual(
['/usr/lib/libfoo.so'],
- resolve_from_ldd_output(['foo'], output, basename=False))
- self.assertEqual(
- ['libfoo.so'],
- resolve_from_ldd_output(['foo'], output, basename=True))
+ resolve_from_ldd_output(['foo'], output))
if __name__ == '__main__':