Change StringValue to use std::string
Changing the field of 'Value' in edify to std::string from char*.
Meanwhile cleaning up the users of 'Value' and switching them to
cpp style.
Test: compontent tests passed.
Bug: 31713288
Change-Id: Iec5a7d601b1e4ca40935bf1c70d325dafecec235
diff --git a/tests/component/applypatch_test.cpp b/tests/component/applypatch_test.cpp
index 2f7cb02..75f2e10 100644
--- a/tests/component/applypatch_test.cpp
+++ b/tests/component/applypatch_test.cpp
@@ -153,25 +153,16 @@
struct FileContents fc;
ASSERT_EQ(0, LoadFileContents(&rand_file[0], &fc));
- Value* patch1 = new Value();
- patch1->type = VAL_BLOB;
- patch1->size = fc.data.size();
- patch1->data = static_cast<char*>(malloc(fc.data.size()));
- memcpy(patch1->data, fc.data.data(), fc.data.size());
+ Value* patch1 = new Value(VAL_BLOB, std::string(fc.data.begin(), fc.data.end()));
patches.push_back(patch1);
ASSERT_EQ(0, LoadFileContents(&patch_file[0], &fc));
- Value* patch2 = new Value();
- patch2->type = VAL_BLOB;
- patch2->size = fc.st.st_size;
- patch2->data = static_cast<char*>(malloc(fc.data.size()));
- memcpy(patch2->data, fc.data.data(), fc.data.size());
+ Value* patch2 = new Value(VAL_BLOB, std::string(fc.data.begin(), fc.data.end()));
patches.push_back(patch2);
}
static void TearDownTestCase() {
delete output_f;
for (auto it = patches.begin(); it != patches.end(); ++it) {
- free((*it)->data);
delete *it;
}
patches.clear();
@@ -210,88 +201,87 @@
std::string ApplyPatchFullTest::output_loc;
TEST_F(ApplyPatchTest, CheckModeSingle) {
- char* s = &old_sha1[0];
- ASSERT_EQ(0, applypatch_check(&old_file[0], 1, &s));
+ std::vector<std::string> sha1s = { old_sha1 };
+ ASSERT_EQ(0, applypatch_check(&old_file[0], sha1s));
}
TEST_F(ApplyPatchTest, CheckModeMultiple) {
- char* argv[3] = {
- &bad_sha1_a[0],
- &old_sha1[0],
- &bad_sha1_b[0]
+ std::vector<std::string> sha1s = {
+ bad_sha1_a,
+ old_sha1,
+ bad_sha1_b
};
- ASSERT_EQ(0, applypatch_check(&old_file[0], 3, argv));
+ ASSERT_EQ(0, applypatch_check(&old_file[0], sha1s));
}
TEST_F(ApplyPatchTest, CheckModeFailure) {
- char* argv[2] = {
- &bad_sha1_a[0],
- &bad_sha1_b[0]
+ std::vector<std::string> sha1s = {
+ bad_sha1_a,
+ bad_sha1_b
};
- ASSERT_NE(0, applypatch_check(&old_file[0], 2, argv));
+ ASSERT_NE(0, applypatch_check(&old_file[0], sha1s));
}
TEST_F(ApplyPatchCacheTest, CheckCacheCorruptedSingle) {
mangle_file(old_file);
- char* s = &old_sha1[0];
- ASSERT_EQ(0, applypatch_check(&old_file[0], 1, &s));
+ std::vector<std::string> sha1s = { old_sha1 };
+ ASSERT_EQ(0, applypatch_check(&old_file[0], sha1s));
}
TEST_F(ApplyPatchCacheTest, CheckCacheCorruptedMultiple) {
mangle_file(old_file);
- char* argv[3] = {
- &bad_sha1_a[0],
- &old_sha1[0],
- &bad_sha1_b[0]
+ std::vector<std::string> sha1s = {
+ bad_sha1_a,
+ old_sha1,
+ bad_sha1_b
};
- ASSERT_EQ(0, applypatch_check(&old_file[0], 3, argv));
+ ASSERT_EQ(0, applypatch_check(&old_file[0], sha1s));
}
TEST_F(ApplyPatchCacheTest, CheckCacheCorruptedFailure) {
mangle_file(old_file);
- char* argv[2] = {
- &bad_sha1_a[0],
- &bad_sha1_b[0]
+ std::vector<std::string> sha1s = {
+ bad_sha1_a,
+ bad_sha1_b
};
- ASSERT_NE(0, applypatch_check(&old_file[0], 2, argv));
+ ASSERT_NE(0, applypatch_check(&old_file[0], sha1s));
}
TEST_F(ApplyPatchCacheTest, CheckCacheMissingSingle) {
unlink(&old_file[0]);
- char* s = &old_sha1[0];
- ASSERT_EQ(0, applypatch_check(&old_file[0], 1, &s));
+ std::vector<std::string> sha1s = { old_sha1 };
+ ASSERT_EQ(0, applypatch_check(&old_file[0], sha1s));
}
TEST_F(ApplyPatchCacheTest, CheckCacheMissingMultiple) {
unlink(&old_file[0]);
- char* argv[3] = {
- &bad_sha1_a[0],
- &old_sha1[0],
- &bad_sha1_b[0]
+ std::vector<std::string> sha1s = {
+ bad_sha1_a,
+ old_sha1,
+ bad_sha1_b
};
- ASSERT_EQ(0, applypatch_check(&old_file[0], 3, argv));
+ ASSERT_EQ(0, applypatch_check(&old_file[0], sha1s));
}
TEST_F(ApplyPatchCacheTest, CheckCacheMissingFailure) {
unlink(&old_file[0]);
- char* argv[2] = {
- &bad_sha1_a[0],
- &bad_sha1_b[0]
+ std::vector<std::string> sha1s = {
+ bad_sha1_a,
+ bad_sha1_b
};
- ASSERT_NE(0, applypatch_check(&old_file[0], 2, argv));
+ ASSERT_NE(0, applypatch_check(&old_file[0], sha1s));
}
TEST_F(ApplyPatchFullTest, ApplyInPlace) {
- std::vector<char*> sha1s;
- sha1s.push_back(&bad_sha1_a[0]);
- sha1s.push_back(&old_sha1[0]);
-
+ std::vector<std::string> sha1s = {
+ bad_sha1_a,
+ old_sha1
+ };
int ap_result = applypatch(&old_file[0],
"-",
&new_sha1[0],
new_size,
- 2,
- sha1s.data(),
+ sha1s,
patches.data(),
nullptr);
ASSERT_EQ(0, ap_result);
@@ -301,8 +291,7 @@
"-",
&new_sha1[0],
new_size,
- 2,
- sha1s.data(),
+ sha1s,
patches.data(),
nullptr);
ASSERT_EQ(0, ap_result);
@@ -310,15 +299,15 @@
}
TEST_F(ApplyPatchFullTest, ApplyInNewLocation) {
- std::vector<char*> sha1s;
- sha1s.push_back(&bad_sha1_a[0]);
- sha1s.push_back(&old_sha1[0]);
+ std::vector<std::string> sha1s = {
+ bad_sha1_a,
+ old_sha1
+ };
int ap_result = applypatch(&old_file[0],
&output_loc[0],
&new_sha1[0],
new_size,
- 2,
- sha1s.data(),
+ sha1s,
patches.data(),
nullptr);
ASSERT_EQ(0, ap_result);
@@ -327,8 +316,7 @@
&output_loc[0],
&new_sha1[0],
new_size,
- 2,
- sha1s.data(),
+ sha1s,
patches.data(),
nullptr);
ASSERT_EQ(0, ap_result);
@@ -337,15 +325,15 @@
TEST_F(ApplyPatchFullTest, ApplyCorruptedInNewLocation) {
mangle_file(old_file);
- std::vector<char*> sha1s;
- sha1s.push_back(&bad_sha1_a[0]);
- sha1s.push_back(&old_sha1[0]);
+ std::vector<std::string> sha1s = {
+ bad_sha1_a,
+ old_sha1
+ };
int ap_result = applypatch(&old_file[0],
&output_loc[0],
&new_sha1[0],
new_size,
- 2,
- sha1s.data(),
+ sha1s,
patches.data(),
nullptr);
ASSERT_EQ(0, ap_result);
@@ -354,8 +342,7 @@
&output_loc[0],
&new_sha1[0],
new_size,
- 2,
- sha1s.data(),
+ sha1s,
patches.data(),
nullptr);
ASSERT_EQ(0, ap_result);
@@ -366,15 +353,15 @@
mangle_file(old_file);
mangle_file(cache_file);
- std::vector<char*> sha1s;
- sha1s.push_back(&bad_sha1_a[0]);
- sha1s.push_back(&old_sha1[0]);
+ std::vector<std::string> sha1s = {
+ bad_sha1_a,
+ old_sha1
+ };
int ap_result = applypatch(&old_file[0],
&output_loc[0],
&new_sha1[0],
new_size,
- 2,
- sha1s.data(),
+ sha1s,
patches.data(),
nullptr);
ASSERT_NE(0, ap_result);
@@ -383,8 +370,7 @@
&output_loc[0],
&new_sha1[0],
new_size,
- 2,
- sha1s.data(),
+ sha1s,
patches.data(),
nullptr);
ASSERT_NE(0, ap_result);
diff --git a/tests/component/edify_test.cpp b/tests/component/edify_test.cpp
index a4dbb9f..287e40c 100644
--- a/tests/component/edify_test.cpp
+++ b/tests/component/edify_test.cpp
@@ -28,15 +28,15 @@
State state(expr_str, nullptr);
- char* result = Evaluate(&state, e);
+ std::string result;
+ bool status = Evaluate(&state, e, &result);
if (expected == nullptr) {
- EXPECT_EQ(nullptr, result);
+ EXPECT_FALSE(status);
} else {
- EXPECT_STREQ(expected, result);
+ EXPECT_STREQ(expected, result.c_str());
}
- free(result);
}
class EdifyTest : public ::testing::Test {
diff --git a/tests/component/updater_test.cpp b/tests/component/updater_test.cpp
index 64a6b37..a859f11 100644
--- a/tests/component/updater_test.cpp
+++ b/tests/component/updater_test.cpp
@@ -32,12 +32,13 @@
State state(expr_str, nullptr);
- char* result = Evaluate(&state, e);
+ std::string result;
+ bool status = Evaluate(&state, e, &result);
if (expected == nullptr) {
- EXPECT_EQ(nullptr, result);
+ EXPECT_FALSE(status);
} else {
- EXPECT_STREQ(expected, result);
+ EXPECT_STREQ(expected, result.c_str());
}
// Error code is set in updater/updater.cpp only, by parsing State.errmsg.
@@ -46,7 +47,6 @@
// Cause code should always be available.
EXPECT_EQ(cause_code, state.cause_code);
- free(result);
}
class UpdaterTest : public ::testing::Test {