diff --git a/libcxx/test/std/input.output/iostream.objects/narrow.stream.objects/cerr.sh.cpp b/libcxx/test/std/input.output/iostream.objects/narrow.stream.objects/cerr.sh.cpp --- a/libcxx/test/std/input.output/iostream.objects/narrow.stream.objects/cerr.sh.cpp +++ b/libcxx/test/std/input.output/iostream.objects/narrow.stream.objects/cerr.sh.cpp @@ -10,8 +10,6 @@ // istream cerr; -// XFAIL: LIBCXX-WINDOWS-FIXME - // UNSUPPORTED: executor-has-no-bash // FILE_DEPENDENCIES: ../check-stderr.sh // RUN: %{build} diff --git a/libcxx/test/std/input.output/iostream.objects/narrow.stream.objects/clog.sh.cpp b/libcxx/test/std/input.output/iostream.objects/narrow.stream.objects/clog.sh.cpp --- a/libcxx/test/std/input.output/iostream.objects/narrow.stream.objects/clog.sh.cpp +++ b/libcxx/test/std/input.output/iostream.objects/narrow.stream.objects/clog.sh.cpp @@ -10,8 +10,6 @@ // istream clog; -// XFAIL: LIBCXX-WINDOWS-FIXME - // UNSUPPORTED: executor-has-no-bash // FILE_DEPENDENCIES: ../check-stderr.sh // RUN: %{build} diff --git a/libcxx/test/std/input.output/iostream.objects/narrow.stream.objects/cout.sh.cpp b/libcxx/test/std/input.output/iostream.objects/narrow.stream.objects/cout.sh.cpp --- a/libcxx/test/std/input.output/iostream.objects/narrow.stream.objects/cout.sh.cpp +++ b/libcxx/test/std/input.output/iostream.objects/narrow.stream.objects/cout.sh.cpp @@ -10,8 +10,6 @@ // istream cout; -// XFAIL: LIBCXX-WINDOWS-FIXME - // UNSUPPORTED: executor-has-no-bash // FILE_DEPENDENCIES: ../check-stdout.sh // RUN: %{build} diff --git a/libcxx/test/std/input.output/iostream.objects/wide.stream.objects/wcerr.sh.cpp b/libcxx/test/std/input.output/iostream.objects/wide.stream.objects/wcerr.sh.cpp --- a/libcxx/test/std/input.output/iostream.objects/wide.stream.objects/wcerr.sh.cpp +++ b/libcxx/test/std/input.output/iostream.objects/wide.stream.objects/wcerr.sh.cpp @@ -11,7 +11,6 @@ // istream wcerr; // XFAIL: libcpp-has-no-wide-characters -// XFAIL: LIBCXX-WINDOWS-FIXME // UNSUPPORTED: executor-has-no-bash // FILE_DEPENDENCIES: ../check-stderr.sh diff --git a/libcxx/test/std/input.output/iostream.objects/wide.stream.objects/wclog.sh.cpp b/libcxx/test/std/input.output/iostream.objects/wide.stream.objects/wclog.sh.cpp --- a/libcxx/test/std/input.output/iostream.objects/wide.stream.objects/wclog.sh.cpp +++ b/libcxx/test/std/input.output/iostream.objects/wide.stream.objects/wclog.sh.cpp @@ -11,7 +11,6 @@ // istream wclog; // XFAIL: libcpp-has-no-wide-characters -// XFAIL: LIBCXX-WINDOWS-FIXME // UNSUPPORTED: executor-has-no-bash // FILE_DEPENDENCIES: ../check-stderr.sh diff --git a/libcxx/test/std/input.output/iostream.objects/wide.stream.objects/wcout.sh.cpp b/libcxx/test/std/input.output/iostream.objects/wide.stream.objects/wcout.sh.cpp --- a/libcxx/test/std/input.output/iostream.objects/wide.stream.objects/wcout.sh.cpp +++ b/libcxx/test/std/input.output/iostream.objects/wide.stream.objects/wcout.sh.cpp @@ -11,7 +11,6 @@ // istream wcout; // XFAIL: libcpp-has-no-wide-characters -// XFAIL: LIBCXX-WINDOWS-FIXME // UNSUPPORTED: executor-has-no-bash // FILE_DEPENDENCIES: ../check-stdout.sh diff --git a/libcxx/utils/libcxx/test/features.py b/libcxx/utils/libcxx/test/features.py --- a/libcxx/utils/libcxx/test/features.py +++ b/libcxx/utils/libcxx/test/features.py @@ -75,8 +75,14 @@ # Whether Bash can run on the executor. # This is not always the case, for example when running on embedded systems. + # + # For the corner case of bash existing, but it being missing in the path + # set in %{exec} as "--env PATH=one-single-dir", the executor does find + # and executes bash, but bash then can't find any other common shell + # utilities. Test executing "bash -c 'bash --version'" to see if bash + # manages to find binaries to execute. Feature(name='executor-has-no-bash', - when=lambda cfg: runScriptExitCode(cfg, ['%{exec} bash --version']) != 0), + when=lambda cfg: runScriptExitCode(cfg, ['%{exec} bash -c \'bash --version\'']) != 0), Feature(name='apple-clang', when=_isAppleClang), Feature(name=lambda cfg: 'apple-clang-{__clang_major__}'.format(**compilerMacros(cfg)), when=_isAppleClang),