[all-commits] [llvm/llvm-project] c1a14a: [libcxx] Use LIBCXX_EXECUTOR in new test configs

Martin Storsjö via All-commits all-commits at lists.llvm.org
Tue Dec 21 14:44:04 PST 2021

  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: c1a14a5c3e6fef181f920b66ec159b6bfac4d457
  Author: Martin Storsjö <martin at martin.st>
  Date:   2021-12-22 (Wed, 22 Dec 2021)

  Changed paths:
    M libcxx/test/configs/apple-libc++-shared.cfg.in
    M libcxx/test/configs/cmake-bridge.cfg.in
    M libcxx/test/configs/ibm-libc++-shared.cfg.in
    M libcxx/test/configs/llvm-libc++-shared-gcc.cfg.in
    M libcxx/test/configs/llvm-libc++-shared.cfg.in
    M libcxx/test/configs/llvm-libc++-static.cfg.in
    M libcxxabi/test/configs/apple-libc++abi-shared.cfg.in
    M libcxxabi/test/configs/cmake-bridge.cfg.in
    M libcxxabi/test/configs/ibm-libc++abi-shared.cfg.in

  Log Message:
  [libcxx] Use LIBCXX_EXECUTOR in new test configs

This allows cross-testing (by setting LIBCXX_EXECUTOR to point
to ssh.py) without making an entirely new test config file.

Implicitly, this also fixes quoting of the python executable name
(which is quoted in test/CMakeLists.txt).

Differential Revision: https://reviews.llvm.org/D115398

  Commit: f68e89044a2ee14babd1af8fc406c9bab080992a
  Author: Martin Storsjö <martin at martin.st>
  Date:   2021-12-22 (Wed, 22 Dec 2021)

  Changed paths:
    M libcxx/CMakeLists.txt
    M libcxx/cmake/caches/MinGW.cmake
    M libcxx/include/__config_site.in
    M libcxx/utils/ci/run-buildbot

  Log Message:
  [libcxx] Add LIBCXX_EXTRA_SITE_DEFINES for adding extra defines in __config_site

This is similar to the existing setting LIBCXX_ABI_DEFINES, with
the difference that this also allows setting other defines than
ones that start with "_LIBCPP_ABI_", and allows setting defines
to a specific value.

This allows avoiding using LIBCXX_TEST_COMPILER_FLAGS in two
CI configurations.

Differential Revision: https://reviews.llvm.org/D116109

  Commit: d67b25e7f6d9eb320382933ff650de97161f801e
  Author: Martin Storsjö <martin at martin.st>
  Date:   2021-12-22 (Wed, 22 Dec 2021)

  Changed paths:
    M libcxx/test/std/input.output/iostream.objects/narrow.stream.objects/cerr.sh.cpp
    M libcxx/test/std/input.output/iostream.objects/narrow.stream.objects/clog.sh.cpp
    M libcxx/test/std/input.output/iostream.objects/narrow.stream.objects/cout.sh.cpp
    M libcxx/test/std/input.output/iostream.objects/wide.stream.objects/wcerr.sh.cpp
    M libcxx/test/std/input.output/iostream.objects/wide.stream.objects/wclog.sh.cpp
    M libcxx/test/std/input.output/iostream.objects/wide.stream.objects/wcout.sh.cpp
    M libcxx/utils/libcxx/test/features.py

  Log Message:
  [libcxx] [test] Extend test for bash for executor-has-no-bash

If %{exec} sets "--env PATH=single-dir", the directory containing
bash and related shell utils is omitted from the path, which means
that most shell scripts would fail.

(Setting PATH is needed for DLL builds on Windows; PATH fills the same
role as e.g. LD_LIBRARY_PATH on Linux.)

This condition is missed in the current test, because the executor
run.py first resolves the executable to run using the original path,
then invokes that executable with an environment with a restricted
path. Thus the executor is able to run bash, but that bash is then
unable to run further shell commands (other than bash builtins).

Extend the test from "bash --version" to "bash -c 'bash --version'".
This correctly identifies the executor-has-no-bash condition in the
current Windows CI configs, allowing removing 6 cases of

Another longterm fix would be to extend run.py with an option like
"--env-prepend PATH=dir", to allow keeping the current path while
adding a directory to it.

Differential Revision: https://reviews.llvm.org/D116117

Compare: https://github.com/llvm/llvm-project/compare/d26520f6f787...d67b25e7f6d9

More information about the All-commits mailing list