[flang-commits] [flang] e335563 - [NFC][flang] Fix execute_command_line test for odd environments (#117714)
via flang-commits
flang-commits at lists.llvm.org
Tue Nov 26 16:44:00 PST 2024
Author: David Truby
Date: 2024-11-27T00:43:56Z
New Revision: e335563806e0466f33ecce80a9fd5a39a3aead47
URL: https://github.com/llvm/llvm-project/commit/e335563806e0466f33ecce80a9fd5a39a3aead47
DIFF: https://github.com/llvm/llvm-project/commit/e335563806e0466f33ecce80a9fd5a39a3aead47.diff
LOG: [NFC][flang] Fix execute_command_line test for odd environments (#117714)
One of the execute_command_line tests currently runs `cat` on an invalid
file and checks its return value, but since we don't control `cat` or
the user's path, the return value might not be reliably stable on a
per-platform basis. For example, if `git` is installed on Windows in
certain configurations it adds a directory to the path containing a
`cat` with a different set of error codes to the default Windows one.
This patch changes the test to use the `not` binary built by LLVM for
testing purposes, which should always return 1 on any platform
regardless of the user's environment.
Added:
Modified:
flang/unittests/Runtime/CMakeLists.txt
flang/unittests/Runtime/CommandTest.cpp
Removed:
################################################################################
diff --git a/flang/unittests/Runtime/CMakeLists.txt b/flang/unittests/Runtime/CMakeLists.txt
index 2c3f8c1a9e9ac8..179e439917ff23 100644
--- a/flang/unittests/Runtime/CMakeLists.txt
+++ b/flang/unittests/Runtime/CMakeLists.txt
@@ -36,4 +36,6 @@ target_link_libraries(FlangRuntimeTests
FortranRuntime
)
+target_compile_definitions(FlangRuntimeTests PRIVATE NOT_EXE="$<TARGET_FILE:not>")
+
add_subdirectory(CUDA)
diff --git a/flang/unittests/Runtime/CommandTest.cpp b/flang/unittests/Runtime/CommandTest.cpp
index b0c43ba01d8f33..05287d80e14f58 100644
--- a/flang/unittests/Runtime/CommandTest.cpp
+++ b/flang/unittests/Runtime/CommandTest.cpp
@@ -340,7 +340,7 @@ TEST_F(ZeroArguments, ECLValidCommandStatusSetSync) {
}
TEST_F(ZeroArguments, ECLGeneralErrorCommandErrorSync) {
- OwningPtr<Descriptor> command{CharDescriptor("cat GeneralErrorCommand")};
+ OwningPtr<Descriptor> command{CharDescriptor(NOT_EXE)};
bool wait{true};
OwningPtr<Descriptor> exitStat{IntDescriptor(404)};
OwningPtr<Descriptor> cmdStat{IntDescriptor(202)};
@@ -348,16 +348,14 @@ TEST_F(ZeroArguments, ECLGeneralErrorCommandErrorSync) {
RTNAME(ExecuteCommandLine)
(*command.get(), wait, exitStat.get(), cmdStat.get(), cmdMsg.get());
-#if defined(_WIN32)
CheckDescriptorEqInt<std::int64_t>(exitStat.get(), 1);
+#if defined(_WIN32)
CheckDescriptorEqInt<std::int64_t>(cmdStat.get(), 6);
CheckDescriptorEqStr(cmdMsg.get(), "Invalid command lineXXXXXXXXX");
#elif defined(_AIX)
- CheckDescriptorEqInt<std::int64_t>(exitStat.get(), 2);
CheckDescriptorEqInt<std::int64_t>(cmdStat.get(), 6);
CheckDescriptorEqStr(cmdMsg.get(), "Invalid command lineXXXXXXXXX");
#else
- CheckDescriptorEqInt<std::int64_t>(exitStat.get(), 1);
CheckDescriptorEqInt<std::int64_t>(cmdStat.get(), 3);
CheckDescriptorEqStr(cmdMsg.get(), "Command line execution failed");
#endif
More information about the flang-commits
mailing list