1 #include <gtest/gtest.h>
9 #include "sig_handler.h"
15 ASSERT_EQ(pipe(pipefd), 0);
16 if ((child_pid = fork()) == 0) {
18 std::atomic<bool> do_exit{
false};
22 SigHandler::get().start([&do_exit, pipefd]() {
27 SigHandler::signal(SIGINT);
30 if (write(pipefd[1],
"r", 1) != 1) {
35 boost::this_thread::sleep_for(boost::chrono::milliseconds(20));
47 EXPECT_EQ(read(pipefd[0], &b, 1), 1);
51 kill(child_pid, SIGINT);
55 waitpid(child_pid, &status, 0);
56 EXPECT_TRUE(WIFEXITED(status));
61 int main(
int argc,
char **argv) {
62 ::testing::InitGoogleTest(&argc, argv);
63 return RUN_ALL_TESTS();