Use the scoped loopback releaser which implements timeout and retries.
BUG=chromium-os:12730
TEST=unit tests
Change-Id: I2da8213b3202482148b92c97caa9d7a87d76a95b
Review URL: http://codereview.chromium.org/6609041
diff --git a/postinstall_runner_action_unittest.cc b/postinstall_runner_action_unittest.cc
index baf03b6..05acb4c 100644
--- a/postinstall_runner_action_unittest.cc
+++ b/postinstall_runner_action_unittest.cc
@@ -132,8 +132,11 @@
if (dev[strlen(dev) - 1] == '\n')
dev[strlen(dev) - 1] = '\0';
- if (do_losetup)
+ scoped_ptr<ScopedLoopbackDeviceReleaser> loop_releaser;
+ if (do_losetup) {
ASSERT_EQ(0, System(string("losetup ") + dev + " " + cwd + "/image.dat"));
+ loop_releaser.reset(new ScopedLoopbackDeviceReleaser(dev));
+ }
ActionProcessor processor;
ObjectFeederAction<InstallPlan> feeder_action;
@@ -172,8 +175,9 @@
else
ASSERT_LT(rc, 0);
- if (do_losetup)
- ASSERT_EQ(0, System(string("losetup -d ") + dev));
+ if (do_losetup) {
+ loop_releaser.reset(NULL);
+ }
ASSERT_EQ(0, System(string("rm -f ") + cwd + "/postinst_called"));
ASSERT_EQ(0, System(string("rm -f ") + cwd + "/image.dat"));
}