def should_skip_test(test_dir, abi, platform): if test_is_disabled(test_dir, platform): return 'disabled' if abi is not None: app_abi = ndk.get_build_var(test_dir, 'APP_ABI') supported_abis = ndk.expand_app_abi(app_abi) if abi not in supported_abis: abi_string = ', '.join(supported_abis) return 'incompatible ABI (requires {})'.format(abi_string) return None
def test_is_disabled(test_dir, platform): disable_file = os.path.join(test_dir, 'BROKEN_BUILD') if os.path.isfile(disable_file): if os.stat(disable_file).st_size == 0: return True # This might look like clang-3.6 and gcc-3.6 would overlap (not a # problem today, but maybe when we hit clang-4.9), but clang is # actually written as clang3.6 (with no hypen), so toolchain_version # will end up being 'clang3.6'. toolchain = ndk.get_build_var(test_dir, 'TARGET_TOOLCHAIN') toolchain_version = toolchain.split('-')[-1] with open(disable_file) as f: contents = f.read() broken_configs = re.split(r'\s+', contents) if toolchain_version in broken_configs: return True if platform is not None and platform in broken_configs: return True return False