Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(568)

Side by Side Diff: postinstall_runner_action_unittest.cc

Issue 6609041: Use the scoped loopback releaser which implements timeout and retries. (Closed) Base URL: ssh://git@gitrw.chromium.org:9222/update_engine.git@master
Patch Set: Created 9 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium OS Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <sys/stat.h> 5 #include <sys/stat.h>
6 #include <sys/types.h> 6 #include <sys/types.h>
7 #include <unistd.h> 7 #include <unistd.h>
8 8
9 #include <string> 9 #include <string>
10 #include <vector> 10 #include <vector>
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
125 size_t r = fread(dev, 1, sizeof(dev), find_dev_cmd); 125 size_t r = fread(dev, 1, sizeof(dev), find_dev_cmd);
126 ASSERT_GT(r, 0); 126 ASSERT_GT(r, 0);
127 ASSERT_LT(r, sizeof(dev)); 127 ASSERT_LT(r, sizeof(dev));
128 ASSERT_TRUE(feof(find_dev_cmd)); 128 ASSERT_TRUE(feof(find_dev_cmd));
129 fclose(find_dev_cmd); 129 fclose(find_dev_cmd);
130 130
131 // strip trailing newline on dev 131 // strip trailing newline on dev
132 if (dev[strlen(dev) - 1] == '\n') 132 if (dev[strlen(dev) - 1] == '\n')
133 dev[strlen(dev) - 1] = '\0'; 133 dev[strlen(dev) - 1] = '\0';
134 134
135 if (do_losetup) 135 scoped_ptr<ScopedLoopbackDeviceReleaser> loop_releaser;
136 if (do_losetup) {
136 ASSERT_EQ(0, System(string("losetup ") + dev + " " + cwd + "/image.dat")); 137 ASSERT_EQ(0, System(string("losetup ") + dev + " " + cwd + "/image.dat"));
138 loop_releaser.reset(new ScopedLoopbackDeviceReleaser(dev));
139 }
137 140
138 ActionProcessor processor; 141 ActionProcessor processor;
139 ObjectFeederAction<InstallPlan> feeder_action; 142 ObjectFeederAction<InstallPlan> feeder_action;
140 InstallPlan install_plan; 143 InstallPlan install_plan;
141 install_plan.install_path = dev; 144 install_plan.install_path = dev;
142 feeder_action.set_obj(install_plan); 145 feeder_action.set_obj(install_plan);
143 PostinstallRunnerAction runner_action; 146 PostinstallRunnerAction runner_action;
144 BondActions(&feeder_action, &runner_action); 147 BondActions(&feeder_action, &runner_action);
145 ObjectCollectorAction<InstallPlan> collector_action; 148 ObjectCollectorAction<InstallPlan> collector_action;
146 BondActions(&runner_action, &collector_action); 149 BondActions(&runner_action, &collector_action);
(...skipping 18 matching lines...) Expand all
165 EXPECT_TRUE(install_plan == collector_action.object()); 168 EXPECT_TRUE(install_plan == collector_action.object());
166 } 169 }
167 170
168 struct stat stbuf; 171 struct stat stbuf;
169 int rc = lstat((string(cwd) + "/postinst_called").c_str(), &stbuf); 172 int rc = lstat((string(cwd) + "/postinst_called").c_str(), &stbuf);
170 if (do_losetup && !do_err_script) 173 if (do_losetup && !do_err_script)
171 ASSERT_EQ(0, rc); 174 ASSERT_EQ(0, rc);
172 else 175 else
173 ASSERT_LT(rc, 0); 176 ASSERT_LT(rc, 0);
174 177
175 if (do_losetup) 178 if (do_losetup) {
176 ASSERT_EQ(0, System(string("losetup -d ") + dev)); 179 loop_releaser.reset(NULL);
180 }
177 ASSERT_EQ(0, System(string("rm -f ") + cwd + "/postinst_called")); 181 ASSERT_EQ(0, System(string("rm -f ") + cwd + "/postinst_called"));
178 ASSERT_EQ(0, System(string("rm -f ") + cwd + "/image.dat")); 182 ASSERT_EQ(0, System(string("rm -f ") + cwd + "/image.dat"));
179 } 183 }
180 184
181 // Death tests don't seem to be working on Hardy 185 // Death tests don't seem to be working on Hardy
182 TEST_F(PostinstallRunnerActionTest, DISABLED_RunAsRootDeathTest) { 186 TEST_F(PostinstallRunnerActionTest, DISABLED_RunAsRootDeathTest) {
183 ASSERT_EQ(0, getuid()); 187 ASSERT_EQ(0, getuid());
184 PostinstallRunnerAction runner_action; 188 PostinstallRunnerAction runner_action;
185 ASSERT_DEATH({ runner_action.TerminateProcessing(); }, 189 ASSERT_DEATH({ runner_action.TerminateProcessing(); },
186 "postinstall_runner_action.h:.*] Check failed"); 190 "postinstall_runner_action.h:.*] Check failed");
187 } 191 }
188 192
189 } // namespace chromeos_update_engine 193 } // namespace chromeos_update_engine
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698