| Index: base/process_util_unittest.cc
|
| diff --git a/base/process_util_unittest.cc b/base/process_util_unittest.cc
|
| index 3170b6a60c062b92b01030f52ec53e881c670b43..f32f7ba5b48f05aa8be36d05e949a9a5ee24e1e6 100644
|
| --- a/base/process_util_unittest.cc
|
| +++ b/base/process_util_unittest.cc
|
| @@ -294,6 +294,43 @@ TEST_F(ProcessUtilTest, FDRemapping) {
|
| DPCHECK(ret == 0);
|
| }
|
|
|
| +static std::string TestLaunchApp(const base::environment_vector& env_changes) {
|
| + std::vector<std::string> args;
|
| + base::file_handle_mapping_vector fds_to_remap;
|
| + ProcessHandle handle;
|
| +
|
| + args.push_back("bash");
|
| + args.push_back("-c");
|
| + args.push_back("echo $BASE_TEST");
|
| +
|
| + int fds[2];
|
| + PCHECK(pipe(fds) == 0);
|
| +
|
| + fds_to_remap.push_back(std::make_pair(fds[1], 1));
|
| + EXPECT_TRUE(LaunchApp(args, env_changes, fds_to_remap,
|
| + true /* wait for exit */, &handle));
|
| + PCHECK(close(fds[1]) == 0);
|
| +
|
| + char buf[32];
|
| + const ssize_t n = HANDLE_EINTR(read(fds[0], buf, sizeof(buf)));
|
| + PCHECK(n > 0);
|
| + return std::string(buf, n);
|
| +}
|
| +
|
| +TEST_F(ProcessUtilTest, LaunchApp) {
|
| + base::environment_vector env_changes;
|
| +
|
| + setenv("BASE_TEST", "testing", 1 /* override */);
|
| + EXPECT_EQ("testing\n", TestLaunchApp(env_changes));
|
| +
|
| + env_changes.push_back(std::make_pair(std::string("BASE_TEST"),
|
| + std::string("")));
|
| + EXPECT_EQ("\n", TestLaunchApp(env_changes));
|
| +
|
| + env_changes[0].second = "foo";
|
| + EXPECT_EQ("foo\n", TestLaunchApp(env_changes));
|
| +}
|
| +
|
| TEST_F(ProcessUtilTest, GetAppOutput) {
|
| std::string output;
|
| EXPECT_TRUE(GetAppOutput(CommandLine(FilePath("true")), &output));
|
|
|