From 0efb376c20b220cddbbcf57f0c82ae048170ffd9 Mon Sep 17 00:00:00 2001 From: Nick Desaulniers Date: Thu, 9 Jan 2025 13:40:54 -0800 Subject: [PATCH] [libc][test] remove C++ stdlib includes (#122369) These make cross compiling the test suite more difficult, as you need the sysroot to contain these headers and libraries cross compiled for your target. It's straightforward to stick with the corresponding C headers. --- libc/test/UnitTest/ExecuteFunctionUnix.cpp | 17 ++++++++--------- libc/test/UnitTest/FPExceptMatcher.cpp | 7 +++---- libc/test/UnitTest/LibcDeathTestExecutors.cpp | 2 +- 3 files changed, 12 insertions(+), 14 deletions(-) diff --git a/libc/test/UnitTest/ExecuteFunctionUnix.cpp b/libc/test/UnitTest/ExecuteFunctionUnix.cpp index 3a657c00851c7b..df71738668592a 100644 --- a/libc/test/UnitTest/ExecuteFunctionUnix.cpp +++ b/libc/test/UnitTest/ExecuteFunctionUnix.cpp @@ -8,13 +8,13 @@ #include "ExecuteFunction.h" #include "src/__support/macros/config.h" -#include -#include -#include -#include -#include +#include "test/UnitTest/ExecuteFunction.h" // FunctionCaller +#include #include #include +#include +#include +#include #include #include @@ -35,21 +35,20 @@ int ProcessStatus::get_fatal_signal() { } ProcessStatus invoke_in_subprocess(FunctionCaller *func, unsigned timeout_ms) { - std::unique_ptr X(func); int pipe_fds[2]; if (::pipe(pipe_fds) == -1) return ProcessStatus::error("pipe(2) failed"); // Don't copy the buffers into the child process and print twice. - std::cout.flush(); - std::cerr.flush(); + ::fflush(stderr); + ::fflush(stdout); pid_t pid = ::fork(); if (pid == -1) return ProcessStatus::error("fork(2) failed"); if (!pid) { (*func)(); - std::exit(0); + ::exit(0); } ::close(pipe_fds[1]); diff --git a/libc/test/UnitTest/FPExceptMatcher.cpp b/libc/test/UnitTest/FPExceptMatcher.cpp index 37ba0a0a7abde4..889f9f6f44a913 100644 --- a/libc/test/UnitTest/FPExceptMatcher.cpp +++ b/libc/test/UnitTest/FPExceptMatcher.cpp @@ -9,11 +9,11 @@ #include "FPExceptMatcher.h" #include "src/__support/macros/config.h" +#include "test/UnitTest/ExecuteFunction.h" // FunctionCaller #include "test/UnitTest/Test.h" #include "hdr/types/fenv_t.h" #include "src/__support/FPUtil/FEnvImpl.h" -#include #include #include @@ -37,14 +37,13 @@ static void sigfpeHandler(int sig) { } FPExceptMatcher::FPExceptMatcher(FunctionCaller *func) { - auto oldSIGFPEHandler = signal(SIGFPE, &sigfpeHandler); - std::unique_ptr funcUP(func); + sighandler_t oldSIGFPEHandler = signal(SIGFPE, &sigfpeHandler); caughtExcept = false; fenv_t oldEnv; fputil::get_env(&oldEnv); if (sigsetjmp(jumpBuffer, 1) == 0) - funcUP->call(); + func->call(); // We restore the previous floating point environment after // the call to the function which can potentially raise SIGFPE. fputil::set_env(&oldEnv); diff --git a/libc/test/UnitTest/LibcDeathTestExecutors.cpp b/libc/test/UnitTest/LibcDeathTestExecutors.cpp index 77b0559c7acea9..943e2c23c5fde9 100644 --- a/libc/test/UnitTest/LibcDeathTestExecutors.cpp +++ b/libc/test/UnitTest/LibcDeathTestExecutors.cpp @@ -12,7 +12,7 @@ #include "test/UnitTest/ExecuteFunction.h" #include "test/UnitTest/TestLogger.h" -#include +#include namespace { constexpr unsigned TIMEOUT_MS = 10000;