Imported Upstream version 17.23.5
[platform/upstream/libzypp.git] / tests / zypp / base / CleanerThread_test.cc
1 #include "TestSetup.h"
2 #include <zypp/ExternalProgram.h>
3
4 #include <chrono>
5 #include <thread>
6 #include <sys/types.h>
7 #include <sys/wait.h>
8
9 #define BOOST_TEST_MODULE CleanerThread
10
11 using zypp::ExternalProgram;
12
13 BOOST_AUTO_TEST_CASE( CleanerThread_default )
14 {
15   pid_t pid = -1;
16   {
17     ExternalProgram proc( "bash -c 'sleep 2'", ExternalProgram::Normal_Stderr );
18     BOOST_CHECK( proc.running() );
19     pid = proc.getpid();
20   }
21   std::this_thread::sleep_for( std::chrono::seconds(4) );
22   int status = 0;
23   int res = waitpid( pid, &status, WNOHANG );
24   BOOST_CHECK_EQUAL( res, -1 );
25   BOOST_CHECK_EQUAL( errno, ECHILD );
26 }