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 33653212fdd1f5b5eea1c5b7d4d28b3f6c8fd05bbaMichael Gottesman 34653212fdd1f5b5eea1c5b7d4d28b3f6c8fd05bbaMichael Gottesman def get_test_file(self): 35653212fdd1f5b5eea1c5b7d4d28b3f6c8fd05bbaMichael Gottesman return os.path.join(os.path.dirname(os.path.abspath(__file__)), "test_file") 3637a8807323672ab0bb366272e5a798b8e63752a4Michael Gottesman 3737a8807323672ab0bb366272e5a798b8e63752a4Michael Gottesman def get_test_bc(self): 3837a8807323672ab0bb366272e5a798b8e63752a4Michael Gottesman return os.path.join(os.path.dirname(os.path.abspath(__file__)), "test.bc") 39