updater: Fix a bug in DeleteFn().

Also add a testcase for delete() function.

Test: recovery_component_test passes.
Change-Id: I064d1ad4693c3ed339d0a69eabadd08a61a2ea86
This commit is contained in:
Tao Bao
2016-11-03 23:28:36 -07:00
parent da2b34b5d0
commit 0831d0b592
2 changed files with 46 additions and 9 deletions
+33
View File
@@ -147,3 +147,36 @@ TEST_F(UpdaterTest, file_getprop) {
"\", \"ro.product.model\")");
expect("", script6.c_str(), kNoCause);
}
TEST_F(UpdaterTest, delete) {
// Delete none.
expect("0", "delete()", kNoCause);
expect("0", "delete(\"/doesntexist\")", kNoCause);
expect("0", "delete(\"/doesntexist1\", \"/doesntexist2\")", kNoCause);
expect("0", "delete(\"/doesntexist1\", \"/doesntexist2\", \"/doesntexist3\")", kNoCause);
// Delete one file.
TemporaryFile temp_file1;
ASSERT_TRUE(android::base::WriteStringToFile("abc", temp_file1.path));
std::string script1("delete(\"" + std::string(temp_file1.path) + "\")");
expect("1", script1.c_str(), kNoCause);
// Delete two files.
TemporaryFile temp_file2;
ASSERT_TRUE(android::base::WriteStringToFile("abc", temp_file2.path));
TemporaryFile temp_file3;
ASSERT_TRUE(android::base::WriteStringToFile("abc", temp_file3.path));
std::string script2("delete(\"" + std::string(temp_file2.path) + "\", \"" +
std::string(temp_file3.path) + "\")");
expect("2", script2.c_str(), kNoCause);
// Delete already deleted files.
expect("0", script2.c_str(), kNoCause);
// Delete one out of three.
TemporaryFile temp_file4;
ASSERT_TRUE(android::base::WriteStringToFile("abc", temp_file4.path));
std::string script3("delete(\"/doesntexist1\", \"" + std::string(temp_file4.path) +
"\", \"/doesntexist2\")");
expect("1", script3.c_str(), kNoCause);
}