diff options
Diffstat (limited to 'clang/test')
| -rw-r--r-- | clang/test/CMakeLists.txt | 1 | ||||
| -rw-r--r-- | clang/test/lit.cfg | 27 |
2 files changed, 26 insertions, 2 deletions
diff --git a/clang/test/CMakeLists.txt b/clang/test/CMakeLists.txt index a11b83a854c..e7731189a2c 100644 --- a/clang/test/CMakeLists.txt +++ b/clang/test/CMakeLists.txt @@ -44,6 +44,7 @@ endif() if( NOT CLANG_BUILT_STANDALONE ) list(APPEND CLANG_TEST_DEPS + llvm-config llc opt FileCheck count not llvm-symbolizer ) diff --git a/clang/test/lit.cfg b/clang/test/lit.cfg index 19daa61a64f..807b231358a 100644 --- a/clang/test/lit.cfg +++ b/clang/test/lit.cfg @@ -324,8 +324,31 @@ if len(llc_props['set_of_targets']) > 0: else: lit_config.fatal('No Targets Registered with the LLVM Tools!') -if llc_props['enable_assertions']: - config.available_features.add('asserts') +# Returns set of available features, registered-target(s) and asserts. +def get_llvm_config_props(): + set_of_features = set() + + cmd = subprocess.Popen( + [ + os.path.join(llvm_tools_dir, 'llvm-config'), + '--assertion-mode', + '--targets-built', + ], + stdout=subprocess.PIPE + ) + # 1st line corresponds to --assertion-mode, "ON" or "OFF". + line = cmd.stdout.readline().strip().decode('ascii') + if line == "ON": + set_of_features.add('asserts') + + # 2nd line corresponds to --targets-built, like; + # AArch64 ARM CppBackend X86 + for arch in cmd.stdout.readline().decode('ascii').split(): + set_of_features.add(arch.lower() + '-registered-target') + + return set_of_features + +config.available_features.update(get_llvm_config_props()) if lit.util.which('xmllint'): config.available_features.add('xmllint') |

