Buildcache: add unit tests for normalized path functions in relocate.py (#15607)
This commit is contained in:
parent
76c9e6d871
commit
e2125c26ce
@ -26,7 +26,9 @@
|
|||||||
from spack.relocate import needs_binary_relocation, needs_text_relocation
|
from spack.relocate import needs_binary_relocation, needs_text_relocation
|
||||||
from spack.relocate import relocate_text, relocate_links
|
from spack.relocate import relocate_text, relocate_links
|
||||||
from spack.relocate import get_relative_elf_rpaths
|
from spack.relocate import get_relative_elf_rpaths
|
||||||
|
from spack.relocate import get_normalized_elf_rpaths
|
||||||
from spack.relocate import macho_make_paths_relative
|
from spack.relocate import macho_make_paths_relative
|
||||||
|
from spack.relocate import macho_make_paths_normal
|
||||||
from spack.relocate import set_placeholder, macho_find_paths
|
from spack.relocate import set_placeholder, macho_find_paths
|
||||||
from spack.relocate import file_is_relocatable
|
from spack.relocate import file_is_relocatable
|
||||||
|
|
||||||
@ -471,7 +473,7 @@ def test_replace_paths(tmpdir):
|
|||||||
|
|
||||||
|
|
||||||
def test_macho_make_paths():
|
def test_macho_make_paths():
|
||||||
out = macho_make_paths_relative('/Users/Shares/spack/pkgC/lib/libC.dylib',
|
out = macho_make_paths_relative('/Users/Shared/spack/pkgC/lib/libC.dylib',
|
||||||
'/Users/Shared/spack',
|
'/Users/Shared/spack',
|
||||||
('/Users/Shared/spack/pkgA/lib',
|
('/Users/Shared/spack/pkgA/lib',
|
||||||
'/Users/Shared/spack/pkgB/lib',
|
'/Users/Shared/spack/pkgB/lib',
|
||||||
@ -481,19 +483,43 @@ def test_macho_make_paths():
|
|||||||
'/usr/local/lib/libloco.dylib'),
|
'/usr/local/lib/libloco.dylib'),
|
||||||
'/Users/Shared/spack/pkgC/lib/libC.dylib')
|
'/Users/Shared/spack/pkgC/lib/libC.dylib')
|
||||||
assert out == {'/Users/Shared/spack/pkgA/lib':
|
assert out == {'/Users/Shared/spack/pkgA/lib':
|
||||||
'@loader_path/../../../../Shared/spack/pkgA/lib',
|
'@loader_path/../../pkgA/lib',
|
||||||
'/Users/Shared/spack/pkgB/lib':
|
'/Users/Shared/spack/pkgB/lib':
|
||||||
'@loader_path/../../../../Shared/spack/pkgB/lib',
|
'@loader_path/../../pkgB/lib',
|
||||||
'/usr/local/lib': '/usr/local/lib',
|
'/usr/local/lib': '/usr/local/lib',
|
||||||
'/Users/Shared/spack/pkgA/libA.dylib':
|
'/Users/Shared/spack/pkgA/libA.dylib':
|
||||||
'@loader_path/../../../../Shared/spack/pkgA/libA.dylib',
|
'@loader_path/../../pkgA/libA.dylib',
|
||||||
'/Users/Shared/spack/pkgB/libB.dylib':
|
'/Users/Shared/spack/pkgB/libB.dylib':
|
||||||
'@loader_path/../../../../Shared/spack/pkgB/libB.dylib',
|
'@loader_path/../../pkgB/libB.dylib',
|
||||||
'/usr/local/lib/libloco.dylib':
|
'/usr/local/lib/libloco.dylib':
|
||||||
'/usr/local/lib/libloco.dylib',
|
'/usr/local/lib/libloco.dylib',
|
||||||
'/Users/Shared/spack/pkgC/lib/libC.dylib':
|
'/Users/Shared/spack/pkgC/lib/libC.dylib':
|
||||||
'@rpath/libC.dylib'}
|
'@rpath/libC.dylib'}
|
||||||
|
|
||||||
|
out = macho_make_paths_normal('/Users/Shared/spack/pkgC/lib/libC.dylib',
|
||||||
|
('@loader_path/../../pkgA/lib',
|
||||||
|
'@loader_path/../../pkgB/lib',
|
||||||
|
'/usr/local/lib'),
|
||||||
|
('@loader_path/../../pkgA/libA.dylib',
|
||||||
|
'@loader_path/../../pkgB/libB.dylib',
|
||||||
|
'/usr/local/lib/libloco.dylib'),
|
||||||
|
'@rpath/libC.dylib')
|
||||||
|
|
||||||
|
assert out == {'@rpath/libC.dylib':
|
||||||
|
'/Users/Shared/spack/pkgC/lib/libC.dylib',
|
||||||
|
'@loader_path/../../pkgA/lib':
|
||||||
|
'/Users/Shared/spack/pkgA/lib',
|
||||||
|
'@loader_path/../../pkgB/lib':
|
||||||
|
'/Users/Shared/spack/pkgB/lib',
|
||||||
|
'/usr/local/lib': '/usr/local/lib',
|
||||||
|
'@loader_path/../../pkgA/libA.dylib':
|
||||||
|
'/Users/Shared/spack/pkgA/libA.dylib',
|
||||||
|
'@loader_path/../../pkgB/libB.dylib':
|
||||||
|
'/Users/Shared/spack/pkgB/libB.dylib',
|
||||||
|
'/usr/local/lib/libloco.dylib':
|
||||||
|
'/usr/local/lib/libloco.dylib'
|
||||||
|
}
|
||||||
|
|
||||||
out = macho_make_paths_relative('/Users/Shared/spack/pkgC/bin/exeC',
|
out = macho_make_paths_relative('/Users/Shared/spack/pkgC/bin/exeC',
|
||||||
'/Users/Shared/spack',
|
'/Users/Shared/spack',
|
||||||
('/Users/Shared/spack/pkgA/lib',
|
('/Users/Shared/spack/pkgA/lib',
|
||||||
@ -515,9 +541,35 @@ def test_macho_make_paths():
|
|||||||
'/usr/local/lib/libloco.dylib':
|
'/usr/local/lib/libloco.dylib':
|
||||||
'/usr/local/lib/libloco.dylib'}
|
'/usr/local/lib/libloco.dylib'}
|
||||||
|
|
||||||
|
out = macho_make_paths_normal('/Users/Shared/spack/pkgC/bin/exeC',
|
||||||
|
('@loader_path/../../pkgA/lib',
|
||||||
|
'@loader_path/../../pkgB/lib',
|
||||||
|
'/usr/local/lib'),
|
||||||
|
('@loader_path/../../pkgA/libA.dylib',
|
||||||
|
'@loader_path/../../pkgB/libB.dylib',
|
||||||
|
'/usr/local/lib/libloco.dylib'),
|
||||||
|
None)
|
||||||
|
|
||||||
|
assert out == {'@loader_path/../../pkgA/lib':
|
||||||
|
'/Users/Shared/spack/pkgA/lib',
|
||||||
|
'@loader_path/../../pkgB/lib':
|
||||||
|
'/Users/Shared/spack/pkgB/lib',
|
||||||
|
'/usr/local/lib': '/usr/local/lib',
|
||||||
|
'@loader_path/../../pkgA/libA.dylib':
|
||||||
|
'/Users/Shared/spack/pkgA/libA.dylib',
|
||||||
|
'@loader_path/../../pkgB/libB.dylib':
|
||||||
|
'/Users/Shared/spack/pkgB/libB.dylib',
|
||||||
|
'/usr/local/lib/libloco.dylib':
|
||||||
|
'/usr/local/lib/libloco.dylib'}
|
||||||
|
|
||||||
|
|
||||||
def test_elf_paths():
|
def test_elf_paths():
|
||||||
out = get_relative_elf_rpaths(
|
out = get_relative_elf_rpaths(
|
||||||
'/usr/bin/test', '/usr',
|
'/usr/bin/test', '/usr',
|
||||||
('/usr/lib', '/usr/lib64', '/opt/local/lib'))
|
('/usr/lib', '/usr/lib64', '/opt/local/lib'))
|
||||||
assert out == ['$ORIGIN/../lib', '$ORIGIN/../lib64', '/opt/local/lib']
|
assert out == ['$ORIGIN/../lib', '$ORIGIN/../lib64', '/opt/local/lib']
|
||||||
|
|
||||||
|
out = get_normalized_elf_rpaths(
|
||||||
|
'/usr/bin/test',
|
||||||
|
['$ORIGIN/../lib', '$ORIGIN/../lib64', '/opt/local/lib'])
|
||||||
|
assert out == ['/usr/lib', '/usr/lib64', '/opt/local/lib']
|
||||||
|
Loading…
Reference in New Issue
Block a user