projects
/
awesomized
/
libmemcached
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
|
github
raw
|
inline
| side by side
testing: flush tests
[awesomized/libmemcached]
/
testing
/
lib
/
Server.hpp
diff --git
a/testing/lib/Server.hpp
b/testing/lib/Server.hpp
index bb4bfa7f9bfea4410fbfaf275d2cdca2b96891ae..fb1b8af184c04e443b60eae06404eb264dbde8a7 100644
(file)
--- a/
testing/lib/Server.hpp
+++ b/
testing/lib/Server.hpp
@@
-29,21
+29,30
@@
public:
binary = exchange(s.binary, "false");
args = exchange(s.args, {});
pid = exchange(s.pid, 0);
binary = exchange(s.binary, "false");
args = exchange(s.args, {});
pid = exchange(s.pid, 0);
+ pipe = exchange(s.pipe, -1);
status = exchange(s.status, 0);
signalled = exchange(s.signalled, {});
socket_or_port = exchange(s.socket_or_port, {});
status = exchange(s.status, 0);
signalled = exchange(s.signalled, {});
socket_or_port = exchange(s.socket_or_port, {});
+ output = exchange(s.output, {});
return *this;
};
pid_t getPid() const;
return *this;
};
pid_t getPid() const;
-
+ int getPipe() const;
const string &getBinary() const;
const string &getBinary() const;
-
const argv_t &getArgs() const;
const argv_t &getArgs() const;
-
const socket_or_port_t &getSocketOrPort() const;
const socket_or_port_t &getSocketOrPort() const;
- optional<pid_t> start();
+ struct ChildProc {
+ pid_t pid;
+ int pipe;
+ ChildProc(pid_t pid_, int pipe_)
+ : pid{pid_}
+ , pipe{pipe_}
+ {
+ }
+ };
+ optional<ChildProc> start();
bool stop();
bool signal(int signo = SIGTERM);
bool stop();
bool signal(int signo = SIGTERM);
@@
-52,14
+61,18
@@
public:
bool wait(int flags = 0);
bool tryWait();
bool wait(int flags = 0);
bool tryWait();
+ string &drain();
+
private:
string binary;
argv_t args;
pid_t pid = 0;
private:
string binary;
argv_t args;
pid_t pid = 0;
+ int pipe = -1;
int status = 0;
unordered_map<int, unsigned> signalled;
socket_or_port_t socket_or_port = 11211;
int status = 0;
unordered_map<int, unsigned> signalled;
socket_or_port_t socket_or_port = 11211;
+ string output;
[[nodiscard]]
vector<char *> createArgv();
[[nodiscard]]
vector<char *> createArgv();
@@
-70,7
+83,7
@@
inline ostream &operator << (ostream &out, const socket_or_port_t sop) {
if (holds_alternative<string>(sop)) {
out << get<string>(sop);
} else {
if (holds_alternative<string>(sop)) {
out << get<string>(sop);
} else {
- out << get<int>(sop);
+ out <<
":" <<
get<int>(sop);
}
return out;
}
}
return out;
}