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

Unified Diff: src/platform/update_engine/download_action_unittest.cc

Issue 1694025: AU: Update Downloader to support our image formats. (Closed) Base URL: ssh://git@chromiumos-git/chromeos
Patch Set: fixes for review Created 10 years, 8 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 side-by-side diff with in-line comments
Download patch
Index: src/platform/update_engine/download_action_unittest.cc
diff --git a/src/platform/update_engine/download_action_unittest.cc b/src/platform/update_engine/download_action_unittest.cc
index d2c5cb1a69010b991f57c944c54ca71013439be7..63535843f624773a3ed0740736e8addc35735109 100644
--- a/src/platform/update_engine/download_action_unittest.cc
+++ b/src/platform/update_engine/download_action_unittest.cc
@@ -65,32 +65,30 @@ gboolean StartProcessorInRunLoop(gpointer data) {
return FALSE;
}
-void TestWithData(const vector<char>& data, bool compress) {
- vector<char> use_data;
- if (compress) {
- use_data = GzipCompressData(data);
- } else {
- use_data = data;
- }
-
+void TestWithData(const vector<char>& data) {
GMainLoop *loop = g_main_loop_new(g_main_context_default(), FALSE);
// TODO(adlr): see if we need a different file for build bots
- const string path("/tmp/DownloadActionTest");
+ ScopedTempFile output_temp_file;
+ DirectFileWriter writer;
+
// takes ownership of passed in HttpFetcher
- InstallPlan install_plan(compress, "",
- OmahaHashCalculator::OmahaHashOfData(use_data),
- path);
+ InstallPlan install_plan(true,
+ "",
+ OmahaHashCalculator::OmahaHashOfData(data),
+ output_temp_file.GetPath(),
+ "");
ObjectFeederAction<InstallPlan> feeder_action;
feeder_action.set_obj(install_plan);
- DownloadAction download_action(new MockHttpFetcher(&use_data[0],
- use_data.size()));
+ DownloadAction download_action(new MockHttpFetcher(&data[0],
+ data.size()));
+ download_action.SetTestFileWriter(&writer);
BondActions(&feeder_action, &download_action);
DownloadActionTestProcessorDelegate delegate;
delegate.loop_ = loop;
delegate.expected_data_ = data;
- delegate.path_ = path;
+ delegate.path_ = output_temp_file.GetPath();
ActionProcessor processor;
processor.set_delegate(&delegate);
processor.EnqueueAction(&feeder_action);
@@ -99,9 +97,6 @@ void TestWithData(const vector<char>& data, bool compress) {
g_timeout_add(0, &StartProcessorInRunLoop, &processor);
g_main_loop_run(loop);
g_main_loop_unref(loop);
-
- // remove temp file; don't care if there are errors here
- unlink(path.c_str());
}
} // namespace {}
@@ -109,8 +104,7 @@ TEST(DownloadActionTest, SimpleTest) {
vector<char> small;
const char* foo = "foo";
small.insert(small.end(), foo, foo + strlen(foo));
- TestWithData(small, false);
- TestWithData(small, true);
+ TestWithData(small);
}
TEST(DownloadActionTest, LargeTest) {
@@ -123,8 +117,7 @@ TEST(DownloadActionTest, LargeTest) {
else
c++;
}
- TestWithData(big, false);
- TestWithData(big, true);
+ TestWithData(big);
}
namespace {
@@ -153,13 +146,16 @@ TEST(DownloadActionTest, TerminateEarlyTest) {
vector<char> data(kMockHttpFetcherChunkSize + kMockHttpFetcherChunkSize / 2);
memset(&data[0], 0, data.size());
- const string path("/tmp/DownloadActionTest");
+ ScopedTempFile temp_file;
{
+ DirectFileWriter writer;
+
// takes ownership of passed in HttpFetcher
ObjectFeederAction<InstallPlan> feeder_action;
- InstallPlan install_plan(false, "", "", path);
+ InstallPlan install_plan(true, "", "", temp_file.GetPath(), "");
feeder_action.set_obj(install_plan);
DownloadAction download_action(new MockHttpFetcher(&data[0], data.size()));
+ download_action.SetTestFileWriter(&writer);
TerminateEarlyTestProcessorDelegate delegate;
delegate.loop_ = loop;
ActionProcessor processor;
@@ -174,7 +170,8 @@ TEST(DownloadActionTest, TerminateEarlyTest) {
}
// 1 or 0 chunks should have come through
- const off_t resulting_file_size(utils::FileSize(path));
+ const off_t resulting_file_size(utils::FileSize(temp_file.GetPath()));
+ EXPECT_GE(resulting_file_size, 0);
if (resulting_file_size != 0)
EXPECT_EQ(kMockHttpFetcherChunkSize, resulting_file_size);
}
@@ -231,13 +228,18 @@ gboolean PassObjectOutTestStarter(gpointer data) {
TEST(DownloadActionTest, PassObjectOutTest) {
GMainLoop *loop = g_main_loop_new(g_main_context_default(), FALSE);
+ DirectFileWriter writer;
+
// takes ownership of passed in HttpFetcher
- InstallPlan install_plan(false, "",
+ InstallPlan install_plan(true,
+ "",
OmahaHashCalculator::OmahaHashOfString("x"),
+ "/dev/null",
"/dev/null");
ObjectFeederAction<InstallPlan> feeder_action;
feeder_action.set_obj(install_plan);
DownloadAction download_action(new MockHttpFetcher("x", 1));
+ download_action.SetTestFileWriter(&writer);
DownloadActionTestAction test_action;
test_action.expected_input_object_ = install_plan;
@@ -263,12 +265,15 @@ TEST(DownloadActionTest, BadOutFileTest) {
GMainLoop *loop = g_main_loop_new(g_main_context_default(), FALSE);
const string path("/fake/path/that/cant/be/created/because/of/missing/dirs");
+ DirectFileWriter writer;
// takes ownership of passed in HttpFetcher
- InstallPlan install_plan(false, "", "", path);
+ InstallPlan install_plan(true, "", "", path, "");
ObjectFeederAction<InstallPlan> feeder_action;
feeder_action.set_obj(install_plan);
DownloadAction download_action(new MockHttpFetcher("x", 1));
+ download_action.SetTestFileWriter(&writer);
+
BondActions(&feeder_action, &download_action);
ActionProcessor processor;
« no previous file with comments | « src/platform/update_engine/download_action.cc ('k') | src/platform/update_engine/filesystem_copier_action.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698