tsee / extutils-cppguess

Guess the C++ compiler for Perl modules
6 stars 9 forks source link

Tests fail on macOS with Clang providing /usr/bin/gcc #31

Open johannessen opened 1 week ago

johannessen commented 1 week ago

After updating to macOS 15, installation of ExtUtils::CppGuess 0.27 fails because of a problem in 002_icpp.t. Several tests fail, apparently all for the same reason: On this system, /usr/bin/gcc is provided by Clang, which is detected correctly by ExtUtils::CppGuess.

$ gcc --version
Apple clang version 16.0.0 (clang-1600.0.26.3)
Target: x86_64-apple-darwin24.0.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin

Overview of test results:

$ prove -lbv t/002_icpp.t 2> /dev/null
t/002_icpp.t .. 
ok 1
not ok 2
not ok 3
not ok 4
ok 5
not ok 6
ok 7
not ok 8
ok 9
# Mocking output of cc --version: OpenBSD clang version 10.0.1
ok 10
# Mocking output of clang-15 --version: Debian clang version 15.0.7
ok 11
# Mocking output of cc --version: cc (Debian 12.2.0-14) 12.2.0
# Mocking output of cc --version: cc (Debian 12.2.0-14) 12.2.0
ok 12
1..12
Dubious, test returned 5 (wstat 1280, 0x500)
Failed 5/12 subtests 

Test Summary Report
-------------------
t/002_icpp.t (Wstat: 1280 (exited 5) Tests: 12 Failed: 5)
  Failed tests:  2-4, 6, 8
  Non-zero exit status: 5
Files=1, Tests=12,  1 wallclock secs ( 0.02 usr  0.01 sys +  0.39 cusr  0.29 csys =  0.71 CPU)
Result: FAIL

Example of failed test diag (looks essentially the same for all failed tests):

#   Failed test at t/002_icpp.t line 159.
#     Structures begin differing at:
#          $got->{is_gcc} = undef
#     $expected->{is_gcc} = '1'
# [
#   {
#     'cc' => 'gcc',
#     'config' => {
#       'ccflags' => ''
#     },
#     'os' => 'linux'
#   },
#   {
#     'compiler_command' => 'clang++ -xc++ -Wno-reserved-user-defined-literal',
#     'is_clang' => 1,
#     'is_gcc' => undef,
#     'is_msvc' => undef,
#     'is_sunstudio' => 0,
#     'linker_flags' => '-lstdc++'
#   },
#   {
#     'compiler_command' => 'g++ -xc++',
#     'is_clang' => 0,
#     'is_gcc' => 1,
#     'is_msvc' => undef,
#     'is_sunstudio' => 0,
#     'linker_flags' => '-lstdc++'
#   }
# ]