Migrate to libfdt
Replace our custom FDT parser implementation with libfdt while retaining
the original API as a thin wrapper around libfdt. This minimizes the
changes to the rest of our code base and hides differences in coding
styles.
As a byproduct, this fixes an issue with unaligned memory accesses while
parsing as libfdt handles these correctly.
Bug: 150587116
Change-Id: I8d305d7094b1be04608048009d73d7c448a578a0
diff --git a/src/string_test.cc b/src/string_test.cc
index f814636..222f5d8 100644
--- a/src/string_test.cc
+++ b/src/string_test.cc
@@ -25,13 +25,15 @@
TEST(string, valid)
{
struct string str;
+ struct memiter it;
constexpr const char data[] = "test";
string_init_empty(&str);
ASSERT_TRUE(string_is_empty(&str));
ASSERT_STREQ(string_data(&str), "");
- ASSERT_EQ(string_init(&str, data, sizeof(data)), STRING_SUCCESS);
+ memiter_init(&it, data, sizeof(data));
+ ASSERT_EQ(string_init(&str, &it), STRING_SUCCESS);
ASSERT_FALSE(string_is_empty(&str));
ASSERT_STRNE(string_data(&str), "");
ASSERT_STREQ(string_data(&str), "test");
@@ -40,27 +42,31 @@
TEST(string, data_zero_size)
{
struct string str;
+ struct memiter it;
constexpr const char data[] = "test";
- ASSERT_EQ(string_init(&str, data, 0), STRING_ERROR_INVALID_INPUT);
+ memiter_init(&it, data, 0);
+ ASSERT_EQ(string_init(&str, &it), STRING_ERROR_INVALID_INPUT);
}
TEST(string, data_no_null_terminator)
{
struct string str;
+ struct memiter it;
constexpr const char data[] = {'t', 'e', 's', 't'};
- ASSERT_EQ(string_init(&str, data, sizeof(data)),
- STRING_ERROR_INVALID_INPUT);
+ memiter_init(&it, data, sizeof(data));
+ ASSERT_EQ(string_init(&str, &it), STRING_ERROR_INVALID_INPUT);
}
TEST(string, data_two_null_terminators)
{
struct string str;
+ struct memiter it;
constexpr const char data[] = {'\0', 't', 'e', 's', 't', '\0'};
- ASSERT_EQ(string_init(&str, data, sizeof(data)),
- STRING_ERROR_INVALID_INPUT);
+ memiter_init(&it, data, sizeof(data));
+ ASSERT_EQ(string_init(&str, &it), STRING_ERROR_INVALID_INPUT);
}
} /* namespace */