@@ -686,6 +686,7 @@ def test_get_software_root_version_libdir(self):
686686 self .assertEqual (get_software_root (name ), root )
687687 self .assertEqual (get_software_version (name ), version )
688688 self .assertEqual (get_software_libdir (name ), 'lib' )
689+ self .assertEqual (get_software_libdir (name , full_path = True ), os .path .join (root , 'lib' ))
689690
690691 os .environ .pop ('EBROOT%s' % env_var_name )
691692 os .environ .pop ('EBVERSION%s' % env_var_name )
@@ -694,50 +695,60 @@ def test_get_software_root_version_libdir(self):
694695 root = os .path .join (tmpdir , name )
695696 mkdir (os .path .join (root , 'lib64' ))
696697 os .environ ['EBROOT%s' % env_var_name ] = root
698+
699+ def check_get_software_libdir (expected , ** additional_args ):
700+ self .assertEqual (get_software_libdir (name , ** additional_args ), expected )
701+ if isinstance (expected , list ):
702+ expected = [os .path .join (root , d ) for d in expected ]
703+ elif expected :
704+ expected = os .path .join (root , expected )
705+ self .assertEqual (get_software_libdir (name , full_path = True , ** additional_args ), expected )
706+
697707 write_file (os .path .join (root , 'lib' , 'libfoo.a' ), 'foo' )
698- self . assertEqual ( get_software_libdir ( name ), 'lib' )
708+ check_get_software_libdir ( 'lib' )
699709
700710 remove_file (os .path .join (root , 'lib' , 'libfoo.a' ))
701711
702712 # also check vice versa with *shared* library in lib64
703713 shlib_ext = get_shared_lib_ext ()
704714 write_file (os .path .join (root , 'lib64' , 'libfoo.' + shlib_ext ), 'foo' )
705- self . assertEqual ( get_software_libdir ( name ), 'lib64' )
715+ check_get_software_libdir ( 'lib64' )
706716
707717 remove_file (os .path .join (root , 'lib64' , 'libfoo.' + shlib_ext ))
708718
709719 # check expected result of get_software_libdir with multiple lib subdirs
710720 self .assertErrorRegex (EasyBuildError , "Multiple library subdirectories found.*" , get_software_libdir , name )
711- self . assertEqual ( get_software_libdir ( name , only_one = False ), ['lib' , 'lib64' ])
721+ check_get_software_libdir ( only_one = False , expected = ['lib' , 'lib64' ])
712722
713723 # only directories containing files in specified list should be retained
714724 write_file (os .path .join (root , 'lib64' , 'foo' ), 'foo' )
715- self . assertEqual ( get_software_libdir ( name , fs = ['foo' ]), 'lib64' )
725+ check_get_software_libdir ( fs = ['foo' ], expected = 'lib64' )
716726
717727 # duplicate paths due to symlink get filtered
718728 remove_dir (os .path .join (root , 'lib64' ))
719729 symlink (os .path .join (root , 'lib' ), os .path .join (root , 'lib64' ))
720- self . assertEqual ( get_software_libdir ( name ), 'lib' )
730+ check_get_software_libdir ( 'lib' )
721731
722732 # same goes for lib symlinked to lib64
723733 remove_file (os .path .join (root , 'lib64' ))
724734 remove_dir (os .path .join (root , 'lib' ))
725735 mkdir (os .path .join (root , 'lib64' ))
726736 symlink (os .path .join (root , 'lib64' ), os .path .join (root , 'lib' ))
727737 # still returns 'lib' because that's the first subdir considered
728- self . assertEqual ( get_software_libdir ( name ), 'lib' )
738+ check_get_software_libdir ( 'lib' )
729739
730740 # clean up for previous tests
731741 os .environ .pop ('EBROOT%s' % env_var_name )
732742
733743 # if root/version for specified software package can not be found, these functions should return None
734- self .assertEqual (get_software_root ('foo' ), None )
735- self .assertEqual (get_software_version ('foo' ), None )
736- self . assertEqual ( get_software_libdir ( 'foo' ), None )
744+ self .assertEqual (get_software_root (name ), None )
745+ self .assertEqual (get_software_version (name ), None )
746+ check_get_software_libdir ( None )
737747
738748 # if no library subdir is found, get_software_libdir should return None
739749 os .environ ['EBROOTFOO' ] = tmpdir
740750 self .assertEqual (get_software_libdir ('foo' ), None )
751+ self .assertEqual (get_software_libdir ('foo' , full_path = True ), None )
741752 os .environ .pop ('EBROOTFOO' )
742753
743754 shutil .rmtree (tmpdir )
0 commit comments