Author: Dmitry Vasilyev Date: 2024-11-08T15:59:05+04:00 New Revision: df3f18b071d853896318d2d37186fc6289ffdb2b
URL: https://github.com/llvm/llvm-project/commit/df3f18b071d853896318d2d37186fc6289ffdb2b DIFF: https://github.com/llvm/llvm-project/commit/df3f18b071d853896318d2d37186fc6289ffdb2b.diff LOG: [lldb] Fixed the @skipUnlessAArch64MTELinuxCompiler decorator in case of Windows host (#115337) Fixed the @skipUnlessAArch64MTELinuxCompiler decorator in case of Windows host. Added: Modified: lldb/packages/Python/lldbsuite/test/decorators.py Removed: ################################################################################ diff --git a/lldb/packages/Python/lldbsuite/test/decorators.py b/lldb/packages/Python/lldbsuite/test/decorators.py index 34319e203a3177..0bb9ab9f5f8929 100644 --- a/lldb/packages/Python/lldbsuite/test/decorators.py +++ b/lldb/packages/Python/lldbsuite/test/decorators.py @@ -989,13 +989,16 @@ def skipUnlessAArch64MTELinuxCompiler(func): def is_toolchain_with_mte(): compiler_path = lldbplatformutil.getCompiler() - compiler = os.path.basename(compiler_path) - f = tempfile.NamedTemporaryFile() + f = tempfile.NamedTemporaryFile(delete=False) if lldbplatformutil.getPlatform() == "windows": return "MTE tests are not compatible with 'windows'" - cmd = "echo 'int main() {}' | %s -x c -o %s -" % (compiler_path, f.name) - if os.popen(cmd).close() is not None: + # Note hostos may be Windows. + f.close() + + cmd = f"{compiler_path} -x c -o {f.name} -" + if subprocess.run(cmd, input="int main() {}".encode()).returncode != 0: + os.remove(f.name) # Cannot compile at all, don't skip the test # so that we report the broken compiler normally. return None @@ -1010,12 +1013,10 @@ def is_toolchain_with_mte(): int main() { void* ptr = __arm_mte_create_random_tag((void*)(0), 0); }""" - cmd = "echo '%s' | %s -march=armv8.5-a+memtag -x c -o %s -" % ( - test_src, - compiler_path, - f.name, - ) - if os.popen(cmd).close() is not None: + cmd = f"{compiler_path} -march=armv8.5-a+memtag -x c -o {f.name} -" + res = subprocess.run(cmd, input=test_src.encode()) + os.remove(f.name) + if res.returncode != 0: return "Toolchain does not support MTE" return None _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits