| Index: base/process/process_util_unittest.cc
 | 
| diff --git a/base/process/process_util_unittest.cc b/base/process/process_util_unittest.cc
 | 
| index 33cf00f31dce49628807adb7fa11448ccb2fdd88..5ed15d2ae6b70bce2a0b9e6fcb90c27eff49f21c 100644
 | 
| --- a/base/process/process_util_unittest.cc
 | 
| +++ b/base/process/process_util_unittest.cc
 | 
| @@ -1023,4 +1023,42 @@ TEST(ForkWithFlagsTest, UpdatesPidCache) {
 | 
|    ASSERT_TRUE(WIFEXITED(status));
 | 
|    EXPECT_EQ(kSuccess, WEXITSTATUS(status));
 | 
|  }
 | 
| +
 | 
| +MULTIPROCESS_TEST_MAIN(CheckCwdProcess) {
 | 
| +  base::FilePath expected;
 | 
| +  CHECK(base::GetTempDir(&expected));
 | 
| +  base::FilePath actual;
 | 
| +  CHECK(base::GetCurrentDirectory(&actual));
 | 
| +  CHECK(actual == expected);
 | 
| +  return kSuccess;
 | 
| +}
 | 
| +
 | 
| +TEST_F(ProcessUtilTest, CurrentDirectory) {
 | 
| +  // TODO(rickyz): Add support for passing arguments to multiprocess children,
 | 
| +  // then create a special directory for this test.
 | 
| +  base::FilePath tmp_dir;
 | 
| +  ASSERT_TRUE(base::GetTempDir(&tmp_dir));
 | 
| +
 | 
| +  base::LaunchOptions options;
 | 
| +  options.current_directory = tmp_dir;
 | 
| +
 | 
| +  base::Process process(SpawnChildWithOptions("CheckCwdProcess", options));
 | 
| +  ASSERT_TRUE(process.IsValid());
 | 
| +
 | 
| +  int exit_code = 42;
 | 
| +  EXPECT_TRUE(process.WaitForExit(&exit_code));
 | 
| +  EXPECT_EQ(kSuccess, exit_code);
 | 
| +}
 | 
| +
 | 
| +TEST_F(ProcessUtilTest, InvalidCurrentDirectory) {
 | 
| +  base::LaunchOptions options;
 | 
| +  options.current_directory = base::FilePath("/dev/null");
 | 
| +
 | 
| +  base::Process process(SpawnChildWithOptions("SimpleChildProcess", options));
 | 
| +  ASSERT_TRUE(process.IsValid());
 | 
| +
 | 
| +  int exit_code = kSuccess;
 | 
| +  EXPECT_TRUE(process.WaitForExit(&exit_code));
 | 
| +  EXPECT_NE(kSuccess, exit_code);
 | 
| +}
 | 
|  #endif
 | 
| 
 |