From 66bf9bc7a60666e1946a952da3071053dabd47bc Mon Sep 17 00:00:00 2001 From: Greg Becker Date: Sun, 12 Mar 2023 00:17:09 -0800 Subject: cce compiler: bugfix for version regex to avoid conflation with apple-clang (#35974) Currently apple-clang is detected as cce, and it should not be. --------- Co-authored-by: becker33 --- lib/spack/spack/compilers/cce.py | 2 +- lib/spack/spack/test/compilers/detection.py | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/spack/spack/compilers/cce.py b/lib/spack/spack/compilers/cce.py index 2bc00ec7f5..cd9d9f43f1 100644 --- a/lib/spack/spack/compilers/cce.py +++ b/lib/spack/spack/compilers/cce.py @@ -61,7 +61,7 @@ class Cce(Compiler): return version >= ver("9.0") and "classic" not in str(version) version_argument = "--version" - version_regex = r"[Vv]ersion.*?(\d+(\.\d+)+)" + version_regex = r"[Cc]ray (?:clang|C :|C\+\+ :|Fortran :) [Vv]ersion.*?(\d+(\.\d+)+)" @property def verbose_flag(self): diff --git a/lib/spack/spack/test/compilers/detection.py b/lib/spack/spack/test/compilers/detection.py index 5bd1fa1d0e..2d3765aef5 100644 --- a/lib/spack/spack/test/compilers/detection.py +++ b/lib/spack/spack/test/compilers/detection.py @@ -58,6 +58,7 @@ def test_arm_version_detection(version_str, expected_version): [ ("Cray C : Version 8.4.6 Mon Apr 15, 2019 12:13:39\n", "8.4.6"), ("Cray C++ : Version 8.4.6 Mon Apr 15, 2019 12:13:45\n", "8.4.6"), + ("Cray clang Version 8.4.6 Mon Apr 15, 2019 12:13:45\n", "8.4.6"), ("Cray Fortran : Version 8.4.6 Mon Apr 15, 2019 12:13:55\n", "8.4.6"), ], ) @@ -487,3 +488,27 @@ def test_cray_frontend_compiler_detection(compiler, version, tmpdir, monkeypatch def test_aocc_version_detection(version_str, expected_version): version = spack.compilers.aocc.Aocc.extract_version_from_output(version_str) assert version == expected_version + + +@pytest.mark.regression("33901") +@pytest.mark.parametrize( + "version_str", + [ + ( + "Apple clang version 11.0.0 (clang-1100.0.33.8)\n" + "Target: x86_64-apple-darwin18.7.0\n" + "Thread model: posix\n" + "InstalledDir: " + "/Applications/Xcode.app/Contents/Developer/Toolchains/" + "XcodeDefault.xctoolchain/usr/bin\n" + ), + ( + "Apple LLVM version 7.0.2 (clang-700.1.81)\n" + "Target: x86_64-apple-darwin15.2.0\n" + "Thread model: posix\n" + ), + ], +) +def test_apple_clang_not_detected_as_cce(version_str): + version = spack.compilers.cce.Cce.extract_version_from_output(version_str) + assert version == "unknown" -- cgit v1.2.3-60-g2f50