def test_static_to_shared_library(build_environment): os.environ['SPACK_TEST_COMMAND'] = 'dump-args' expected = { 'linux': ('/bin/mycc -shared' ' -Wl,--disable-new-dtags' ' -Wl,-soname,{2} -Wl,--whole-archive {0}' ' -Wl,--no-whole-archive -o {1}'), 'darwin': ('/bin/mycc -dynamiclib' ' -Wl,--disable-new-dtags' ' -install_name {1} -Wl,-force_load,{0} -o {1}') } static_lib = '/spack/libfoo.a' for arch in ('linux', 'darwin'): for shared_lib in (None, '/spack/libbar.so'): output = _static_to_shared_library(arch, build_environment['cc'], static_lib, shared_lib, compiler_output=str).strip() if not shared_lib: shared_lib = '{0}.{1}'.format( os.path.splitext(static_lib)[0], dso_suffix) assert set(output.split()) == set(expected[arch].format( static_lib, shared_lib, os.path.basename(shared_lib)).split())
def test_static_to_shared_library(build_environment): os.environ['SPACK_TEST_COMMAND'] = 'dump-args' expected = { 'linux': ('/bin/mycc -Wl,-rpath,/spack-test-prefix/lib' ' -Wl,-rpath,/spack-test-prefix/lib64 -shared' ' -Wl,-soname,{2} -Wl,--whole-archive {0}' ' -Wl,--no-whole-archive -o {1}'), 'darwin': ('/bin/mycc -Wl,-rpath,/spack-test-prefix/lib' ' -Wl,-rpath,/spack-test-prefix/lib64 -dynamiclib' ' -install_name {1} -Wl,-force_load,{0} -o {1}') } static_lib = '/spack/libfoo.a' for arch in ('linux', 'darwin'): for shared_lib in (None, '/spack/libbar.so'): output = _static_to_shared_library(arch, build_environment['cc'], static_lib, shared_lib, compiler_output=str).strip() if not shared_lib: shared_lib = '{0}.{1}'.format( os.path.splitext(static_lib)[0], dso_suffix) assert set(output.split()) == set(expected[arch].format( static_lib, shared_lib, os.path.basename(shared_lib)).split())