Add process service stop timeout test.
[oweals/dinit.git] / src / tests / test-bpsys.cc
1 #include <vector>
2 #include <utility>
3 #include <algorithm>
4
5 #include "baseproc-sys.h"
6
7 static std::vector<bool> usedfds = {true, true, true};
8
9 // Allocate a file descriptor
10 static int allocfd()
11 {
12     auto f = std::find(usedfds.begin(), usedfds.end(), false);
13     if (f == usedfds.end()) {
14         int r = usedfds.size();
15         usedfds.push_back(true);
16         return r;
17     }
18
19     *f = true;
20     return f - usedfds.begin();
21 }
22
23 namespace bp_sys {
24
25 int last_sig_sent = -1; // last signal number sent, accessible for tests.
26
27 int pipe2(int fds[2], int flags)
28 {
29     fds[0] = allocfd();
30     fds[1] = allocfd();
31     return 0;
32 }
33
34 int close(int fd)
35 {
36     if (fd >= usedfds.size()) abort();
37
38     usedfds[fd] = false;
39     return 0;
40 }
41
42 int kill(pid_t pid, int sig)
43 {
44     last_sig_sent = sig;
45     return 0;
46 }
47
48 }