Mock tcsetpgrp() and getpgrp() for tests.
authorDavin McCall <davmac@davmac.org>
Tue, 13 Feb 2018 18:32:01 +0000 (18:32 +0000)
committerDavin McCall <davmac@davmac.org>
Tue, 13 Feb 2018 18:32:01 +0000 (18:32 +0000)
src/includes/baseproc-sys.h
src/service.cc
src/tests/test-includes/baseproc-sys.h

index 217c8ca9bd5ebe2ac8591b3bb76debd8e33aae84..44da7628ce7dfb3c0f423a22bca1e83ccdc69a17 100644 (file)
@@ -13,5 +13,7 @@ using ::fcntl;
 using ::close;
 using ::kill;
 using ::getpgid;
+using ::tcsetpgrp;
+using ::getpgrp;
 
 }
index 4047c6eee1fd76403b47c8471e7f49024b03e3ea..fb27d81a713d52f0ee5019b7bb8a397536a567a1 100644 (file)
@@ -13,6 +13,7 @@
 #include "dinit-log.h"
 #include "dinit-socket.h"
 #include "dinit-util.h"
+#include "baseproc-sys.h"
 
 /*
  * service.cc - Service management.
@@ -52,7 +53,7 @@ void service_set::stop_service(const std::string & name) noexcept
 void service_record::stopped() noexcept
 {
     if (onstart_flags.runs_on_console) {
-        tcsetpgrp(0, getpgrp());
+        bp_sys::tcsetpgrp(0, bp_sys::getpgrp());
         discard_console_log_buffer();
         release_console();
     }
@@ -332,7 +333,7 @@ void service_record::started() noexcept
 {
     // If we start on console but don't keep it, release it now:
     if (have_console && ! onstart_flags.runs_on_console) {
-        tcsetpgrp(0, getpgrp());
+        bp_sys::tcsetpgrp(0, bp_sys::getpgrp());
         release_console();
     }
 
@@ -363,7 +364,7 @@ void service_record::started() noexcept
 void service_record::failed_to_start(bool depfailed) noexcept
 {
     if (have_console) {
-        tcsetpgrp(0, getpgrp());
+        bp_sys::tcsetpgrp(0, bp_sys::getpgrp());
         release_console();
     }
     if (waiting_for_console) {
index 638b7c2f06b291f2d74bfca6e78add2366c6c913..3ca25e02029fc94bf479db6c644fbe1c7dfbf811 100644 (file)
@@ -1,5 +1,5 @@
 #include <sys/types.h>
-#include <iostream>
+#include <unistd.h>
 
 // Mock system functions for testing.
 
@@ -20,4 +20,14 @@ inline pid_t getpgid(pid_t pid)
     return pid;
 }
 
+inline int tcsetpgrp(int fd, pid_t pgid)
+{
+    return 0;
+}
+
+inline pid_t getpgrp()
+{
+    return getpid();
+}
+
 }