| Index: subprocess_unittest.cc
|
| diff --git a/subprocess_unittest.cc b/subprocess_unittest.cc
|
| index 679f85c12a4b3420b18ad34831477ef8dd77197e..314e0ae28dba1119cc77e0ec694a82e7febb1806 100644
|
| --- a/subprocess_unittest.cc
|
| +++ b/subprocess_unittest.cc
|
| @@ -27,18 +27,35 @@ class SubprocessTest : public ::testing::Test {
|
| namespace {
|
| const int kLocalHttpPort = 8088;
|
|
|
| -void Callback(int return_code, void *p) {
|
| +void Callback(int return_code, const string& output, void *p) {
|
| EXPECT_EQ(256, return_code);
|
| GMainLoop* loop = reinterpret_cast<GMainLoop*>(p);
|
| g_main_loop_quit(loop);
|
| }
|
|
|
| +void CallbackEcho(int return_code, const string& output, void *p) {
|
| + EXPECT_EQ(0, return_code);
|
| + EXPECT_NE(string::npos, output.find("this is stdout"));
|
| + EXPECT_NE(string::npos, output.find("this is stderr"));
|
| + GMainLoop* loop = reinterpret_cast<GMainLoop*>(p);
|
| + g_main_loop_quit(loop);
|
| +}
|
| +
|
| gboolean LaunchFalseInMainLoop(gpointer data) {
|
| vector<string> cmd;
|
| cmd.push_back("/bin/false");
|
| Subprocess::Get().Exec(cmd, Callback, data);
|
| return FALSE;
|
| }
|
| +
|
| +gboolean LaunchEchoInMainLoop(gpointer data) {
|
| + vector<string> cmd;
|
| + cmd.push_back("/bin/sh");
|
| + cmd.push_back("-c");
|
| + cmd.push_back("echo this is stdout; echo this is stderr > /dev/stderr");
|
| + Subprocess::Get().Exec(cmd, CallbackEcho, data);
|
| + return FALSE;
|
| +}
|
| } // namespace {}
|
|
|
| TEST(SubprocessTest, SimpleTest) {
|
| @@ -48,8 +65,15 @@ TEST(SubprocessTest, SimpleTest) {
|
| g_main_loop_unref(loop);
|
| }
|
|
|
| +TEST(SubprocessTest, EchoTest) {
|
| + GMainLoop *loop = g_main_loop_new(g_main_context_default(), FALSE);
|
| + g_timeout_add(0, &LaunchEchoInMainLoop, loop);
|
| + g_main_loop_run(loop);
|
| + g_main_loop_unref(loop);
|
| +}
|
| +
|
| namespace {
|
| -void CallbackBad(int return_code, void *p) {
|
| +void CallbackBad(int return_code, const string& output, void *p) {
|
| CHECK(false) << "should never be called.";
|
| }
|
|
|
|
|