161e22cd85cd4c84fff391da67018c92bf21a8e19Gregory Szorcimport os.path 261e22cd85cd4c84fff391da67018c92bf21a8e19Gregory Szorcimport unittest 361e22cd85cd4c84fff391da67018c92bf21a8e19Gregory Szorc 461e22cd85cd4c84fff391da67018c92bf21a8e19Gregory SzorcPOSSIBLE_TEST_BINARIES = [ 561e22cd85cd4c84fff391da67018c92bf21a8e19Gregory Szorc 'libreadline.so.5', 661e22cd85cd4c84fff391da67018c92bf21a8e19Gregory Szorc 'libreadline.so.6', 761e22cd85cd4c84fff391da67018c92bf21a8e19Gregory Szorc] 861e22cd85cd4c84fff391da67018c92bf21a8e19Gregory Szorc 961e22cd85cd4c84fff391da67018c92bf21a8e19Gregory SzorcPOSSIBLE_TEST_BINARY_PATHS = [ 10a8d873e178d45024db9c0ef6a25c6867424785f7Anders Waldenborg '/usr/lib/debug', 1161e22cd85cd4c84fff391da67018c92bf21a8e19Gregory Szorc '/lib', 1261e22cd85cd4c84fff391da67018c92bf21a8e19Gregory Szorc '/usr/lib', 1361e22cd85cd4c84fff391da67018c92bf21a8e19Gregory Szorc '/usr/local/lib', 14a8d873e178d45024db9c0ef6a25c6867424785f7Anders Waldenborg '/lib/i386-linux-gnu', 1561e22cd85cd4c84fff391da67018c92bf21a8e19Gregory Szorc] 1661e22cd85cd4c84fff391da67018c92bf21a8e19Gregory Szorc 1761e22cd85cd4c84fff391da67018c92bf21a8e19Gregory Szorcclass TestBase(unittest.TestCase): 1861e22cd85cd4c84fff391da67018c92bf21a8e19Gregory Szorc def get_test_binary(self): 1961e22cd85cd4c84fff391da67018c92bf21a8e19Gregory Szorc """Helper to obtain a test binary for object file testing. 2061e22cd85cd4c84fff391da67018c92bf21a8e19Gregory Szorc 2161e22cd85cd4c84fff391da67018c92bf21a8e19Gregory Szorc FIXME Support additional, highly-likely targets or create one 2261e22cd85cd4c84fff391da67018c92bf21a8e19Gregory Szorc ourselves. 2361e22cd85cd4c84fff391da67018c92bf21a8e19Gregory Szorc """ 2461e22cd85cd4c84fff391da67018c92bf21a8e19Gregory Szorc for d in POSSIBLE_TEST_BINARY_PATHS: 2561e22cd85cd4c84fff391da67018c92bf21a8e19Gregory Szorc for lib in POSSIBLE_TEST_BINARIES: 2661e22cd85cd4c84fff391da67018c92bf21a8e19Gregory Szorc path = os.path.join(d, lib) 2761e22cd85cd4c84fff391da67018c92bf21a8e19Gregory Szorc 2861e22cd85cd4c84fff391da67018c92bf21a8e19Gregory Szorc if os.path.exists(path): 2961e22cd85cd4c84fff391da67018c92bf21a8e19Gregory Szorc return path 3061e22cd85cd4c84fff391da67018c92bf21a8e19Gregory Szorc 3161e22cd85cd4c84fff391da67018c92bf21a8e19Gregory Szorc raise Exception('No suitable test binaries available!') 32359595413071ff706b484a875a23a4a7d1508f50Anders Waldenborg get_test_binary.__test__ = False 33