| Index: postinstall_runner_action_unittest.cc
|
| diff --git a/postinstall_runner_action_unittest.cc b/postinstall_runner_action_unittest.cc
|
| index 05acb4c6b52cd4d7bb024dd0671a30eef9ede6fb..2db4edc2c1d77d107cf7dc6f3cdc446ed62ec1de 100644
|
| --- a/postinstall_runner_action_unittest.cc
|
| +++ b/postinstall_runner_action_unittest.cc
|
| @@ -31,7 +31,7 @@ gboolean StartProcessorInRunLoop(gpointer data) {
|
|
|
| class PostinstallRunnerActionTest : public ::testing::Test {
|
| public:
|
| - void DoTest(bool do_losetup, bool do_err_script);
|
| + void DoTest(bool do_losetup, int err_code);
|
| };
|
|
|
| class PostinstActionProcessorDelegate : public ActionProcessorDelegate {
|
| @@ -60,20 +60,25 @@ class PostinstActionProcessorDelegate : public ActionProcessorDelegate {
|
|
|
| TEST_F(PostinstallRunnerActionTest, RunAsRootSimpleTest) {
|
| ASSERT_EQ(0, getuid());
|
| - DoTest(true, false);
|
| + DoTest(true, 0);
|
| }
|
|
|
| TEST_F(PostinstallRunnerActionTest, RunAsRootCantMountTest) {
|
| ASSERT_EQ(0, getuid());
|
| - DoTest(false, false);
|
| + DoTest(false, 0);
|
| }
|
|
|
| TEST_F(PostinstallRunnerActionTest, RunAsRootErrScriptTest) {
|
| ASSERT_EQ(0, getuid());
|
| - DoTest(true, true);
|
| + DoTest(true, 1);
|
| }
|
|
|
| -void PostinstallRunnerActionTest::DoTest(bool do_losetup, bool do_err_script) {
|
| +TEST_F(PostinstallRunnerActionTest, RunAsRootFirmwareBErrScriptTest) {
|
| + ASSERT_EQ(0, getuid());
|
| + DoTest(true, 2);
|
| +}
|
| +
|
| +void PostinstallRunnerActionTest::DoTest(bool do_losetup, int err_code) {
|
| ASSERT_EQ(0, getuid()) << "Run me as root. Ideally don't run other tests "
|
| << "as root, tho.";
|
|
|
| @@ -107,8 +112,8 @@ void PostinstallRunnerActionTest::DoTest(bool do_losetup, bool do_err_script) {
|
| " touch %s/postinst_called\n"
|
| "fi\n",
|
| cwd.c_str());
|
| - if (do_err_script) {
|
| - script = "#!/bin/bash\nexit 1";
|
| + if (err_code) {
|
| + script = StringPrintf("#!/bin/bash\nexit %d", err_code);
|
| }
|
| ASSERT_TRUE(WriteFileString(mountpoint + "/postinst", script));
|
| ASSERT_EQ(0, System(string("chmod a+x ") + mountpoint + "/postinst"));
|
| @@ -161,16 +166,18 @@ void PostinstallRunnerActionTest::DoTest(bool do_losetup, bool do_err_script) {
|
| ASSERT_FALSE(processor.IsRunning());
|
|
|
| EXPECT_TRUE(delegate.code_set_);
|
| - EXPECT_EQ(do_losetup && !do_err_script, delegate.code_ == kActionCodeSuccess);
|
| - EXPECT_EQ(do_losetup && !do_err_script,
|
| + EXPECT_EQ(do_losetup && !err_code, delegate.code_ == kActionCodeSuccess);
|
| + EXPECT_EQ(do_losetup && !err_code,
|
| !collector_action.object().install_path.empty());
|
| - if (do_losetup && !do_err_script) {
|
| + if (do_losetup && !err_code) {
|
| EXPECT_TRUE(install_plan == collector_action.object());
|
| }
|
| + if (err_code == 2)
|
| + EXPECT_EQ(kActionCodePostinstallBootedFromFirmwareB, delegate.code_);
|
|
|
| struct stat stbuf;
|
| int rc = lstat((string(cwd) + "/postinst_called").c_str(), &stbuf);
|
| - if (do_losetup && !do_err_script)
|
| + if (do_losetup && !err_code)
|
| ASSERT_EQ(0, rc);
|
| else
|
| ASSERT_LT(rc, 0);
|
|
|