@@ -260,80 +260,6 @@ TEST_F(ProgramEnvTest, TestExecuteNoWait) {
260260 ASSERT_GT (LoopCount, 1u ) << " LoopCount should be >1" ;
261261}
262262
263- TEST_F (ProgramEnvTest, TestExecuteNoWaitDetached) {
264- using namespace llvm ::sys;
265-
266- if (getenv (" LLVM_PROGRAM_TEST_EXECUTE_NO_WAIT_DETACHED" )) {
267- sleep_for (/* seconds=*/ 5 );
268-
269- #if _WIN32
270- HWND ConsoleWnd = GetConsoleWindow ();
271- if (ConsoleWnd == NULL )
272- exit (100 );
273- else
274- exit (200 );
275- #else
276- int ParentSID = std::stoi (
277- std::string (getenv (" LLVM_PROGRAM_TEST_EXECUTE_NO_WAIT_DETACHED_SID" )));
278-
279- pid_t ChildSID = ::getsid (0 );
280- if (ChildSID == -1 ) {
281- llvm::errs () << " Could not get process SID: " << strerror (errno) << ' \n ' ;
282- exit (1 );
283- }
284-
285- char *Detached = getenv (" LLVM_PROGRAM_TEST_EXECUTE_NO_WAIT_DETACHED_TRUE" );
286- if (Detached && (ChildSID != ParentSID))
287- exit (100 );
288- if (!Detached && (ChildSID == ParentSID))
289- exit (200 );
290- #endif
291- exit (0 );
292- }
293-
294- std::string Executable =
295- sys::fs::getMainExecutable (TestMainArgv0, &ProgramTestStringArg1);
296- StringRef argv[] = {
297- Executable, " --gtest_filter=ProgramEnvTest.TestExecuteNoWaitDetached" };
298- addEnvVar (" LLVM_PROGRAM_TEST_EXECUTE_NO_WAIT_DETACHED=1" );
299-
300- #ifndef _WIN32
301- pid_t SID = ::getsid (0 );
302- ASSERT_NE (SID, -1 );
303- std::string SIDEnvVar =
304- " LLVM_PROGRAM_TEST_EXECUTE_NO_WAIT_DETACHED_SID=" + std::to_string (SID);
305- addEnvVar (SIDEnvVar);
306- #endif
307-
308- // DetachProcess = true
309- {
310- std::string Error;
311- bool ExecutionFailed;
312- std::vector<llvm::StringRef> Env = getEnviron ();
313- Env.emplace_back (" LLVM_PROGRAM_TEST_EXECUTE_NO_WAIT_DETACHED_TRUE=1" );
314- ProcessInfo PI1 =
315- ExecuteNoWait (Executable, argv, Env, {}, 0 , &Error, &ExecutionFailed,
316- nullptr , /* DetachProcess=*/ true );
317- ASSERT_FALSE (ExecutionFailed) << Error;
318- ASSERT_NE (PI1.Pid , ProcessInfo::InvalidPid) << " Invalid process id" ;
319- ProcessInfo WaitResult = Wait (PI1, std::nullopt , &Error);
320- ASSERT_EQ (WaitResult.ReturnCode , 100 );
321- }
322-
323- // DetachProcess = false
324- {
325- std::string Error;
326- bool ExecutionFailed;
327- ProcessInfo PI2 =
328- ExecuteNoWait (Executable, argv, getEnviron (), {}, 0 , &Error,
329- &ExecutionFailed, nullptr , /* DetachProcess=*/ false );
330- ASSERT_FALSE (ExecutionFailed) << Error;
331- ASSERT_NE (PI2.Pid , ProcessInfo::InvalidPid) << " Invalid process id" ;
332- ProcessInfo WaitResult = Wait (PI2, std::nullopt , &Error);
333- ASSERT_EQ (WaitResult.ReturnCode , 200 );
334- }
335- }
336-
337263TEST_F (ProgramEnvTest, TestExecuteAndWaitTimeout) {
338264 using namespace llvm ::sys;
339265
0 commit comments