Fix UNSAFE_TODOs in several unit tests
Bug: 42271176
Change-Id: Ia1997cf0536fab57e856ceea153691ad4ca65fa9
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/120494
Reviewed-by: Lei Zhang <thestig@chromium.org>
Reviewed-by: Thomas Sepez <tsepez@google.com>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
diff --git a/core/fpdfapi/parser/cpdf_object_unittest.cpp b/core/fpdfapi/parser/cpdf_object_unittest.cpp
index 577593b..c90eac8 100644
--- a/core/fpdfapi/parser/cpdf_object_unittest.cpp
+++ b/core/fpdfapi/parser/cpdf_object_unittest.cpp
@@ -199,83 +199,84 @@
};
TEST_F(PDFObjectsTest, GetString) {
- const char* const direct_obj_results[] = {
- "false", "true", "1245", "9.00345", "A simple test", "\t\n", "space",
- "", "", "", ""};
+ constexpr auto direct_obj_results = fxcrt::ToArray<const char*>(
+ {"false", "true", "1245", "9.00345", "A simple test", "\t\n", "space", "",
+ "", "", ""});
// Check for direct objects.
- for (size_t i = 0; i < m_DirectObjs.size(); ++i)
- EXPECT_EQ(UNSAFE_TODO(direct_obj_results[i]), m_DirectObjs[i]->GetString());
+ for (size_t i = 0; i < m_DirectObjs.size(); ++i) {
+ EXPECT_EQ(direct_obj_results[i], m_DirectObjs[i]->GetString());
+ }
// Check indirect references.
- const char* const indirect_obj_results[] = {"true", "1245", "\t\n", "space",
- "", "", ""};
+ constexpr auto indirect_obj_results = fxcrt::ToArray<const char*>(
+ {"true", "1245", "\t\n", "space", "", "", ""});
for (size_t i = 0; i < m_RefObjs.size(); ++i) {
- EXPECT_EQ(UNSAFE_TODO(indirect_obj_results[i]), m_RefObjs[i]->GetString());
+ EXPECT_EQ(indirect_obj_results[i], m_RefObjs[i]->GetString());
}
}
TEST_F(PDFObjectsTest, GetUnicodeText) {
- const wchar_t* const direct_obj_results[] = {
- L"", L"", L"", L"", L"A simple test",
- L"\t\n", L"space", L"", L"", L"abcdefghijklmnopqrstuvwxyz",
- L""};
+ constexpr auto direct_obj_results = fxcrt::ToArray<const wchar_t*>(
+ {L"", L"", L"", L"", L"A simple test", L"\t\n", L"space", L"", L"",
+ L"abcdefghijklmnopqrstuvwxyz", L""});
// Check for direct objects.
for (size_t i = 0; i < m_DirectObjs.size(); ++i) {
- EXPECT_EQ(UNSAFE_TODO(direct_obj_results[i]),
- m_DirectObjs[i]->GetUnicodeText());
+ EXPECT_EQ(direct_obj_results[i], m_DirectObjs[i]->GetUnicodeText());
}
// Check indirect references.
- for (const auto& it : m_RefObjs)
+ for (const auto& it : m_RefObjs) {
EXPECT_EQ(L"", it->GetUnicodeText());
+ }
}
TEST_F(PDFObjectsTest, GetNumber) {
- const float direct_obj_results[] = {0, 0, 1245, 9.00345f, 0, 0,
- 0, 0, 0, 0, 0};
+ constexpr auto direct_obj_results =
+ fxcrt::ToArray<const float>({0, 0, 1245, 9.00345f, 0, 0, 0, 0, 0, 0, 0});
// Check for direct objects.
- for (size_t i = 0; i < m_DirectObjs.size(); ++i)
- EXPECT_EQ(UNSAFE_TODO(direct_obj_results[i]), m_DirectObjs[i]->GetNumber());
+ for (size_t i = 0; i < m_DirectObjs.size(); ++i) {
+ EXPECT_EQ(direct_obj_results[i], m_DirectObjs[i]->GetNumber());
+ }
// Check indirect references.
- const float indirect_obj_results[] = {0, 1245, 0, 0, 0, 0, 0};
+ constexpr auto indirect_obj_results =
+ fxcrt::ToArray<const float>({0, 1245, 0, 0, 0, 0, 0});
for (size_t i = 0; i < m_RefObjs.size(); ++i)
- EXPECT_EQ(UNSAFE_TODO(indirect_obj_results[i]), m_RefObjs[i]->GetNumber());
+ EXPECT_EQ(indirect_obj_results[i], m_RefObjs[i]->GetNumber());
}
TEST_F(PDFObjectsTest, GetInteger) {
- const int direct_obj_results[] = {0, 1, 1245, 9, 0, 0, 0, 0, 0, 0, 0};
+ constexpr auto direct_obj_results =
+ fxcrt::ToArray<const int>({0, 1, 1245, 9, 0, 0, 0, 0, 0, 0, 0});
// Check for direct objects.
- for (size_t i = 0; i < m_DirectObjs.size(); ++i)
- EXPECT_EQ(UNSAFE_TODO(direct_obj_results[i]),
- m_DirectObjs[i]->GetInteger());
+ for (size_t i = 0; i < m_DirectObjs.size(); ++i) {
+ EXPECT_EQ(direct_obj_results[i], m_DirectObjs[i]->GetInteger());
+ }
// Check indirect references.
- const int indirect_obj_results[] = {1, 1245, 0, 0, 0, 0, 0};
- for (size_t i = 0; i < m_RefObjs.size(); ++i)
- EXPECT_EQ(UNSAFE_TODO(indirect_obj_results[i]), m_RefObjs[i]->GetInteger());
+ constexpr auto indirect_obj_results =
+ fxcrt::ToArray<const int>({1, 1245, 0, 0, 0, 0, 0});
+ for (size_t i = 0; i < m_RefObjs.size(); ++i) {
+ EXPECT_EQ(indirect_obj_results[i], m_RefObjs[i]->GetInteger());
+ }
}
TEST_F(PDFObjectsTest, GetDict) {
- const CPDF_Dictionary* const direct_obj_results[] = {
- nullptr, nullptr, nullptr, nullptr, nullptr,
- nullptr, nullptr, nullptr, m_DictObj.Get(), m_StreamDictObj.Get(),
- nullptr};
+ const auto direct_obj_results = fxcrt::ToArray<const CPDF_Dictionary*>(
+ {nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr,
+ m_DictObj.Get(), m_StreamDictObj.Get(), nullptr});
// Check for direct objects.
- for (size_t i = 0; i < m_DirectObjs.size(); ++i)
- EXPECT_EQ(UNSAFE_TODO(direct_obj_results[i]), m_DirectObjs[i]->GetDict());
+ for (size_t i = 0; i < m_DirectObjs.size(); ++i) {
+ EXPECT_EQ(direct_obj_results[i], m_DirectObjs[i]->GetDict());
+ }
+ const auto indirect_obj_results = fxcrt::ToArray<const CPDF_Dictionary*>(
+ {nullptr, nullptr, nullptr, nullptr, nullptr, m_DictObj.Get(),
+ m_StreamDictObj.Get()});
// Check indirect references.
- const CPDF_Dictionary* const indirect_obj_results[] = {nullptr,
- nullptr,
- nullptr,
- nullptr,
- nullptr,
- m_DictObj.Get(),
- m_StreamDictObj.Get()};
- for (size_t i = 0; i < m_RefObjs.size(); ++i)
- EXPECT_TRUE(Equal(UNSAFE_TODO(indirect_obj_results[i]),
- m_RefObjs[i]->GetDict().Get()));
+ for (size_t i = 0; i < m_RefObjs.size(); ++i) {
+ EXPECT_TRUE(Equal(indirect_obj_results[i], m_RefObjs[i]->GetDict().Get()));
+ }
}
TEST_F(PDFObjectsTest, GetNameFor) {
@@ -296,16 +297,18 @@
}
TEST_F(PDFObjectsTest, GetArray) {
- const CPDF_Array* const direct_obj_results[] = {
- nullptr, nullptr, nullptr, nullptr, nullptr, nullptr,
- nullptr, m_ArrayObj.Get(), nullptr, nullptr, nullptr};
+ const auto direct_obj_results = fxcrt::ToArray<const CPDF_Array*>(
+ {nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr,
+ m_ArrayObj.Get(), nullptr, nullptr, nullptr});
// Check for direct objects.
- for (size_t i = 0; i < m_DirectObjs.size(); ++i)
- EXPECT_EQ(UNSAFE_TODO(direct_obj_results[i]), m_DirectObjs[i]->AsArray());
+ for (size_t i = 0; i < m_DirectObjs.size(); ++i) {
+ EXPECT_EQ(direct_obj_results[i], m_DirectObjs[i]->AsArray());
+ }
// Check indirect references.
- for (const auto& it : m_RefObjs)
+ for (const auto& it : m_RefObjs) {
EXPECT_FALSE(it->AsArray());
+ }
}
TEST_F(PDFObjectsTest, Clone) {
@@ -344,13 +347,13 @@
TEST_F(PDFObjectsTest, SetString) {
// Check for direct objects.
- const char* const set_values[] = {"true", "fake", "3.125f", "097",
- "changed", "", "NewName"};
- const char* const expected[] = {"true", "false", "3.125", "97",
- "changed", "", "NewName"};
+ constexpr auto set_values = fxcrt::ToArray<const char*>(
+ {"true", "fake", "3.125f", "097", "changed", "", "NewName"});
+ constexpr auto expected = fxcrt::ToArray<const char*>(
+ {"true", "false", "3.125", "97", "changed", "", "NewName"});
for (size_t i = 0; i < std::size(set_values); ++i) {
- m_DirectObjs[i]->SetString(UNSAFE_TODO(set_values[i]));
- EXPECT_EQ(UNSAFE_TODO(expected[i]), m_DirectObjs[i]->GetString());
+ m_DirectObjs[i]->SetString(set_values[i]);
+ EXPECT_EQ(expected[i], m_DirectObjs[i]->GetString());
}
}
@@ -492,83 +495,86 @@
TEST(PDFArrayTest, GetTypeAt) {
{
// Boolean array.
- const bool vals[] = {true, false, false, true, true};
+ constexpr auto vals =
+ fxcrt::ToArray<const bool>({true, false, false, true, true});
auto arr = pdfium::MakeRetain<CPDF_Array>();
- for (size_t i = 0; i < std::size(vals); ++i)
- arr->InsertNewAt<CPDF_Boolean>(i, UNSAFE_TODO(vals[i]));
- for (size_t i = 0; i < std::size(vals); ++i) {
- TestArrayAccessors(
- arr.Get(), i, // Array and index.
- UNSAFE_TODO(vals[i]) ? "true" : "false", // String value.
- nullptr, // Const string value.
- UNSAFE_TODO(vals[i]) ? 1 : 0, // Integer value.
- 0, // Float value.
- nullptr, // Array value.
- nullptr, // Dictionary value.
- nullptr); // Stream value.
+ for (size_t i = 0; i < vals.size(); ++i) {
+ arr->InsertNewAt<CPDF_Boolean>(i, vals[i]);
+ }
+ for (size_t i = 0; i < vals.size(); ++i) {
+ TestArrayAccessors(arr.Get(), i, // Array and index.
+ vals[i] ? "true" : "false", // String value.
+ nullptr, // Const string value.
+ vals[i] ? 1 : 0, // Integer value.
+ 0, // Float value.
+ nullptr, // Array value.
+ nullptr, // Dictionary value.
+ nullptr); // Stream value.
}
}
{
// Integer array.
- const int vals[] = {10, 0, -345, 2089345456, -1000000000, 567, 93658767};
+ constexpr auto vals = fxcrt::ToArray<const int>(
+ {10, 0, -345, 2089345456, -1000000000, 567, 93658767});
auto arr = pdfium::MakeRetain<CPDF_Array>();
- for (size_t i = 0; i < std::size(vals); ++i)
- arr->InsertNewAt<CPDF_Number>(i, UNSAFE_TODO(vals[i]));
- for (size_t i = 0; i < std::size(vals); ++i) {
- char buf[33];
- TestArrayAccessors(
- arr.Get(), i, // Array and index.
- FXSYS_itoa(UNSAFE_TODO(vals[i]), buf, 10), // String value.
- nullptr, // Const string value.
- UNSAFE_TODO(vals[i]), // Integer value.
- UNSAFE_TODO(vals[i]), // Float value.
- nullptr, // Array value.
- nullptr, // Dictionary value.
- nullptr); // Stream value.
+ for (size_t i = 0; i < vals.size(); ++i) {
+ arr->InsertNewAt<CPDF_Number>(i, vals[i]);
}
- }
- {
- // Float array.
- const float vals[] = {0.0f, 0, 10, 10.0f, 0.0345f,
- 897.34f, -2.5f, -1.0f, -345.0f, -0.0f};
- const char* const expected_str[] = {
- "0", "0", "10", "10", "0.0345", "897.34", "-2.5", "-1", "-345", "0"};
- auto arr = pdfium::MakeRetain<CPDF_Array>();
- for (size_t i = 0; i < std::size(vals); ++i)
- arr->InsertNewAt<CPDF_Number>(i, UNSAFE_TODO(vals[i]));
- for (size_t i = 0; i < std::size(vals); ++i) {
+ for (size_t i = 0; i < vals.size(); ++i) {
+ char buf[33];
TestArrayAccessors(arr.Get(), i, // Array and index.
- UNSAFE_TODO(expected_str[i]), // String value.
+ FXSYS_itoa(vals[i], buf, 10), // String value.
nullptr, // Const string value.
- UNSAFE_TODO(vals[i]), // Integer value.
- UNSAFE_TODO(vals[i]), // Float value.
+ vals[i], // Integer value.
+ vals[i], // Float value.
nullptr, // Array value.
nullptr, // Dictionary value.
nullptr); // Stream value.
}
}
{
+ // Float array.
+ constexpr auto vals = fxcrt::ToArray<const float>(
+ {0.0f, 0, 10, 10.0f, 0.0345f, 897.34f, -2.5f, -1.0f, -345.0f, -0.0f});
+ auto arr = pdfium::MakeRetain<CPDF_Array>();
+ for (size_t i = 0; i < vals.size(); ++i) {
+ arr->InsertNewAt<CPDF_Number>(i, vals[i]);
+ }
+ constexpr auto expected_str = fxcrt::ToArray<const char*>(
+ {"0", "0", "10", "10", "0.0345", "897.34", "-2.5", "-1", "-345", "0"});
+ for (size_t i = 0; i < vals.size(); ++i) {
+ TestArrayAccessors(arr.Get(), i, // Array and index.
+ expected_str[i], // String value.
+ nullptr, // Const string value.
+ vals[i], // Integer value.
+ vals[i], // Float value.
+ nullptr, // Array value.
+ nullptr, // Dictionary value.
+ nullptr); // Stream value.
+ }
+ }
+ {
// String and name array
- const char* const vals[] = {"this", "adsde$%^", "\r\t", "\"012",
- ".", "EYREW", "It is a joke :)"};
+ constexpr auto vals = fxcrt::ToArray<const char*>(
+ {"this", "adsde$%^", "\r\t", "\"012", ".", "EYREW", "It is a joke :)"});
auto string_array = pdfium::MakeRetain<CPDF_Array>();
auto name_array = pdfium::MakeRetain<CPDF_Array>();
- for (size_t i = 0; i < std::size(vals); ++i) {
- string_array->InsertNewAt<CPDF_String>(i, UNSAFE_TODO(vals[i]));
- name_array->InsertNewAt<CPDF_Name>(i, UNSAFE_TODO(vals[i]));
+ for (size_t i = 0; i < vals.size(); ++i) {
+ string_array->InsertNewAt<CPDF_String>(i, vals[i]);
+ name_array->InsertNewAt<CPDF_Name>(i, vals[i]);
}
for (size_t i = 0; i < std::size(vals); ++i) {
TestArrayAccessors(string_array.Get(), i, // Array and index.
- UNSAFE_TODO(vals[i]), // String value.
- UNSAFE_TODO(vals[i]), // Const string value.
+ vals[i], // String value.
+ vals[i], // Const string value.
0, // Integer value.
0, // Float value.
nullptr, // Array value.
nullptr, // Dictionary value.
nullptr); // Stream value.
TestArrayAccessors(name_array.Get(), i, // Array and index.
- UNSAFE_TODO(vals[i]), // String value.
- UNSAFE_TODO(vals[i]), // Const string value.
+ vals[i], // String value.
+ vals[i], // Const string value.
0, // Integer value.
0, // Float value.
nullptr, // Array value.
@@ -594,83 +600,83 @@
}
{
// Array of array.
- RetainPtr<CPDF_Array> vals[3];
+ std::array<RetainPtr<CPDF_Array>, 3> vals;
auto arr = pdfium::MakeRetain<CPDF_Array>();
for (size_t i = 0; i < 3; ++i) {
- UNSAFE_TODO(vals[i]) = arr->AppendNew<CPDF_Array>();
+ vals[i] = arr->AppendNew<CPDF_Array>();
for (size_t j = 0; j < 3; ++j) {
int value = j + 100;
- UNSAFE_TODO(vals[i])->InsertNewAt<CPDF_Number>(j, value);
+ vals[i]->InsertNewAt<CPDF_Number>(j, value);
}
}
for (size_t i = 0; i < 3; ++i) {
- TestArrayAccessors(arr.Get(), i, // Array and index.
- "", // String value.
- nullptr, // Const string value.
- 0, // Integer value.
- 0, // Float value.
- UNSAFE_TODO(vals[i]).Get(), // Array value.
- nullptr, // Dictionary value.
- nullptr); // Stream value.
+ TestArrayAccessors(arr.Get(), i, // Array and index.
+ "", // String value.
+ nullptr, // Const string value.
+ 0, // Integer value.
+ 0, // Float value.
+ vals[i].Get(), // Array value.
+ nullptr, // Dictionary value.
+ nullptr); // Stream value.
}
}
{
// Dictionary array.
- RetainPtr<CPDF_Dictionary> vals[3];
+ std::array<RetainPtr<CPDF_Dictionary>, 3> vals;
auto arr = pdfium::MakeRetain<CPDF_Array>();
for (size_t i = 0; i < 3; ++i) {
- UNSAFE_TODO(vals[i]) = arr->AppendNew<CPDF_Dictionary>();
+ vals[i] = arr->AppendNew<CPDF_Dictionary>();
for (size_t j = 0; j < 3; ++j) {
std::string key("key");
char buf[33];
key.append(FXSYS_itoa(j, buf, 10));
int value = j + 200;
- UNSAFE_TODO(vals[i])->SetNewFor<CPDF_Number>(key.c_str(), value);
+ vals[i]->SetNewFor<CPDF_Number>(key.c_str(), value);
}
}
for (size_t i = 0; i < 3; ++i) {
- TestArrayAccessors(arr.Get(), i, // Array and index.
- "", // String value.
- nullptr, // Const string value.
- 0, // Integer value.
- 0, // Float value.
- nullptr, // Array value.
- UNSAFE_TODO(vals[i]).Get(), // Dictionary value.
- nullptr); // Stream value.
+ TestArrayAccessors(arr.Get(), i, // Array and index.
+ "", // String value.
+ nullptr, // Const string value.
+ 0, // Integer value.
+ 0, // Float value.
+ nullptr, // Array value.
+ vals[i].Get(), // Dictionary value.
+ nullptr); // Stream value.
}
}
{
// Stream array.
CPDF_IndirectObjectHolder object_holder;
- RetainPtr<CPDF_Dictionary> vals[3];
- RetainPtr<CPDF_Stream> stream_vals[3];
+ std::array<RetainPtr<CPDF_Dictionary>, 3> vals;
+ std::array<RetainPtr<CPDF_Stream>, 3> stream_vals;
auto arr = pdfium::MakeRetain<CPDF_Array>();
for (size_t i = 0; i < 3; ++i) {
- UNSAFE_TODO(vals[i]) = pdfium::MakeRetain<CPDF_Dictionary>();
+ vals[i] = pdfium::MakeRetain<CPDF_Dictionary>();
for (size_t j = 0; j < 3; ++j) {
std::string key("key");
char buf[33];
key.append(FXSYS_itoa(j, buf, 10));
int value = j + 200;
- UNSAFE_TODO(vals[i])->SetNewFor<CPDF_Number>(key.c_str(), value);
+ vals[i]->SetNewFor<CPDF_Number>(key.c_str(), value);
}
static constexpr uint8_t kContents[] = "content: this is a stream";
- UNSAFE_TODO(stream_vals[i]) = object_holder.NewIndirect<CPDF_Stream>(
+ stream_vals[i] = object_holder.NewIndirect<CPDF_Stream>(
DataVector<uint8_t>(std::begin(kContents), std::end(kContents)),
- UNSAFE_TODO(vals[i]));
+ vals[i]);
arr->AppendNew<CPDF_Reference>(&object_holder,
- UNSAFE_TODO(stream_vals[i])->GetObjNum());
+ stream_vals[i]->GetObjNum());
}
for (size_t i = 0; i < 3; ++i) {
- TestArrayAccessors(arr.Get(), i, // Array and index.
- "", // String value.
- nullptr, // Const string value.
- 0, // Integer value.
- 0, // Float value.
- nullptr, // Array value.
- UNSAFE_TODO(vals[i]).Get(), // Dictionary value.
- UNSAFE_TODO(stream_vals[i]).Get()); // Stream value.
+ TestArrayAccessors(arr.Get(), i, // Array and index.
+ "", // String value.
+ nullptr, // Const string value.
+ 0, // Integer value.
+ 0, // Float value.
+ nullptr, // Array value.
+ vals[i].Get(), // Dictionary value.
+ stream_vals[i].Get()); // Stream value.
}
}
{
@@ -708,21 +714,22 @@
DataVector<uint8_t>(std::begin(kData), std::end(kData)), stream_dict);
arr->InsertNewAt<CPDF_Reference>(13, &object_holder,
stream_val->GetObjNum());
- const char* const expected_str[] = {
- "true", "false", "0", "-1234", "2345", "0.05", "",
- "It is a test!", "NAME", "test", "", "", "", ""};
- const int expected_int[] = {1, 0, 0, -1234, 2345, 0, 0,
- 0, 0, 0, 0, 0, 0, 0};
- const float expected_float[] = {0, 0, 0, -1234, 2345, 0.05f, 0,
- 0, 0, 0, 0, 0, 0, 0};
+ constexpr auto expected_str = fxcrt::ToArray<const char*>(
+ {"true", "false", "0", "-1234", "2345", "0.05", "", "It is a test!",
+ "NAME", "test", "", "", "", ""});
+ constexpr auto expected_int = fxcrt::ToArray<const int>(
+ {1, 0, 0, -1234, 2345, 0, 0, 0, 0, 0, 0, 0, 0, 0});
+ constexpr auto expected_float = fxcrt::ToArray<const float>(
+ {0, 0, 0, -1234, 2345, 0.05f, 0, 0, 0, 0, 0, 0, 0, 0});
for (size_t i = 0; i < arr->size(); ++i) {
- EXPECT_EQ(UNSAFE_TODO(expected_str[i]), arr->GetByteStringAt(i));
- EXPECT_EQ(UNSAFE_TODO(expected_int[i]), arr->GetIntegerAt(i));
- EXPECT_EQ(UNSAFE_TODO(expected_float[i]), arr->GetFloatAt(i));
- if (i == 11)
+ EXPECT_EQ(expected_str[i], arr->GetByteStringAt(i));
+ EXPECT_EQ(expected_int[i], arr->GetIntegerAt(i));
+ EXPECT_EQ(expected_float[i], arr->GetFloatAt(i));
+ if (i == 11) {
EXPECT_EQ(arr_val, arr->GetArrayAt(i));
- else
+ } else {
EXPECT_FALSE(arr->GetArrayAt(i));
+ }
if (i == 13) {
EXPECT_EQ(stream_dict, arr->GetDictAt(i));
EXPECT_EQ(stream_val, arr->GetStreamAt(i));
@@ -738,32 +745,35 @@
}
TEST(PDFArrayTest, AddNumber) {
- float vals[] = {1.0f, -1.0f, 0, 0.456734f,
- 12345.54321f, 0.5f, 1000, 0.000045f};
+ constexpr auto vals = fxcrt::ToArray<const float>(
+ {1.0f, -1.0f, 0, 0.456734f, 12345.54321f, 0.5f, 1000, 0.000045f});
auto arr = pdfium::MakeRetain<CPDF_Array>();
- for (size_t i = 0; i < std::size(vals); ++i)
- arr->AppendNew<CPDF_Number>(UNSAFE_TODO(vals[i]));
- for (size_t i = 0; i < std::size(vals); ++i) {
+ for (size_t i = 0; i < vals.size(); ++i) {
+ arr->AppendNew<CPDF_Number>(vals[i]);
+ }
+ for (size_t i = 0; i < vals.size(); ++i) {
EXPECT_EQ(CPDF_Object::kNumber, arr->GetObjectAt(i)->GetType());
- EXPECT_EQ(UNSAFE_TODO(vals[i]), arr->GetObjectAt(i)->GetNumber());
+ EXPECT_EQ(vals[i], arr->GetObjectAt(i)->GetNumber());
}
}
TEST(PDFArrayTest, AddInteger) {
- int vals[] = {0, 1, 934435456, 876, 10000, -1, -24354656, -100};
+ constexpr auto vals = fxcrt::ToArray<const int>(
+ {0, 1, 934435456, 876, 10000, -1, -24354656, -100});
auto arr = pdfium::MakeRetain<CPDF_Array>();
- for (size_t i = 0; i < std::size(vals); ++i)
- arr->AppendNew<CPDF_Number>(UNSAFE_TODO(vals[i]));
- for (size_t i = 0; i < std::size(vals); ++i) {
+ for (size_t i = 0; i < vals.size(); ++i) {
+ arr->AppendNew<CPDF_Number>(vals[i]);
+ }
+ for (size_t i = 0; i < vals.size(); ++i) {
EXPECT_EQ(CPDF_Object::kNumber, arr->GetObjectAt(i)->GetType());
- EXPECT_EQ(UNSAFE_TODO(vals[i]), arr->GetObjectAt(i)->GetNumber());
+ EXPECT_EQ(vals[i], arr->GetObjectAt(i)->GetNumber());
}
}
TEST(PDFArrayTest, AddStringAndName) {
- static constexpr const char* kVals[] = {
- "", "a", "ehjhRIOYTTFdfcdnv", "122323",
- "$#%^&**", " ", "This is a test.\r\n"};
+ static constexpr auto kVals =
+ fxcrt::ToArray<const char*>({"", "a", "ehjhRIOYTTFdfcdnv", "122323",
+ "$#%^&**", " ", "This is a test.\r\n"});
auto string_array = pdfium::MakeRetain<CPDF_Array>();
auto name_array = pdfium::MakeRetain<CPDF_Array>();
for (const char* val : kVals) {
@@ -772,9 +782,9 @@
}
for (size_t i = 0; i < std::size(kVals); ++i) {
EXPECT_EQ(CPDF_Object::kString, string_array->GetObjectAt(i)->GetType());
- EXPECT_EQ(UNSAFE_TODO(kVals[i]), string_array->GetObjectAt(i)->GetString());
+ EXPECT_EQ(kVals[i], string_array->GetObjectAt(i)->GetString());
EXPECT_EQ(CPDF_Object::kName, name_array->GetObjectAt(i)->GetType());
- EXPECT_EQ(UNSAFE_TODO(kVals[i]), name_array->GetObjectAt(i)->GetString());
+ EXPECT_EQ(kVals[i], name_array->GetObjectAt(i)->GetString());
}
}
@@ -787,32 +797,31 @@
pdfium::MakeRetain<CPDF_String>(nullptr, "Adsfdsf 343434 %&&*\n");
auto name_obj = pdfium::MakeRetain<CPDF_Name>(nullptr, "Title:");
auto null_obj = pdfium::MakeRetain<CPDF_Null>();
- RetainPtr<CPDF_Object> indirect_objs[] = {boolean_obj, int_obj, float_obj,
- str_obj, name_obj, null_obj};
- unsigned int obj_nums[] = {2, 4, 7, 2345, 799887, 1};
+ auto indirect_objs = fxcrt::ToArray<RetainPtr<CPDF_Object>>(
+ {boolean_obj, int_obj, float_obj, str_obj, name_obj, null_obj});
+ auto obj_nums = fxcrt::ToArray<int>({2, 4, 7, 2345, 799887, 1});
auto arr = pdfium::MakeRetain<CPDF_Array>();
auto arr1 = pdfium::MakeRetain<CPDF_Array>();
// Create two arrays of references by different AddReference() APIs.
for (size_t i = 0; i < std::size(indirect_objs); ++i) {
- holder->ReplaceIndirectObjectIfHigherGeneration(
- UNSAFE_TODO(obj_nums[i]), UNSAFE_TODO(indirect_objs[i]));
- arr->AppendNew<CPDF_Reference>(holder.get(), UNSAFE_TODO(obj_nums[i]));
+ holder->ReplaceIndirectObjectIfHigherGeneration(obj_nums[i],
+ indirect_objs[i]);
+ arr->AppendNew<CPDF_Reference>(holder.get(), obj_nums[i]);
arr1->AppendNew<CPDF_Reference>(holder.get(),
- UNSAFE_TODO(indirect_objs[i]->GetObjNum()));
+ indirect_objs[i]->GetObjNum());
}
// Check indirect objects.
for (size_t i = 0; i < std::size(obj_nums); ++i)
- EXPECT_EQ(UNSAFE_TODO(indirect_objs[i]),
- holder->GetOrParseIndirectObject(UNSAFE_TODO(obj_nums[i])));
+ EXPECT_EQ(indirect_objs[i], holder->GetOrParseIndirectObject(obj_nums[i]));
// Check arrays.
EXPECT_EQ(arr->size(), arr1->size());
for (size_t i = 0; i < arr->size(); ++i) {
EXPECT_EQ(CPDF_Object::kReference, arr->GetObjectAt(i)->GetType());
- EXPECT_EQ(UNSAFE_TODO(indirect_objs[i]), arr->GetObjectAt(i)->GetDirect());
- EXPECT_EQ(UNSAFE_TODO(indirect_objs[i]), arr->GetDirectObjectAt(i));
+ EXPECT_EQ(indirect_objs[i], arr->GetObjectAt(i)->GetDirect());
+ EXPECT_EQ(indirect_objs[i], arr->GetDirectObjectAt(i));
EXPECT_EQ(CPDF_Object::kReference, arr1->GetObjectAt(i)->GetType());
- EXPECT_EQ(UNSAFE_TODO(indirect_objs[i]), arr1->GetObjectAt(i)->GetDirect());
- EXPECT_EQ(UNSAFE_TODO(indirect_objs[i]), arr1->GetDirectObjectAt(i));
+ EXPECT_EQ(indirect_objs[i], arr1->GetObjectAt(i)->GetDirect());
+ EXPECT_EQ(indirect_objs[i], arr1->GetDirectObjectAt(i));
}
}
diff --git a/core/fxcodec/gif/cfx_gifcontext_unittest.cpp b/core/fxcodec/gif/cfx_gifcontext_unittest.cpp
index 243a469..de75522 100644
--- a/core/fxcodec/gif/cfx_gifcontext_unittest.cpp
+++ b/core/fxcodec/gif/cfx_gifcontext_unittest.cpp
@@ -6,12 +6,13 @@
#include <stdint.h>
+#include <array>
#include <utility>
#include "core/fxcodec/cfx_codec_memory.h"
-#include "core/fxcrt/compiler_specific.h"
#include "core/fxcrt/data_vector.h"
#include "core/fxcrt/span_util.h"
+#include "core/fxcrt/stl_util.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace fxcodec {
@@ -55,10 +56,10 @@
context.SetTestInputBuffer({});
EXPECT_FALSE(context.ReadAllOrNone(pdfium::span<uint8_t>()));
- uint8_t src_buffer[] = {0x00, 0x01, 0x02, 0x03, 0x04,
- 0x05, 0x06, 0x07, 0x08, 0x09};
+ auto src_buffer = fxcrt::ToArray<const uint8_t>(
+ {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09});
- DataVector<uint8_t> dest_buffer(sizeof(src_buffer));
+ DataVector<uint8_t> dest_buffer(src_buffer.size());
auto dest_span = pdfium::make_span(dest_buffer);
context.SetTestInputBuffer(pdfium::make_span(src_buffer).first(1u));
@@ -68,14 +69,14 @@
EXPECT_EQ(src_buffer[0], dest_buffer[0]);
context.SetTestInputBuffer(src_buffer);
- EXPECT_TRUE(context.ReadAllOrNone(dest_span.first(sizeof(src_buffer))));
- for (size_t i = 0; i < sizeof(src_buffer); i++) {
- UNSAFE_TODO(EXPECT_EQ(src_buffer[i], dest_buffer[i]));
+ EXPECT_TRUE(context.ReadAllOrNone(dest_span.first(src_buffer.size())));
+ for (size_t i = 0; i < src_buffer.size(); i++) {
+ EXPECT_EQ(src_buffer[i], dest_buffer[i]);
}
context.SetTestInputBuffer(src_buffer);
- for (size_t i = 0; i < sizeof(src_buffer); i++) {
+ for (size_t i = 0; i < src_buffer.size(); i++) {
EXPECT_TRUE(context.ReadAllOrNone(dest_span.first(1u)));
- UNSAFE_TODO(EXPECT_EQ(src_buffer[i], dest_buffer[0]));
+ EXPECT_EQ(src_buffer[i], dest_buffer[0]);
}
}
diff --git a/core/fxcodec/gif/lzw_decompressor_unittest.cpp b/core/fxcodec/gif/lzw_decompressor_unittest.cpp
index f54e8b1..0126e79 100644
--- a/core/fxcodec/gif/lzw_decompressor_unittest.cpp
+++ b/core/fxcodec/gif/lzw_decompressor_unittest.cpp
@@ -7,6 +7,7 @@
#include <stdint.h>
#include <string.h>
+#include <array>
#include <iterator>
#include "core/fxcrt/compiler_specific.h"
@@ -52,13 +53,13 @@
DataVector<uint8_t>* decompressed = decompressor->DecompressedForTest();
*decompressed = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
*(decompressor->DecompressedNextForTest()) = decompressed->size();
- uint8_t dest_buf[20];
+ std::array<uint8_t, 20> dest_buf;
fxcrt::Fill(dest_buf, 0xff);
EXPECT_EQ(5u, decompressor->ExtractDataForTest(
pdfium::make_span(dest_buf).first(5u)));
size_t i = 0;
for (; i < 5; ++i) {
- EXPECT_EQ(9 - i, UNSAFE_TODO(dest_buf[i]));
+ EXPECT_EQ(9 - i, dest_buf[i]);
}
EXPECT_THAT(pdfium::span(dest_buf).first(5), ElementsAre(9, 8, 7, 6, 5));
EXPECT_THAT(pdfium::span(dest_buf).subspan(5),
diff --git a/fpdfsdk/cpdfsdk_helpers_unittest.cpp b/fpdfsdk/cpdfsdk_helpers_unittest.cpp
index 85fbb0a..0dcff4d 100644
--- a/fpdfsdk/cpdfsdk_helpers_unittest.cpp
+++ b/fpdfsdk/cpdfsdk_helpers_unittest.cpp
@@ -27,7 +27,7 @@
ASSERT_EQ(kExpectedToBeCopiedLen + 1,
NulTerminateMaybeCopyAndReturnLength(
to_be_copied,
- UNSAFE_TODO(pdfium::make_span(buf, kExpectedToBeCopiedLen))));
+ pdfium::make_span(buf).first(kExpectedToBeCopiedLen)));
for (char c : buf)
EXPECT_EQ(0x42, c);