refactor(manifest_test): print addresses in hexadecimal
Print integer properties that represent address as hexadecimal. This
helps with debugging.
Change-Id: Ib1d323570c34ead53d14cd1b9730d5c3f4af7c63
Signed-off-by: Karl Meakin <karl.meakin@arm.com>
diff --git a/src/manifest_test.cc b/src/manifest_test.cc
index 4aca828..18d6a38 100644
--- a/src/manifest_test.cc
+++ b/src/manifest_test.cc
@@ -7,9 +7,8 @@
*/
#include <array>
-#include <cstdio>
+#include <format>
#include <span>
-#include <sstream>
#include <gmock/gmock.h>
@@ -210,7 +209,7 @@
ManifestDtBuilder &LoadAddress(uint64_t value)
{
- return Integer64Property("load_address", value);
+ return Integer64Property("load_address", value, true);
}
ManifestDtBuilder &FfaPartition()
@@ -250,11 +249,10 @@
ManifestDtBuilder &FfaLoadAddress(uint64_t value)
{
- Integer64Property("load-address", value);
+ Integer64Property("load-address", value, true);
return *this;
}
- private:
ManifestDtBuilder &StringProperty(const std::string_view &name,
const std::string_view &value)
{
@@ -282,19 +280,32 @@
}
ManifestDtBuilder &IntegerProperty(const std::string_view &name,
- uint32_t value)
+ uint32_t value, bool hex = false)
{
- dts_ << name << " = <" << value << ">;" << std::endl;
+ std::ostream_iterator<char> out(dts_);
+
+ if (hex) {
+ std::format_to(out, "{} = <{:#08x}>;\n", name, value);
+ } else {
+ std::format_to(out, "{} = <{}>;\n", name, value);
+ }
return *this;
}
ManifestDtBuilder &Integer64Property(const std::string_view &name,
- uint64_t value)
+ uint64_t value, bool hex = false)
{
uint32_t high = value >> 32;
uint32_t low = (uint32_t)value;
- dts_ << name << " = <" << high << " " << low << ">;"
- << std::endl;
+ std::ostream_iterator<char> out(dts_);
+
+ if (hex) {
+ std::format_to(out, "{} = <{:#08x} {:#08x}>;\n", name,
+ high, low);
+ } else {
+ std::format_to(out, "{} = <{} {}>;\n", name, high, low);
+ }
+
return *this;
}