[ulib][zbi] Convert tests to use zxtest instead of unittest
This was mostly automated, with some manual changes:
* remove reference to unittest-static
* drop comments around RUN_TEST uses
Also update the clone of zbi/test/ in src/firmware (which is currently
not compiled by the build) by doing this:
cp zircon/system/ulib/zbi/test/zbi.cc src/firmware/lib/zbi/test/zbi.cc
cp zircon/system/ulib/zbi/test/BUILD.gn src/firmware/lib/zbi/test/BUILD.gn
(Those files were identical before this change too.)
Bug: 51652
Test: runs on CQ, but tested locally with:
fx set bringup.x64 --with-base //garnet/packages/tests:zircon --with-base //bundles/bringup:tests
fx build
fx qemu -k -c zircon.autorun.boot=/boot/test/libzbi-test
Change-Id: Ib01692ed4179c601119afb82d31ae216b995f7aa
Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/405493
Reviewed-by: David Pursell <dpursell@google.com>
Testability-Review: David Pursell <dpursell@google.com>
Commit-Queue: Mark Seaborn <mseaborn@google.com>
diff --git a/src/firmware/lib/zbi/test/BUILD.gn b/src/firmware/lib/zbi/test/BUILD.gn
index 6ade6c2..4c04210 100644
--- a/src/firmware/lib/zbi/test/BUILD.gn
+++ b/src/firmware/lib/zbi/test/BUILD.gn
@@ -34,15 +34,14 @@
"//zircon/public/lib/fbl",
"//zircon/public/lib/pretty",
"//zircon/public/lib/zbi",
+ "//zircon/public/lib/zxtest",
]
if (is_fuchsia) {
deps += [
"//sdk/lib/fdio",
"//zircon/public/lib/zx",
- "//zircon/system/ulib/unittest",
]
} else {
- deps += [ "//zircon/system/ulib/unittest:unittest-static" ]
output_dir = "$root_out_dir/zircon-migrated"
}
}
diff --git a/src/firmware/lib/zbi/test/zbi.cc b/src/firmware/lib/zbi/test/zbi.cc
index 604abf5..97be556 100644
--- a/src/firmware/lib/zbi/test/zbi.cc
+++ b/src/firmware/lib/zbi/test/zbi.cc
@@ -14,7 +14,7 @@
#include <fbl/auto_call.h>
#include <pretty/hexdump.h>
-#include <unittest/unittest.h>
+#include <zxtest/zxtest.h>
#ifdef __Fuchsia__
#include <lib/zbi/zbi-zx.h>
@@ -161,156 +161,102 @@
}
}
-static bool ZbiTestInit() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestInit) {
alignas(ZBI_ALIGNMENT) uint8_t buffer[sizeof(zbi_header_t)];
ASSERT_EQ(zbi_init(buffer, sizeof(buffer)), ZBI_RESULT_OK);
auto* zbi = reinterpret_cast<zbi_header_t*>(buffer);
ASSERT_EQ(zbi->type, ZBI_TYPE_CONTAINER);
-
- END_TEST;
}
-static bool ZbiTestInitTooSmall() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestInitTooSmall) {
alignas(ZBI_ALIGNMENT) uint8_t buffer[sizeof(zbi_header_t) - 1];
ASSERT_EQ(zbi_init(buffer, sizeof(buffer)), ZBI_RESULT_TOO_BIG);
-
- END_TEST;
}
-static bool ZbiTestInitNotAligned() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestInitNotAligned) {
alignas(ZBI_ALIGNMENT) uint8_t buffer[sizeof(zbi_header_t) + 1];
void* misaligned_buffer = &buffer[1];
ASSERT_EQ(zbi_init(misaligned_buffer, sizeof(zbi_header_t)), ZBI_RESULT_BAD_ALIGNMENT);
-
- END_TEST;
}
-static bool ZbiTestInitNullBuffer() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestInitNullBuffer) {
ASSERT_EQ(zbi_init(nullptr, sizeof(zbi_header_t)), ZBI_RESULT_ERROR);
-
- END_TEST;
}
// TODO(fxb/52665): Consider pulling out the check logic into a common helper.
-static bool ZbiTestCheckEmptyContainer() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCheckEmptyContainer) {
zbi_header_t container = ZBI_CONTAINER_HEADER(0);
ASSERT_EQ(zbi_check(&container, nullptr), ZBI_RESULT_OK);
-
- END_TEST;
}
-static bool ZbiTestCheckEmptyContainerWithErr() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCheckEmptyContainerWithErr) {
zbi_header_t container = ZBI_CONTAINER_HEADER(0);
zbi_header_t* err = nullptr;
EXPECT_EQ(zbi_check(&container, &err), ZBI_RESULT_OK);
ASSERT_EQ(err, nullptr);
-
- END_TEST;
}
-static bool ZbiTestCheckContainerBadType() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCheckContainerBadType) {
zbi_header_t container = ZBI_CONTAINER_HEADER(0);
container.type = 0;
ASSERT_EQ(zbi_check(&container, nullptr), ZBI_RESULT_BAD_TYPE);
-
- END_TEST;
}
-static bool ZbiTestCheckContainerBadTypeWithErr() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCheckContainerBadTypeWithErr) {
zbi_header_t container = ZBI_CONTAINER_HEADER(0);
container.type = 0;
zbi_header_t* err = nullptr;
EXPECT_EQ(zbi_check(&container, &err), ZBI_RESULT_BAD_TYPE);
ASSERT_EQ(err, &container);
-
- END_TEST;
}
-static bool ZbiTestCheckContainerBadExtra() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCheckContainerBadExtra) {
zbi_header_t container = ZBI_CONTAINER_HEADER(0);
container.extra = 0;
ASSERT_EQ(zbi_check(&container, nullptr), ZBI_RESULT_BAD_MAGIC);
-
- END_TEST;
}
-static bool ZbiTestCheckContainerBadMagic() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCheckContainerBadMagic) {
zbi_header_t container = ZBI_CONTAINER_HEADER(0);
container.magic = 0;
ASSERT_EQ(zbi_check(&container, nullptr), ZBI_RESULT_BAD_MAGIC);
-
- END_TEST;
}
-static bool ZbiTestCheckContainerBadVersion() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCheckContainerBadVersion) {
zbi_header_t container = ZBI_CONTAINER_HEADER(0);
container.flags &= ~ZBI_FLAG_VERSION;
ASSERT_EQ(zbi_check(&container, nullptr), ZBI_RESULT_BAD_VERSION);
-
- END_TEST;
}
-static bool ZbiTestCheckContainerBadCrc32() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCheckContainerBadCrc32) {
zbi_header_t container = ZBI_CONTAINER_HEADER(0);
// Entries with no checksum must have the crc32 field set to ZBI_ITEM_NO_CRC32.
container.flags &= ~ZBI_FLAG_CRC32;
container.crc32 = 0;
ASSERT_EQ(zbi_check(&container, nullptr), ZBI_RESULT_BAD_CRC);
-
- END_TEST;
}
-static bool ZbiTestCheckTestZbi() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCheckTestZbi) {
test_zbi_t* zbi = reinterpret_cast<test_zbi_t*>(get_test_zbi());
ASSERT_EQ(zbi_check(zbi, nullptr), ZBI_RESULT_OK);
free(zbi);
-
- END_TEST;
}
-static bool ZbiTestCheckTestZbiWithErr() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCheckTestZbiWithErr) {
test_zbi_t* zbi = reinterpret_cast<test_zbi_t*>(get_test_zbi());
zbi_header_t* err = nullptr;
@@ -318,21 +264,13 @@
ASSERT_EQ(err, nullptr);
free(zbi);
-
- END_TEST;
}
-static bool ZbiTestCheckTestZbiNull() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCheckTestZbiNull) {
ASSERT_EQ(zbi_check(nullptr, nullptr), ZBI_RESULT_ERROR);
-
- END_TEST;
}
-static bool ZbiTestCheckFirstBadEntryIsMarked() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCheckFirstBadEntryIsMarked) {
test_zbi_t* zbi = reinterpret_cast<test_zbi_t*>(get_test_zbi());
zbi->cmdline_hdr.magic = 0;
zbi->ramdisk_hdr.magic = 0;
@@ -343,26 +281,18 @@
ASSERT_EQ(err, &zbi->cmdline_hdr);
free(zbi);
-
- END_TEST;
}
-static bool ZbiTestCheckTestZbiBadMagic() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCheckTestZbiBadMagic) {
test_zbi_t* zbi = reinterpret_cast<test_zbi_t*>(get_test_zbi());
zbi->cmdline_hdr.magic = 0;
EXPECT_EQ(zbi_check(zbi, nullptr), ZBI_RESULT_BAD_MAGIC);
free(zbi);
-
- END_TEST;
}
-static bool ZbiTestCheckTestZbiBadMagicWithErr() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCheckTestZbiBadMagicWithErr) {
test_zbi_t* zbi = reinterpret_cast<test_zbi_t*>(get_test_zbi());
zbi->cmdline_hdr.magic = 0;
zbi_header_t* err = nullptr;
@@ -372,26 +302,18 @@
ASSERT_EQ(err, &zbi->cmdline_hdr);
free(zbi);
-
- END_TEST;
}
-static bool ZbiTestCheckTestZbiBadVersion() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCheckTestZbiBadVersion) {
test_zbi_t* zbi = reinterpret_cast<test_zbi_t*>(get_test_zbi());
zbi->cmdline_hdr.flags &= ~ZBI_FLAG_VERSION;
EXPECT_EQ(zbi_check(zbi, nullptr), ZBI_RESULT_BAD_VERSION);
free(zbi);
-
- END_TEST;
}
-static bool ZbiTestCheckTestZbiBadCrc32() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCheckTestZbiBadCrc32) {
test_zbi_t* zbi = reinterpret_cast<test_zbi_t*>(get_test_zbi());
zbi->cmdline_hdr.flags &= ~ZBI_FLAG_CRC32;
zbi->cmdline_hdr.crc32 = 0;
@@ -399,38 +321,26 @@
ASSERT_EQ(zbi_check(zbi, nullptr), ZBI_RESULT_BAD_CRC);
free(zbi);
-
- END_TEST;
}
-static bool ZbiTestCheckTestZbiTruncated() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCheckTestZbiTruncated) {
test_zbi_t* zbi = reinterpret_cast<test_zbi_t*>(get_test_zbi());
zbi->header.length = 1;
ASSERT_EQ(zbi_check(zbi, nullptr), ZBI_RESULT_ERR_TRUNCATED);
free(zbi);
-
- END_TEST;
}
-static bool ZbiTestCheckCompleteTestZbi() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCheckCompleteTestZbi) {
test_zbi_t* zbi = reinterpret_cast<test_zbi_t*>(get_test_zbi());
ASSERT_EQ(zbi_check_complete(zbi, nullptr), ZBI_RESULT_OK);
free(zbi);
-
- END_TEST;
}
-static bool ZbiTestCheckCompleteTestZbiWithErr() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCheckCompleteTestZbiWithErr) {
test_zbi_t* zbi = reinterpret_cast<test_zbi_t*>(get_test_zbi());
zbi_header_t* err = nullptr;
@@ -439,45 +349,29 @@
ASSERT_EQ(err, nullptr);
free(zbi);
-
- END_TEST;
}
-static bool ZbiTestCheckCompleteTestZbiNull() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCheckCompleteTestZbiNull) {
ASSERT_EQ(zbi_check_complete(nullptr, nullptr), ZBI_RESULT_ERROR);
-
- END_TEST;
}
-static bool ZbiTestCheckCompleteTestZbiTruncated() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCheckCompleteTestZbiTruncated) {
zbi_header_t container = ZBI_CONTAINER_HEADER(0);
container.length = 0;
ASSERT_EQ(zbi_check_complete(&container, nullptr), ZBI_RESULT_ERR_TRUNCATED);
-
- END_TEST;
}
-static bool ZbiTestCheckCompleteTestZbiWrongArch() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCheckCompleteTestZbiWrongArch) {
test_zbi_t* zbi = reinterpret_cast<test_zbi_t*>(get_test_zbi());
zbi->kernel_hdr.type = 0;
ASSERT_EQ(zbi_check_complete(zbi, nullptr), ZBI_RESULT_INCOMPLETE_KERNEL);
free(zbi);
-
- END_TEST;
}
-static bool ZbiTestCheckCompleteTestZbiWrongArchWithErr() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCheckCompleteTestZbiWrongArchWithErr) {
test_zbi_t* zbi = reinterpret_cast<test_zbi_t*>(get_test_zbi());
zbi->kernel_hdr.type = 0;
zbi_header_t* err = nullptr;
@@ -487,21 +381,15 @@
ASSERT_EQ(err, &zbi->kernel_hdr);
free(zbi);
-
- END_TEST;
}
-static bool ZbiTestCheckCompleteTestZbiMissingBootfs() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCheckCompleteTestZbiMissingBootfs) {
test_zbi_t* zbi = reinterpret_cast<test_zbi_t*>(get_test_zbi());
zbi->bootfs_hdr.type = ZBI_TYPE_CMDLINE;
ASSERT_EQ(zbi_check_complete(zbi, nullptr), ZBI_RESULT_INCOMPLETE_BOOTFS);
free(zbi);
-
- END_TEST;
}
static zbi_result_t count_items_callback(zbi_header_t* header, void* payload, void* cookie) {
@@ -510,40 +398,26 @@
return ZBI_RESULT_OK;
}
-static bool ZbiTestForEachTestZbiNull() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestForEachTestZbiNull) {
ASSERT_EQ(zbi_for_each(nullptr, count_items_callback, nullptr), ZBI_RESULT_ERROR);
-
- END_TEST;
}
-static bool ZbiTestForEachTestZbiNullCallback() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestForEachTestZbiNullCallback) {
zbi_header_t container = ZBI_CONTAINER_HEADER(0);
ASSERT_EQ(zbi_for_each(&container, nullptr, nullptr), ZBI_RESULT_ERROR);
-
- END_TEST;
}
-static bool ZbiTestForEachTestZbiContainer() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestForEachTestZbiContainer) {
zbi_header_t container = ZBI_CONTAINER_HEADER(0);
uint32_t count = 0;
// The callback should be invoked with ZBI items and not the container.
EXPECT_EQ(zbi_for_each(&container, count_items_callback, &count), ZBI_RESULT_OK);
ASSERT_EQ(count, 0);
-
- END_TEST;
}
-static bool ZbiTestForEachTestZbiTruncated() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestForEachTestZbiTruncated) {
test_zbi_t* zbi = reinterpret_cast<test_zbi_t*>(get_test_zbi());
// Container length does not include the size of the container header
zbi->header.length = offsetof(test_zbi_t, cmdline_payload) - sizeof(zbi_header_t);
@@ -554,13 +428,9 @@
ASSERT_EQ(count, 2);
free(zbi);
-
- END_TEST;
}
-static bool ZbiTestForEachTestZbiItems() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestForEachTestZbiItems) {
test_zbi_t* zbi = reinterpret_cast<test_zbi_t*>(get_test_zbi());
uint32_t count = 0;
@@ -568,8 +438,6 @@
ASSERT_EQ(count, 4);
free(zbi);
-
- END_TEST;
}
static zbi_result_t modify_payload_callback(zbi_header_t* header, void* payload, void* cookie) {
@@ -581,9 +449,7 @@
return ZBI_RESULT_OK;
}
-static bool ZbiTestForEachTestZbiItemsNoCookie() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestForEachTestZbiItemsNoCookie) {
test_zbi_t* zbi = reinterpret_cast<test_zbi_t*>(get_test_zbi());
std::memset(zbi->kernel_payload, 'A', 1);
std::memset(zbi->cmdline_payload, 'A', 1);
@@ -598,8 +464,6 @@
EXPECT_EQ(zbi->bootfs_payload[0], 'B');
free(zbi);
-
- END_TEST;
}
static zbi_result_t modify_payload_then_error_callback(zbi_header_t* header, void* payload,
@@ -615,9 +479,7 @@
return ZBI_RESULT_OK;
}
-static bool ZbiTestForEachTestZbiItemsCallbackError() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestForEachTestZbiItemsCallbackError) {
test_zbi_t* zbi = reinterpret_cast<test_zbi_t*>(get_test_zbi());
std::memset(zbi->kernel_payload, 'A', 1);
std::memset(zbi->cmdline_payload, 'A', 1);
@@ -635,13 +497,9 @@
EXPECT_EQ(zbi->bootfs_payload[0], 'A');
free(zbi);
-
- END_TEST;
}
-static bool ZbiTestCreateEntryTestZbi() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCreateEntryTestZbi) {
// The ZBI has space for the container and an entry with an 8-byte payload.
single_entry_test_zbi_t zbi;
void* payload = nullptr;
@@ -655,82 +513,54 @@
// Verify the pointer points to the newly created entry payload.
EXPECT_EQ(payload, zbi.entry_payload);
-
- END_TEST;
}
-static bool ZbiTestCreateEntryTestZbiNull() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCreateEntryTestZbiNull) {
void* payload = nullptr;
ASSERT_EQ(zbi_create_entry(nullptr, 0, 0, 0, 0, 0, &payload), ZBI_RESULT_ERROR);
-
- END_TEST;
}
-static bool ZbiTestCreateEntryTestZbiNullPayload() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCreateEntryTestZbiNullPayload) {
zbi_header_t container = ZBI_CONTAINER_HEADER(0);
ASSERT_EQ(zbi_create_entry(&container, 0, 0, 0, 0, 0, nullptr), ZBI_RESULT_ERROR);
-
- END_TEST;
}
-static bool ZbiTestCreateEntryTestZbiCrc32NotSupported() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCreateEntryTestZbiCrc32NotSupported) {
zbi_header_t container = ZBI_CONTAINER_HEADER(0);
void* payload = nullptr;
ASSERT_EQ(zbi_create_entry(&container, 0, 0, 0, ZBI_FLAG_CRC32, 0, &payload), ZBI_RESULT_ERROR);
-
- END_TEST;
}
-static bool ZbiTestCreateEntryTestZbiNotContainer() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCreateEntryTestZbiNotContainer) {
zbi_header_t container = ZBI_CONTAINER_HEADER(0);
container.type = 0;
void* payload = nullptr;
ASSERT_EQ(zbi_create_entry(&container, 0, 0, 0, 0, 0, &payload), ZBI_RESULT_BAD_TYPE);
-
- END_TEST;
}
// create entry tests
-static bool ZbiTestCreateEntryTestZbiCapacitySmallerThanCurrentSize() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCreateEntryTestZbiCapacitySmallerThanCurrentSize) {
zbi_header_t container = ZBI_CONTAINER_HEADER(0);
container.length = 2;
void* payload = nullptr;
ASSERT_EQ(zbi_create_entry(&container, /*capacity=*/1, 0, 0, 0, 0, &payload), ZBI_RESULT_TOO_BIG);
-
- END_TEST;
}
-static bool ZbiTestCreateEntryTestZbiFull() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCreateEntryTestZbiFull) {
zbi_header_t container = ZBI_CONTAINER_HEADER(0);
void* payload = nullptr;
ASSERT_EQ(zbi_create_entry(&container, /*capacity=*/sizeof(container), 0, 0, 0,
/*payload_length=*/1, &payload),
ZBI_RESULT_TOO_BIG);
-
- END_TEST;
}
-static bool ZbiTestCreateEntryTestZbiPayloadTooLarge() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCreateEntryTestZbiPayloadTooLarge) {
single_entry_test_zbi_t zbi;
uint32_t capacity = sizeof(zbi);
void* payload = nullptr;
@@ -739,13 +569,9 @@
ASSERT_EQ(zbi_create_entry(&zbi, capacity, 0, 0, 0,
/*payload_length=*/capacity, &payload),
ZBI_RESULT_TOO_BIG);
-
- END_TEST;
}
-static bool ZbiTestCreateEntryWithPayloadTestZbi() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCreateEntryWithPayloadTestZbi) {
// The ZBI will have space for the container and an entry with a small payload.
single_entry_test_zbi_t zbi;
uint32_t payload = 0xABCDABCD;
@@ -757,84 +583,56 @@
// Verify the contents of the payload.
ASSERT_BYTES_EQ(reinterpret_cast<uint8_t*>(zbi.entry_payload),
reinterpret_cast<uint8_t*>(&payload), sizeof(payload), "Mismatched payloads.");
-
- END_TEST;
}
-static bool ZbiTestCreateEntryWithPayloadTestZbiNull() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCreateEntryWithPayloadTestZbiNull) {
void* payload = nullptr;
ASSERT_EQ(zbi_create_entry_with_payload(nullptr, 0, 0, 0, 0, &payload, 0), ZBI_RESULT_ERROR);
-
- END_TEST;
}
-static bool ZbiTestCreateEntryWithPayloadTestZbiNullPayload() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCreateEntryWithPayloadTestZbiNullPayload) {
zbi_header_t container = ZBI_CONTAINER_HEADER(0);
ASSERT_EQ(zbi_create_entry_with_payload(&container, 0, 0, 0, 0, nullptr, 0), ZBI_RESULT_ERROR);
-
- END_TEST;
}
-static bool ZbiTestCreateEntryWithPayloadTestZbiCrc32NotSupported() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCreateEntryWithPayloadTestZbiCrc32NotSupported) {
zbi_header_t container = ZBI_CONTAINER_HEADER(0);
void* payload = nullptr;
ASSERT_EQ(zbi_create_entry_with_payload(&container, 0, 0, 0, ZBI_FLAG_CRC32, &payload, 0),
ZBI_RESULT_ERROR);
-
- END_TEST;
}
-static bool ZbiTestCreateEntryWithPayloadTestZbiNotContainer() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCreateEntryWithPayloadTestZbiNotContainer) {
zbi_header_t container = ZBI_CONTAINER_HEADER(0);
container.type = 0;
void* payload = nullptr;
ASSERT_EQ(zbi_create_entry_with_payload(&container, 0, 0, 0, 0, &payload, 0),
ZBI_RESULT_BAD_TYPE);
-
- END_TEST;
}
-static bool ZbiTestCreateEntryWithPayloadTestZbiCapacitySmallerThanCurrentSize() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCreateEntryWithPayloadTestZbiCapacitySmallerThanCurrentSize) {
zbi_header_t container = ZBI_CONTAINER_HEADER(0);
container.length = 2;
void* payload = nullptr;
ASSERT_EQ(zbi_create_entry_with_payload(&container, /*capacity=*/1, 0, 0, 0, &payload, 0),
ZBI_RESULT_TOO_BIG);
-
- END_TEST;
}
-static bool ZbiTestCreateEntryWithPayloadTestZbiSectionTooLarge() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCreateEntryWithPayloadTestZbiSectionTooLarge) {
zbi_header_t container = ZBI_CONTAINER_HEADER(0);
void* payload = nullptr;
ASSERT_EQ(zbi_create_entry_with_payload(&container, /*capacity=*/1, 0, 0, 0, &payload,
/*payload_length=*/2),
ZBI_RESULT_TOO_BIG);
-
- END_TEST;
}
-static bool ZbiTestExtendTestZbi() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestExtendTestZbi) {
single_entry_test_zbi_t dst_zbi;
single_entry_test_zbi_t src_zbi;
@@ -847,94 +645,63 @@
ASSERT_EQ(zbi_extend(&dst_zbi, sizeof(dst_zbi), &src_zbi), ZBI_RESULT_OK);
ASSERT_BYTES_EQ(reinterpret_cast<uint8_t*>(dst_zbi.entry_payload),
reinterpret_cast<uint8_t*>(&payload), sizeof(payload), "Mismatched payload.");
-
- END_TEST;
}
-static bool ZbiTestExtendTestZbiDstNull() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestExtendTestZbiDstNull) {
zbi_header_t zbi = ZBI_CONTAINER_HEADER(0);
ASSERT_EQ(zbi_extend(nullptr, 0, &zbi), ZBI_RESULT_ERROR);
-
- END_TEST;
}
-static bool ZbiTestExtendTestZbiSrcNull() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestExtendTestZbiSrcNull) {
zbi_header_t zbi = ZBI_CONTAINER_HEADER(0);
ASSERT_EQ(zbi_extend(&zbi, 0, nullptr), ZBI_RESULT_ERROR);
-
- END_TEST;
}
-static bool ZbiTestExtendTestZbiDstNotContainer() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestExtendTestZbiDstNotContainer) {
zbi_header_t src = ZBI_CONTAINER_HEADER(0);
zbi_header_t dst = ZBI_CONTAINER_HEADER(0);
dst.type = 0;
ASSERT_EQ(zbi_extend(&dst, 0, &src), ZBI_RESULT_BAD_TYPE);
-
- END_TEST;
}
-static bool ZbiTestExtendTestZbiSrcNotContainer() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestExtendTestZbiSrcNotContainer) {
zbi_header_t src = ZBI_CONTAINER_HEADER(0);
src.type = 0;
zbi_header_t dst = ZBI_CONTAINER_HEADER(0);
ASSERT_EQ(zbi_extend(&dst, 0, &src), ZBI_RESULT_BAD_TYPE);
-
- END_TEST;
}
-static bool ZbiTestExtendTestZbiCapacitySmallerThanDstLength() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestExtendTestZbiCapacitySmallerThanDstLength) {
zbi_header_t src = ZBI_CONTAINER_HEADER(0);
zbi_header_t dst = ZBI_CONTAINER_HEADER(1);
ASSERT_EQ(zbi_extend(&dst, 0, &src), ZBI_RESULT_TOO_BIG);
-
- END_TEST;
}
-static bool ZbiTestExtendTestZbiCapacitySmallerThanDstAlignedLength() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestExtendTestZbiCapacitySmallerThanDstAlignedLength) {
zbi_header_t src = ZBI_CONTAINER_HEADER(0);
zbi_header_t dst = ZBI_CONTAINER_HEADER(6);
ASSERT_EQ(zbi_extend(&dst, /*capacity=*/7, &src), ZBI_RESULT_TOO_BIG);
-
- END_TEST;
}
-static bool ZbiTestExtendTestZbiSrcTooLarge() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestExtendTestZbiSrcTooLarge) {
zbi_header_t src = ZBI_CONTAINER_HEADER(ZBI_ALIGNMENT + 1);
zbi_header_t dst = ZBI_CONTAINER_HEADER(ZBI_ALIGNMENT);
ASSERT_EQ(zbi_extend(&dst, /*capacity=*/ZBI_ALIGNMENT, &src), ZBI_RESULT_TOO_BIG);
-
- END_TEST;
}
-static bool ZbiTestBasic(void) {
- BEGIN_TEST;
+TEST(ZbiTests, ZbiTestBasic) {
uint8_t* test_zbi = get_test_zbi();
auto cleanup = fbl::MakeAutoCall([test_zbi]() { free(test_zbi); });
- ASSERT_NONNULL(test_zbi, "failed to alloc test image");
+ ASSERT_NOT_NULL(test_zbi, "failed to alloc test image");
zbi::Zbi image(test_zbi);
@@ -951,18 +718,14 @@
ASSERT_EQ(result, ZBI_RESULT_OK, "content check failed");
ASSERT_EQ(count, 4, "bad bootdata item count");
-
- END_TEST;
}
-static bool ZbiTestBadContainer(void) {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestBadContainer) {
uint8_t* test_zbi = get_test_zbi();
auto cleanup = fbl::MakeAutoCall([test_zbi]() { free(test_zbi); });
- ASSERT_NONNULL(test_zbi, "failed to alloc test image");
+ ASSERT_NOT_NULL(test_zbi, "failed to alloc test image");
zbi_header_t* bootdata_header = reinterpret_cast<zbi_header_t*>(test_zbi);
// Set to something arbitrary
@@ -976,17 +739,14 @@
// Make sure that the diagnostic information tells us that the container is
// bad.
ASSERT_EQ(problem_header, bootdata_header);
-
- END_TEST;
}
-static bool ZbiTestTruncated(void) {
- BEGIN_TEST;
+TEST(ZbiTests, ZbiTestTruncated) {
uint8_t* test_zbi = get_test_zbi();
auto cleanup = fbl::MakeAutoCall([test_zbi]() { free(test_zbi); });
- ASSERT_NONNULL(test_zbi, "failed to alloc test image");
+ ASSERT_NOT_NULL(test_zbi, "failed to alloc test image");
zbi::Zbi image(test_zbi);
@@ -998,7 +758,7 @@
// zbi.Check should only give us diagnostics about the error if there was
// an error in the first place.
- ASSERT_NONNULL(trace, "Bad image with no trace diagnostics?");
+ ASSERT_NOT_NULL(trace, "Bad image with no trace diagnostics?");
int count = 0;
zbi_result_t result = image.ForEach(check_contents, &count);
@@ -1006,12 +766,9 @@
ASSERT_NE(result, ZBI_RESULT_OK, "Truncated image not reported as truncated");
ASSERT_EQ(count, 4, "bad bootdata item count");
-
- END_TEST;
}
-static bool ZbiTestAppend(void) {
- BEGIN_TEST;
+TEST(ZbiTests, ZbiTestAppend) {
// Allocate an additional kExtraBytes at the end of the ZBI to test
// appending.
const size_t kExtraBytes = sizeof(zbi_header_t) + sizeof(kAppendRD);
@@ -1026,7 +783,7 @@
free(reference_zbi);
});
- ASSERT_NONNULL(test_zbi, "failed to alloc test image");
+ ASSERT_NOT_NULL(test_zbi, "failed to alloc test image");
const size_t kBufferSize = sizeof(test_zbi_t) + kExtraBytes;
zbi::Zbi image(test_zbi, kBufferSize);
@@ -1047,14 +804,10 @@
// Verify the integrity of the data.
reference_image->header.length = test_image->header.length;
ASSERT_EQ(memcmp(test_zbi, reference_zbi, sizeof(test_zbi_t)), 0, "Append corrupted image");
-
- END_TEST;
}
// Make sure we never overflow the ZBI's buffer by appending.
-static bool ZbiTestAppendFull(void) {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestAppendFull) {
// Enough space for a small payload
const size_t kMaxAppendPayloadSize = ZBI_ALIGN(5);
const size_t kExtraBytes = sizeof(zbi_header_t) + kMaxAppendPayloadSize;
@@ -1063,7 +816,7 @@
uint8_t* test_zbi = get_test_zbi_extra(kExtraBytes + kExtraSentinelLength);
- ASSERT_NONNULL(test_zbi, "failed to alloc test image");
+ ASSERT_NOT_NULL(test_zbi, "failed to alloc test image");
auto cleanup = fbl::MakeAutoCall([test_zbi] { free(test_zbi); });
@@ -1101,15 +854,12 @@
ASSERT_EQ(test_zbi[kZbiSize + i], kSentinelByte,
"corrupt sentinel bytes, append section overflowed.");
}
-
- END_TEST;
}
// Test that appending multiple sections to a ZBI works
-static bool ZbiTestAppendMulti(void) {
- BEGIN_TEST;
+TEST(ZbiTests, ZbiTestAppendMulti) {
uint8_t* reference_zbi = get_test_zbi();
- ASSERT_NONNULL(reference_zbi);
+ ASSERT_NOT_NULL(reference_zbi);
auto cleanup = fbl::MakeAutoCall([reference_zbi]() { free(reference_zbi); });
alignas(ZBI_ALIGNMENT) uint8_t test_zbi[sizeof(test_zbi_t)];
@@ -1147,15 +897,11 @@
ASSERT_EQ(result, ZBI_RESULT_OK);
ASSERT_EQ(memcmp(reference_zbi, test_zbi, image.Length()), 0);
-
- END_TEST;
}
constexpr size_t kTestBufferSize = 1024;
// Test that we can initialize empty buffers as ZBI containers.
-static bool ZbiTestCppInit(void) {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCppInit) {
std::unique_ptr<uint8_t[]> buffer;
buffer.reset(new uint8_t[kTestBufferSize]);
@@ -1168,14 +914,10 @@
result = image.CreateEntryWithPayload(ZBI_TYPE_CMDLINE, 0, 0, kTestCmdline, sizeof(kTestCmdline));
ASSERT_EQ(result, ZBI_RESULT_OK);
-
- END_TEST;
}
// Test that we don't try to create a ZBI in a container that's not big enough.
-static bool ZbiTestCppInitTooSmall(void) {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCppInitTooSmall) {
constexpr uint8_t kSentinel = 0xab;
// If all goes well, we should never write to this buffer.
@@ -1197,16 +939,12 @@
for (size_t i = 0; i < kTestBufferSize; i++) {
EXPECT_EQ(buffer.get()[i], kSentinel);
}
-
- END_TEST;
}
// Test the happy case.
// Make two zbi containers, extend the first by tacking the second to the back
// of it. Observe that everything went okay.
-static bool ZbiTestExtendOkay(void) {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestExtendOkay) {
// Create a dst zbi that has enough space to contain the src zbi.
uint8_t* src_buf = get_test_zbi();
@@ -1232,12 +970,9 @@
ASSERT_EQ(zbi_for_each(dst_buf, check_contents, &combined_sections), ZBI_RESULT_OK);
ASSERT_EQ(src_sections + dst_sections, combined_sections);
-
- END_TEST;
}
-static bool ZbiTestNoOverflow(void) {
- BEGIN_TEST;
+TEST(ZbiTests, ZbiTestNoOverflow) {
constexpr size_t kBufferSize = 1024;
constexpr size_t kUsableBufferSize = kBufferSize / 2;
constexpr uint8_t kSentinel = 0xab;
@@ -1294,14 +1029,10 @@
ZBI_RESULT_OK);
ASSERT_NE(zbi_extend(dst_buffer, kUsableBufferSize, src_buffer), ZBI_RESULT_OK);
-
- END_TEST;
}
#ifdef __Fuchsia__
-static bool ZbiZxTestOverflowAtPageBoundary() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiZxTestOverflowAtPageBoundary) {
// Make a VMO, and fill it with a zbi that's "kernel + data".
constexpr size_t kInitialAlloc = 16384;
zx_handle_t bootdata;
@@ -1351,95 +1082,5 @@
ZBI_RESULT_OK);
EXPECT_EQ(data.AppendSection(sizeof(append_data), ZBI_TYPE_CMDLINE, 0, 0, append_data),
ZBI_RESULT_OK);
-
- END_TEST;
}
#endif
-
-BEGIN_TEST_CASE(zbi_tests)
-RUN_TEST(ZbiTestInit)
-RUN_TEST(ZbiTestInitTooSmall)
-RUN_TEST(ZbiTestInitNotAligned)
-RUN_TEST(ZbiTestInitNullBuffer)
-
-RUN_TEST(ZbiTestCheckEmptyContainer)
-RUN_TEST(ZbiTestCheckEmptyContainerWithErr)
-RUN_TEST(ZbiTestCheckContainerBadType)
-RUN_TEST(ZbiTestCheckContainerBadTypeWithErr)
-RUN_TEST(ZbiTestCheckContainerBadExtra)
-RUN_TEST(ZbiTestCheckContainerBadMagic)
-RUN_TEST(ZbiTestCheckContainerBadVersion)
-RUN_TEST(ZbiTestCheckContainerBadCrc32)
-
-RUN_TEST(ZbiTestCheckTestZbi)
-RUN_TEST(ZbiTestCheckTestZbiWithErr)
-RUN_TEST(ZbiTestCheckTestZbiNull)
-RUN_TEST(ZbiTestCheckFirstBadEntryIsMarked)
-RUN_TEST(ZbiTestCheckTestZbiBadMagic)
-RUN_TEST(ZbiTestCheckTestZbiBadMagicWithErr)
-RUN_TEST(ZbiTestCheckTestZbiBadVersion)
-RUN_TEST(ZbiTestCheckTestZbiBadCrc32)
-RUN_TEST(ZbiTestCheckTestZbiTruncated)
-
-RUN_TEST(ZbiTestCheckCompleteTestZbi)
-RUN_TEST(ZbiTestCheckCompleteTestZbiWithErr)
-RUN_TEST(ZbiTestCheckCompleteTestZbiNull)
-RUN_TEST(ZbiTestCheckCompleteTestZbiTruncated)
-RUN_TEST(ZbiTestCheckCompleteTestZbiWrongArch)
-RUN_TEST(ZbiTestCheckCompleteTestZbiWrongArchWithErr)
-RUN_TEST(ZbiTestCheckCompleteTestZbiMissingBootfs)
-
-RUN_TEST(ZbiTestForEachTestZbiNull)
-RUN_TEST(ZbiTestForEachTestZbiNullCallback)
-RUN_TEST(ZbiTestForEachTestZbiContainer)
-RUN_TEST(ZbiTestForEachTestZbiTruncated)
-RUN_TEST(ZbiTestForEachTestZbiItems)
-RUN_TEST(ZbiTestForEachTestZbiItemsNoCookie)
-RUN_TEST(ZbiTestForEachTestZbiItemsCallbackError)
-
-RUN_TEST(ZbiTestCreateEntryTestZbi)
-RUN_TEST(ZbiTestCreateEntryTestZbiNull)
-RUN_TEST(ZbiTestCreateEntryTestZbiNullPayload)
-RUN_TEST(ZbiTestCreateEntryTestZbiCrc32NotSupported)
-RUN_TEST(ZbiTestCreateEntryTestZbiNotContainer)
-RUN_TEST(ZbiTestCreateEntryTestZbiCapacitySmallerThanCurrentSize)
-RUN_TEST(ZbiTestCreateEntryTestZbiFull)
-RUN_TEST(ZbiTestCreateEntryTestZbiPayloadTooLarge)
-
-RUN_TEST(ZbiTestCreateEntryWithPayloadTestZbi)
-RUN_TEST(ZbiTestCreateEntryWithPayloadTestZbiNull)
-RUN_TEST(ZbiTestCreateEntryWithPayloadTestZbiNullPayload)
-RUN_TEST(ZbiTestCreateEntryWithPayloadTestZbiCrc32NotSupported)
-RUN_TEST(ZbiTestCreateEntryWithPayloadTestZbiNotContainer)
-RUN_TEST(ZbiTestCreateEntryWithPayloadTestZbiCapacitySmallerThanCurrentSize)
-RUN_TEST(ZbiTestCreateEntryWithPayloadTestZbiSectionTooLarge)
-
-RUN_TEST(ZbiTestExtendTestZbi)
-RUN_TEST(ZbiTestExtendTestZbiDstNull)
-RUN_TEST(ZbiTestExtendTestZbiSrcNull)
-RUN_TEST(ZbiTestExtendTestZbiDstNotContainer)
-RUN_TEST(ZbiTestExtendTestZbiSrcNotContainer)
-RUN_TEST(ZbiTestExtendTestZbiCapacitySmallerThanDstLength)
-RUN_TEST(ZbiTestExtendTestZbiCapacitySmallerThanDstAlignedLength)
-RUN_TEST(ZbiTestExtendTestZbiSrcTooLarge)
-
-// Basic tests.
-RUN_TEST(ZbiTestBasic)
-RUN_TEST(ZbiTestBadContainer)
-RUN_TEST(ZbiTestTruncated)
-
-RUN_TEST(ZbiTestCppInit)
-RUN_TEST(ZbiTestCppInitTooSmall)
-
-// Append tests.
-RUN_TEST(ZbiTestAppend)
-RUN_TEST(ZbiTestAppendFull)
-RUN_TEST(ZbiTestAppendMulti)
-
-// Extend tests.
-RUN_TEST(ZbiTestExtendOkay)
-RUN_TEST(ZbiTestNoOverflow)
-#ifdef __Fuchsia__
-RUN_TEST(ZbiZxTestOverflowAtPageBoundary)
-#endif
-END_TEST_CASE(zbi_tests)
diff --git a/zircon/system/ulib/zbi/test/BUILD.gn b/zircon/system/ulib/zbi/test/BUILD.gn
index 6ade6c2..4c04210 100644
--- a/zircon/system/ulib/zbi/test/BUILD.gn
+++ b/zircon/system/ulib/zbi/test/BUILD.gn
@@ -34,15 +34,14 @@
"//zircon/public/lib/fbl",
"//zircon/public/lib/pretty",
"//zircon/public/lib/zbi",
+ "//zircon/public/lib/zxtest",
]
if (is_fuchsia) {
deps += [
"//sdk/lib/fdio",
"//zircon/public/lib/zx",
- "//zircon/system/ulib/unittest",
]
} else {
- deps += [ "//zircon/system/ulib/unittest:unittest-static" ]
output_dir = "$root_out_dir/zircon-migrated"
}
}
diff --git a/zircon/system/ulib/zbi/test/zbi.cc b/zircon/system/ulib/zbi/test/zbi.cc
index 604abf5..97be556 100644
--- a/zircon/system/ulib/zbi/test/zbi.cc
+++ b/zircon/system/ulib/zbi/test/zbi.cc
@@ -14,7 +14,7 @@
#include <fbl/auto_call.h>
#include <pretty/hexdump.h>
-#include <unittest/unittest.h>
+#include <zxtest/zxtest.h>
#ifdef __Fuchsia__
#include <lib/zbi/zbi-zx.h>
@@ -161,156 +161,102 @@
}
}
-static bool ZbiTestInit() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestInit) {
alignas(ZBI_ALIGNMENT) uint8_t buffer[sizeof(zbi_header_t)];
ASSERT_EQ(zbi_init(buffer, sizeof(buffer)), ZBI_RESULT_OK);
auto* zbi = reinterpret_cast<zbi_header_t*>(buffer);
ASSERT_EQ(zbi->type, ZBI_TYPE_CONTAINER);
-
- END_TEST;
}
-static bool ZbiTestInitTooSmall() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestInitTooSmall) {
alignas(ZBI_ALIGNMENT) uint8_t buffer[sizeof(zbi_header_t) - 1];
ASSERT_EQ(zbi_init(buffer, sizeof(buffer)), ZBI_RESULT_TOO_BIG);
-
- END_TEST;
}
-static bool ZbiTestInitNotAligned() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestInitNotAligned) {
alignas(ZBI_ALIGNMENT) uint8_t buffer[sizeof(zbi_header_t) + 1];
void* misaligned_buffer = &buffer[1];
ASSERT_EQ(zbi_init(misaligned_buffer, sizeof(zbi_header_t)), ZBI_RESULT_BAD_ALIGNMENT);
-
- END_TEST;
}
-static bool ZbiTestInitNullBuffer() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestInitNullBuffer) {
ASSERT_EQ(zbi_init(nullptr, sizeof(zbi_header_t)), ZBI_RESULT_ERROR);
-
- END_TEST;
}
// TODO(fxb/52665): Consider pulling out the check logic into a common helper.
-static bool ZbiTestCheckEmptyContainer() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCheckEmptyContainer) {
zbi_header_t container = ZBI_CONTAINER_HEADER(0);
ASSERT_EQ(zbi_check(&container, nullptr), ZBI_RESULT_OK);
-
- END_TEST;
}
-static bool ZbiTestCheckEmptyContainerWithErr() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCheckEmptyContainerWithErr) {
zbi_header_t container = ZBI_CONTAINER_HEADER(0);
zbi_header_t* err = nullptr;
EXPECT_EQ(zbi_check(&container, &err), ZBI_RESULT_OK);
ASSERT_EQ(err, nullptr);
-
- END_TEST;
}
-static bool ZbiTestCheckContainerBadType() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCheckContainerBadType) {
zbi_header_t container = ZBI_CONTAINER_HEADER(0);
container.type = 0;
ASSERT_EQ(zbi_check(&container, nullptr), ZBI_RESULT_BAD_TYPE);
-
- END_TEST;
}
-static bool ZbiTestCheckContainerBadTypeWithErr() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCheckContainerBadTypeWithErr) {
zbi_header_t container = ZBI_CONTAINER_HEADER(0);
container.type = 0;
zbi_header_t* err = nullptr;
EXPECT_EQ(zbi_check(&container, &err), ZBI_RESULT_BAD_TYPE);
ASSERT_EQ(err, &container);
-
- END_TEST;
}
-static bool ZbiTestCheckContainerBadExtra() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCheckContainerBadExtra) {
zbi_header_t container = ZBI_CONTAINER_HEADER(0);
container.extra = 0;
ASSERT_EQ(zbi_check(&container, nullptr), ZBI_RESULT_BAD_MAGIC);
-
- END_TEST;
}
-static bool ZbiTestCheckContainerBadMagic() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCheckContainerBadMagic) {
zbi_header_t container = ZBI_CONTAINER_HEADER(0);
container.magic = 0;
ASSERT_EQ(zbi_check(&container, nullptr), ZBI_RESULT_BAD_MAGIC);
-
- END_TEST;
}
-static bool ZbiTestCheckContainerBadVersion() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCheckContainerBadVersion) {
zbi_header_t container = ZBI_CONTAINER_HEADER(0);
container.flags &= ~ZBI_FLAG_VERSION;
ASSERT_EQ(zbi_check(&container, nullptr), ZBI_RESULT_BAD_VERSION);
-
- END_TEST;
}
-static bool ZbiTestCheckContainerBadCrc32() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCheckContainerBadCrc32) {
zbi_header_t container = ZBI_CONTAINER_HEADER(0);
// Entries with no checksum must have the crc32 field set to ZBI_ITEM_NO_CRC32.
container.flags &= ~ZBI_FLAG_CRC32;
container.crc32 = 0;
ASSERT_EQ(zbi_check(&container, nullptr), ZBI_RESULT_BAD_CRC);
-
- END_TEST;
}
-static bool ZbiTestCheckTestZbi() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCheckTestZbi) {
test_zbi_t* zbi = reinterpret_cast<test_zbi_t*>(get_test_zbi());
ASSERT_EQ(zbi_check(zbi, nullptr), ZBI_RESULT_OK);
free(zbi);
-
- END_TEST;
}
-static bool ZbiTestCheckTestZbiWithErr() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCheckTestZbiWithErr) {
test_zbi_t* zbi = reinterpret_cast<test_zbi_t*>(get_test_zbi());
zbi_header_t* err = nullptr;
@@ -318,21 +264,13 @@
ASSERT_EQ(err, nullptr);
free(zbi);
-
- END_TEST;
}
-static bool ZbiTestCheckTestZbiNull() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCheckTestZbiNull) {
ASSERT_EQ(zbi_check(nullptr, nullptr), ZBI_RESULT_ERROR);
-
- END_TEST;
}
-static bool ZbiTestCheckFirstBadEntryIsMarked() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCheckFirstBadEntryIsMarked) {
test_zbi_t* zbi = reinterpret_cast<test_zbi_t*>(get_test_zbi());
zbi->cmdline_hdr.magic = 0;
zbi->ramdisk_hdr.magic = 0;
@@ -343,26 +281,18 @@
ASSERT_EQ(err, &zbi->cmdline_hdr);
free(zbi);
-
- END_TEST;
}
-static bool ZbiTestCheckTestZbiBadMagic() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCheckTestZbiBadMagic) {
test_zbi_t* zbi = reinterpret_cast<test_zbi_t*>(get_test_zbi());
zbi->cmdline_hdr.magic = 0;
EXPECT_EQ(zbi_check(zbi, nullptr), ZBI_RESULT_BAD_MAGIC);
free(zbi);
-
- END_TEST;
}
-static bool ZbiTestCheckTestZbiBadMagicWithErr() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCheckTestZbiBadMagicWithErr) {
test_zbi_t* zbi = reinterpret_cast<test_zbi_t*>(get_test_zbi());
zbi->cmdline_hdr.magic = 0;
zbi_header_t* err = nullptr;
@@ -372,26 +302,18 @@
ASSERT_EQ(err, &zbi->cmdline_hdr);
free(zbi);
-
- END_TEST;
}
-static bool ZbiTestCheckTestZbiBadVersion() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCheckTestZbiBadVersion) {
test_zbi_t* zbi = reinterpret_cast<test_zbi_t*>(get_test_zbi());
zbi->cmdline_hdr.flags &= ~ZBI_FLAG_VERSION;
EXPECT_EQ(zbi_check(zbi, nullptr), ZBI_RESULT_BAD_VERSION);
free(zbi);
-
- END_TEST;
}
-static bool ZbiTestCheckTestZbiBadCrc32() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCheckTestZbiBadCrc32) {
test_zbi_t* zbi = reinterpret_cast<test_zbi_t*>(get_test_zbi());
zbi->cmdline_hdr.flags &= ~ZBI_FLAG_CRC32;
zbi->cmdline_hdr.crc32 = 0;
@@ -399,38 +321,26 @@
ASSERT_EQ(zbi_check(zbi, nullptr), ZBI_RESULT_BAD_CRC);
free(zbi);
-
- END_TEST;
}
-static bool ZbiTestCheckTestZbiTruncated() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCheckTestZbiTruncated) {
test_zbi_t* zbi = reinterpret_cast<test_zbi_t*>(get_test_zbi());
zbi->header.length = 1;
ASSERT_EQ(zbi_check(zbi, nullptr), ZBI_RESULT_ERR_TRUNCATED);
free(zbi);
-
- END_TEST;
}
-static bool ZbiTestCheckCompleteTestZbi() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCheckCompleteTestZbi) {
test_zbi_t* zbi = reinterpret_cast<test_zbi_t*>(get_test_zbi());
ASSERT_EQ(zbi_check_complete(zbi, nullptr), ZBI_RESULT_OK);
free(zbi);
-
- END_TEST;
}
-static bool ZbiTestCheckCompleteTestZbiWithErr() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCheckCompleteTestZbiWithErr) {
test_zbi_t* zbi = reinterpret_cast<test_zbi_t*>(get_test_zbi());
zbi_header_t* err = nullptr;
@@ -439,45 +349,29 @@
ASSERT_EQ(err, nullptr);
free(zbi);
-
- END_TEST;
}
-static bool ZbiTestCheckCompleteTestZbiNull() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCheckCompleteTestZbiNull) {
ASSERT_EQ(zbi_check_complete(nullptr, nullptr), ZBI_RESULT_ERROR);
-
- END_TEST;
}
-static bool ZbiTestCheckCompleteTestZbiTruncated() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCheckCompleteTestZbiTruncated) {
zbi_header_t container = ZBI_CONTAINER_HEADER(0);
container.length = 0;
ASSERT_EQ(zbi_check_complete(&container, nullptr), ZBI_RESULT_ERR_TRUNCATED);
-
- END_TEST;
}
-static bool ZbiTestCheckCompleteTestZbiWrongArch() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCheckCompleteTestZbiWrongArch) {
test_zbi_t* zbi = reinterpret_cast<test_zbi_t*>(get_test_zbi());
zbi->kernel_hdr.type = 0;
ASSERT_EQ(zbi_check_complete(zbi, nullptr), ZBI_RESULT_INCOMPLETE_KERNEL);
free(zbi);
-
- END_TEST;
}
-static bool ZbiTestCheckCompleteTestZbiWrongArchWithErr() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCheckCompleteTestZbiWrongArchWithErr) {
test_zbi_t* zbi = reinterpret_cast<test_zbi_t*>(get_test_zbi());
zbi->kernel_hdr.type = 0;
zbi_header_t* err = nullptr;
@@ -487,21 +381,15 @@
ASSERT_EQ(err, &zbi->kernel_hdr);
free(zbi);
-
- END_TEST;
}
-static bool ZbiTestCheckCompleteTestZbiMissingBootfs() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCheckCompleteTestZbiMissingBootfs) {
test_zbi_t* zbi = reinterpret_cast<test_zbi_t*>(get_test_zbi());
zbi->bootfs_hdr.type = ZBI_TYPE_CMDLINE;
ASSERT_EQ(zbi_check_complete(zbi, nullptr), ZBI_RESULT_INCOMPLETE_BOOTFS);
free(zbi);
-
- END_TEST;
}
static zbi_result_t count_items_callback(zbi_header_t* header, void* payload, void* cookie) {
@@ -510,40 +398,26 @@
return ZBI_RESULT_OK;
}
-static bool ZbiTestForEachTestZbiNull() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestForEachTestZbiNull) {
ASSERT_EQ(zbi_for_each(nullptr, count_items_callback, nullptr), ZBI_RESULT_ERROR);
-
- END_TEST;
}
-static bool ZbiTestForEachTestZbiNullCallback() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestForEachTestZbiNullCallback) {
zbi_header_t container = ZBI_CONTAINER_HEADER(0);
ASSERT_EQ(zbi_for_each(&container, nullptr, nullptr), ZBI_RESULT_ERROR);
-
- END_TEST;
}
-static bool ZbiTestForEachTestZbiContainer() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestForEachTestZbiContainer) {
zbi_header_t container = ZBI_CONTAINER_HEADER(0);
uint32_t count = 0;
// The callback should be invoked with ZBI items and not the container.
EXPECT_EQ(zbi_for_each(&container, count_items_callback, &count), ZBI_RESULT_OK);
ASSERT_EQ(count, 0);
-
- END_TEST;
}
-static bool ZbiTestForEachTestZbiTruncated() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestForEachTestZbiTruncated) {
test_zbi_t* zbi = reinterpret_cast<test_zbi_t*>(get_test_zbi());
// Container length does not include the size of the container header
zbi->header.length = offsetof(test_zbi_t, cmdline_payload) - sizeof(zbi_header_t);
@@ -554,13 +428,9 @@
ASSERT_EQ(count, 2);
free(zbi);
-
- END_TEST;
}
-static bool ZbiTestForEachTestZbiItems() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestForEachTestZbiItems) {
test_zbi_t* zbi = reinterpret_cast<test_zbi_t*>(get_test_zbi());
uint32_t count = 0;
@@ -568,8 +438,6 @@
ASSERT_EQ(count, 4);
free(zbi);
-
- END_TEST;
}
static zbi_result_t modify_payload_callback(zbi_header_t* header, void* payload, void* cookie) {
@@ -581,9 +449,7 @@
return ZBI_RESULT_OK;
}
-static bool ZbiTestForEachTestZbiItemsNoCookie() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestForEachTestZbiItemsNoCookie) {
test_zbi_t* zbi = reinterpret_cast<test_zbi_t*>(get_test_zbi());
std::memset(zbi->kernel_payload, 'A', 1);
std::memset(zbi->cmdline_payload, 'A', 1);
@@ -598,8 +464,6 @@
EXPECT_EQ(zbi->bootfs_payload[0], 'B');
free(zbi);
-
- END_TEST;
}
static zbi_result_t modify_payload_then_error_callback(zbi_header_t* header, void* payload,
@@ -615,9 +479,7 @@
return ZBI_RESULT_OK;
}
-static bool ZbiTestForEachTestZbiItemsCallbackError() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestForEachTestZbiItemsCallbackError) {
test_zbi_t* zbi = reinterpret_cast<test_zbi_t*>(get_test_zbi());
std::memset(zbi->kernel_payload, 'A', 1);
std::memset(zbi->cmdline_payload, 'A', 1);
@@ -635,13 +497,9 @@
EXPECT_EQ(zbi->bootfs_payload[0], 'A');
free(zbi);
-
- END_TEST;
}
-static bool ZbiTestCreateEntryTestZbi() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCreateEntryTestZbi) {
// The ZBI has space for the container and an entry with an 8-byte payload.
single_entry_test_zbi_t zbi;
void* payload = nullptr;
@@ -655,82 +513,54 @@
// Verify the pointer points to the newly created entry payload.
EXPECT_EQ(payload, zbi.entry_payload);
-
- END_TEST;
}
-static bool ZbiTestCreateEntryTestZbiNull() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCreateEntryTestZbiNull) {
void* payload = nullptr;
ASSERT_EQ(zbi_create_entry(nullptr, 0, 0, 0, 0, 0, &payload), ZBI_RESULT_ERROR);
-
- END_TEST;
}
-static bool ZbiTestCreateEntryTestZbiNullPayload() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCreateEntryTestZbiNullPayload) {
zbi_header_t container = ZBI_CONTAINER_HEADER(0);
ASSERT_EQ(zbi_create_entry(&container, 0, 0, 0, 0, 0, nullptr), ZBI_RESULT_ERROR);
-
- END_TEST;
}
-static bool ZbiTestCreateEntryTestZbiCrc32NotSupported() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCreateEntryTestZbiCrc32NotSupported) {
zbi_header_t container = ZBI_CONTAINER_HEADER(0);
void* payload = nullptr;
ASSERT_EQ(zbi_create_entry(&container, 0, 0, 0, ZBI_FLAG_CRC32, 0, &payload), ZBI_RESULT_ERROR);
-
- END_TEST;
}
-static bool ZbiTestCreateEntryTestZbiNotContainer() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCreateEntryTestZbiNotContainer) {
zbi_header_t container = ZBI_CONTAINER_HEADER(0);
container.type = 0;
void* payload = nullptr;
ASSERT_EQ(zbi_create_entry(&container, 0, 0, 0, 0, 0, &payload), ZBI_RESULT_BAD_TYPE);
-
- END_TEST;
}
// create entry tests
-static bool ZbiTestCreateEntryTestZbiCapacitySmallerThanCurrentSize() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCreateEntryTestZbiCapacitySmallerThanCurrentSize) {
zbi_header_t container = ZBI_CONTAINER_HEADER(0);
container.length = 2;
void* payload = nullptr;
ASSERT_EQ(zbi_create_entry(&container, /*capacity=*/1, 0, 0, 0, 0, &payload), ZBI_RESULT_TOO_BIG);
-
- END_TEST;
}
-static bool ZbiTestCreateEntryTestZbiFull() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCreateEntryTestZbiFull) {
zbi_header_t container = ZBI_CONTAINER_HEADER(0);
void* payload = nullptr;
ASSERT_EQ(zbi_create_entry(&container, /*capacity=*/sizeof(container), 0, 0, 0,
/*payload_length=*/1, &payload),
ZBI_RESULT_TOO_BIG);
-
- END_TEST;
}
-static bool ZbiTestCreateEntryTestZbiPayloadTooLarge() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCreateEntryTestZbiPayloadTooLarge) {
single_entry_test_zbi_t zbi;
uint32_t capacity = sizeof(zbi);
void* payload = nullptr;
@@ -739,13 +569,9 @@
ASSERT_EQ(zbi_create_entry(&zbi, capacity, 0, 0, 0,
/*payload_length=*/capacity, &payload),
ZBI_RESULT_TOO_BIG);
-
- END_TEST;
}
-static bool ZbiTestCreateEntryWithPayloadTestZbi() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCreateEntryWithPayloadTestZbi) {
// The ZBI will have space for the container and an entry with a small payload.
single_entry_test_zbi_t zbi;
uint32_t payload = 0xABCDABCD;
@@ -757,84 +583,56 @@
// Verify the contents of the payload.
ASSERT_BYTES_EQ(reinterpret_cast<uint8_t*>(zbi.entry_payload),
reinterpret_cast<uint8_t*>(&payload), sizeof(payload), "Mismatched payloads.");
-
- END_TEST;
}
-static bool ZbiTestCreateEntryWithPayloadTestZbiNull() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCreateEntryWithPayloadTestZbiNull) {
void* payload = nullptr;
ASSERT_EQ(zbi_create_entry_with_payload(nullptr, 0, 0, 0, 0, &payload, 0), ZBI_RESULT_ERROR);
-
- END_TEST;
}
-static bool ZbiTestCreateEntryWithPayloadTestZbiNullPayload() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCreateEntryWithPayloadTestZbiNullPayload) {
zbi_header_t container = ZBI_CONTAINER_HEADER(0);
ASSERT_EQ(zbi_create_entry_with_payload(&container, 0, 0, 0, 0, nullptr, 0), ZBI_RESULT_ERROR);
-
- END_TEST;
}
-static bool ZbiTestCreateEntryWithPayloadTestZbiCrc32NotSupported() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCreateEntryWithPayloadTestZbiCrc32NotSupported) {
zbi_header_t container = ZBI_CONTAINER_HEADER(0);
void* payload = nullptr;
ASSERT_EQ(zbi_create_entry_with_payload(&container, 0, 0, 0, ZBI_FLAG_CRC32, &payload, 0),
ZBI_RESULT_ERROR);
-
- END_TEST;
}
-static bool ZbiTestCreateEntryWithPayloadTestZbiNotContainer() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCreateEntryWithPayloadTestZbiNotContainer) {
zbi_header_t container = ZBI_CONTAINER_HEADER(0);
container.type = 0;
void* payload = nullptr;
ASSERT_EQ(zbi_create_entry_with_payload(&container, 0, 0, 0, 0, &payload, 0),
ZBI_RESULT_BAD_TYPE);
-
- END_TEST;
}
-static bool ZbiTestCreateEntryWithPayloadTestZbiCapacitySmallerThanCurrentSize() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCreateEntryWithPayloadTestZbiCapacitySmallerThanCurrentSize) {
zbi_header_t container = ZBI_CONTAINER_HEADER(0);
container.length = 2;
void* payload = nullptr;
ASSERT_EQ(zbi_create_entry_with_payload(&container, /*capacity=*/1, 0, 0, 0, &payload, 0),
ZBI_RESULT_TOO_BIG);
-
- END_TEST;
}
-static bool ZbiTestCreateEntryWithPayloadTestZbiSectionTooLarge() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCreateEntryWithPayloadTestZbiSectionTooLarge) {
zbi_header_t container = ZBI_CONTAINER_HEADER(0);
void* payload = nullptr;
ASSERT_EQ(zbi_create_entry_with_payload(&container, /*capacity=*/1, 0, 0, 0, &payload,
/*payload_length=*/2),
ZBI_RESULT_TOO_BIG);
-
- END_TEST;
}
-static bool ZbiTestExtendTestZbi() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestExtendTestZbi) {
single_entry_test_zbi_t dst_zbi;
single_entry_test_zbi_t src_zbi;
@@ -847,94 +645,63 @@
ASSERT_EQ(zbi_extend(&dst_zbi, sizeof(dst_zbi), &src_zbi), ZBI_RESULT_OK);
ASSERT_BYTES_EQ(reinterpret_cast<uint8_t*>(dst_zbi.entry_payload),
reinterpret_cast<uint8_t*>(&payload), sizeof(payload), "Mismatched payload.");
-
- END_TEST;
}
-static bool ZbiTestExtendTestZbiDstNull() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestExtendTestZbiDstNull) {
zbi_header_t zbi = ZBI_CONTAINER_HEADER(0);
ASSERT_EQ(zbi_extend(nullptr, 0, &zbi), ZBI_RESULT_ERROR);
-
- END_TEST;
}
-static bool ZbiTestExtendTestZbiSrcNull() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestExtendTestZbiSrcNull) {
zbi_header_t zbi = ZBI_CONTAINER_HEADER(0);
ASSERT_EQ(zbi_extend(&zbi, 0, nullptr), ZBI_RESULT_ERROR);
-
- END_TEST;
}
-static bool ZbiTestExtendTestZbiDstNotContainer() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestExtendTestZbiDstNotContainer) {
zbi_header_t src = ZBI_CONTAINER_HEADER(0);
zbi_header_t dst = ZBI_CONTAINER_HEADER(0);
dst.type = 0;
ASSERT_EQ(zbi_extend(&dst, 0, &src), ZBI_RESULT_BAD_TYPE);
-
- END_TEST;
}
-static bool ZbiTestExtendTestZbiSrcNotContainer() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestExtendTestZbiSrcNotContainer) {
zbi_header_t src = ZBI_CONTAINER_HEADER(0);
src.type = 0;
zbi_header_t dst = ZBI_CONTAINER_HEADER(0);
ASSERT_EQ(zbi_extend(&dst, 0, &src), ZBI_RESULT_BAD_TYPE);
-
- END_TEST;
}
-static bool ZbiTestExtendTestZbiCapacitySmallerThanDstLength() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestExtendTestZbiCapacitySmallerThanDstLength) {
zbi_header_t src = ZBI_CONTAINER_HEADER(0);
zbi_header_t dst = ZBI_CONTAINER_HEADER(1);
ASSERT_EQ(zbi_extend(&dst, 0, &src), ZBI_RESULT_TOO_BIG);
-
- END_TEST;
}
-static bool ZbiTestExtendTestZbiCapacitySmallerThanDstAlignedLength() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestExtendTestZbiCapacitySmallerThanDstAlignedLength) {
zbi_header_t src = ZBI_CONTAINER_HEADER(0);
zbi_header_t dst = ZBI_CONTAINER_HEADER(6);
ASSERT_EQ(zbi_extend(&dst, /*capacity=*/7, &src), ZBI_RESULT_TOO_BIG);
-
- END_TEST;
}
-static bool ZbiTestExtendTestZbiSrcTooLarge() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestExtendTestZbiSrcTooLarge) {
zbi_header_t src = ZBI_CONTAINER_HEADER(ZBI_ALIGNMENT + 1);
zbi_header_t dst = ZBI_CONTAINER_HEADER(ZBI_ALIGNMENT);
ASSERT_EQ(zbi_extend(&dst, /*capacity=*/ZBI_ALIGNMENT, &src), ZBI_RESULT_TOO_BIG);
-
- END_TEST;
}
-static bool ZbiTestBasic(void) {
- BEGIN_TEST;
+TEST(ZbiTests, ZbiTestBasic) {
uint8_t* test_zbi = get_test_zbi();
auto cleanup = fbl::MakeAutoCall([test_zbi]() { free(test_zbi); });
- ASSERT_NONNULL(test_zbi, "failed to alloc test image");
+ ASSERT_NOT_NULL(test_zbi, "failed to alloc test image");
zbi::Zbi image(test_zbi);
@@ -951,18 +718,14 @@
ASSERT_EQ(result, ZBI_RESULT_OK, "content check failed");
ASSERT_EQ(count, 4, "bad bootdata item count");
-
- END_TEST;
}
-static bool ZbiTestBadContainer(void) {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestBadContainer) {
uint8_t* test_zbi = get_test_zbi();
auto cleanup = fbl::MakeAutoCall([test_zbi]() { free(test_zbi); });
- ASSERT_NONNULL(test_zbi, "failed to alloc test image");
+ ASSERT_NOT_NULL(test_zbi, "failed to alloc test image");
zbi_header_t* bootdata_header = reinterpret_cast<zbi_header_t*>(test_zbi);
// Set to something arbitrary
@@ -976,17 +739,14 @@
// Make sure that the diagnostic information tells us that the container is
// bad.
ASSERT_EQ(problem_header, bootdata_header);
-
- END_TEST;
}
-static bool ZbiTestTruncated(void) {
- BEGIN_TEST;
+TEST(ZbiTests, ZbiTestTruncated) {
uint8_t* test_zbi = get_test_zbi();
auto cleanup = fbl::MakeAutoCall([test_zbi]() { free(test_zbi); });
- ASSERT_NONNULL(test_zbi, "failed to alloc test image");
+ ASSERT_NOT_NULL(test_zbi, "failed to alloc test image");
zbi::Zbi image(test_zbi);
@@ -998,7 +758,7 @@
// zbi.Check should only give us diagnostics about the error if there was
// an error in the first place.
- ASSERT_NONNULL(trace, "Bad image with no trace diagnostics?");
+ ASSERT_NOT_NULL(trace, "Bad image with no trace diagnostics?");
int count = 0;
zbi_result_t result = image.ForEach(check_contents, &count);
@@ -1006,12 +766,9 @@
ASSERT_NE(result, ZBI_RESULT_OK, "Truncated image not reported as truncated");
ASSERT_EQ(count, 4, "bad bootdata item count");
-
- END_TEST;
}
-static bool ZbiTestAppend(void) {
- BEGIN_TEST;
+TEST(ZbiTests, ZbiTestAppend) {
// Allocate an additional kExtraBytes at the end of the ZBI to test
// appending.
const size_t kExtraBytes = sizeof(zbi_header_t) + sizeof(kAppendRD);
@@ -1026,7 +783,7 @@
free(reference_zbi);
});
- ASSERT_NONNULL(test_zbi, "failed to alloc test image");
+ ASSERT_NOT_NULL(test_zbi, "failed to alloc test image");
const size_t kBufferSize = sizeof(test_zbi_t) + kExtraBytes;
zbi::Zbi image(test_zbi, kBufferSize);
@@ -1047,14 +804,10 @@
// Verify the integrity of the data.
reference_image->header.length = test_image->header.length;
ASSERT_EQ(memcmp(test_zbi, reference_zbi, sizeof(test_zbi_t)), 0, "Append corrupted image");
-
- END_TEST;
}
// Make sure we never overflow the ZBI's buffer by appending.
-static bool ZbiTestAppendFull(void) {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestAppendFull) {
// Enough space for a small payload
const size_t kMaxAppendPayloadSize = ZBI_ALIGN(5);
const size_t kExtraBytes = sizeof(zbi_header_t) + kMaxAppendPayloadSize;
@@ -1063,7 +816,7 @@
uint8_t* test_zbi = get_test_zbi_extra(kExtraBytes + kExtraSentinelLength);
- ASSERT_NONNULL(test_zbi, "failed to alloc test image");
+ ASSERT_NOT_NULL(test_zbi, "failed to alloc test image");
auto cleanup = fbl::MakeAutoCall([test_zbi] { free(test_zbi); });
@@ -1101,15 +854,12 @@
ASSERT_EQ(test_zbi[kZbiSize + i], kSentinelByte,
"corrupt sentinel bytes, append section overflowed.");
}
-
- END_TEST;
}
// Test that appending multiple sections to a ZBI works
-static bool ZbiTestAppendMulti(void) {
- BEGIN_TEST;
+TEST(ZbiTests, ZbiTestAppendMulti) {
uint8_t* reference_zbi = get_test_zbi();
- ASSERT_NONNULL(reference_zbi);
+ ASSERT_NOT_NULL(reference_zbi);
auto cleanup = fbl::MakeAutoCall([reference_zbi]() { free(reference_zbi); });
alignas(ZBI_ALIGNMENT) uint8_t test_zbi[sizeof(test_zbi_t)];
@@ -1147,15 +897,11 @@
ASSERT_EQ(result, ZBI_RESULT_OK);
ASSERT_EQ(memcmp(reference_zbi, test_zbi, image.Length()), 0);
-
- END_TEST;
}
constexpr size_t kTestBufferSize = 1024;
// Test that we can initialize empty buffers as ZBI containers.
-static bool ZbiTestCppInit(void) {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCppInit) {
std::unique_ptr<uint8_t[]> buffer;
buffer.reset(new uint8_t[kTestBufferSize]);
@@ -1168,14 +914,10 @@
result = image.CreateEntryWithPayload(ZBI_TYPE_CMDLINE, 0, 0, kTestCmdline, sizeof(kTestCmdline));
ASSERT_EQ(result, ZBI_RESULT_OK);
-
- END_TEST;
}
// Test that we don't try to create a ZBI in a container that's not big enough.
-static bool ZbiTestCppInitTooSmall(void) {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestCppInitTooSmall) {
constexpr uint8_t kSentinel = 0xab;
// If all goes well, we should never write to this buffer.
@@ -1197,16 +939,12 @@
for (size_t i = 0; i < kTestBufferSize; i++) {
EXPECT_EQ(buffer.get()[i], kSentinel);
}
-
- END_TEST;
}
// Test the happy case.
// Make two zbi containers, extend the first by tacking the second to the back
// of it. Observe that everything went okay.
-static bool ZbiTestExtendOkay(void) {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiTestExtendOkay) {
// Create a dst zbi that has enough space to contain the src zbi.
uint8_t* src_buf = get_test_zbi();
@@ -1232,12 +970,9 @@
ASSERT_EQ(zbi_for_each(dst_buf, check_contents, &combined_sections), ZBI_RESULT_OK);
ASSERT_EQ(src_sections + dst_sections, combined_sections);
-
- END_TEST;
}
-static bool ZbiTestNoOverflow(void) {
- BEGIN_TEST;
+TEST(ZbiTests, ZbiTestNoOverflow) {
constexpr size_t kBufferSize = 1024;
constexpr size_t kUsableBufferSize = kBufferSize / 2;
constexpr uint8_t kSentinel = 0xab;
@@ -1294,14 +1029,10 @@
ZBI_RESULT_OK);
ASSERT_NE(zbi_extend(dst_buffer, kUsableBufferSize, src_buffer), ZBI_RESULT_OK);
-
- END_TEST;
}
#ifdef __Fuchsia__
-static bool ZbiZxTestOverflowAtPageBoundary() {
- BEGIN_TEST;
-
+TEST(ZbiTests, ZbiZxTestOverflowAtPageBoundary) {
// Make a VMO, and fill it with a zbi that's "kernel + data".
constexpr size_t kInitialAlloc = 16384;
zx_handle_t bootdata;
@@ -1351,95 +1082,5 @@
ZBI_RESULT_OK);
EXPECT_EQ(data.AppendSection(sizeof(append_data), ZBI_TYPE_CMDLINE, 0, 0, append_data),
ZBI_RESULT_OK);
-
- END_TEST;
}
#endif
-
-BEGIN_TEST_CASE(zbi_tests)
-RUN_TEST(ZbiTestInit)
-RUN_TEST(ZbiTestInitTooSmall)
-RUN_TEST(ZbiTestInitNotAligned)
-RUN_TEST(ZbiTestInitNullBuffer)
-
-RUN_TEST(ZbiTestCheckEmptyContainer)
-RUN_TEST(ZbiTestCheckEmptyContainerWithErr)
-RUN_TEST(ZbiTestCheckContainerBadType)
-RUN_TEST(ZbiTestCheckContainerBadTypeWithErr)
-RUN_TEST(ZbiTestCheckContainerBadExtra)
-RUN_TEST(ZbiTestCheckContainerBadMagic)
-RUN_TEST(ZbiTestCheckContainerBadVersion)
-RUN_TEST(ZbiTestCheckContainerBadCrc32)
-
-RUN_TEST(ZbiTestCheckTestZbi)
-RUN_TEST(ZbiTestCheckTestZbiWithErr)
-RUN_TEST(ZbiTestCheckTestZbiNull)
-RUN_TEST(ZbiTestCheckFirstBadEntryIsMarked)
-RUN_TEST(ZbiTestCheckTestZbiBadMagic)
-RUN_TEST(ZbiTestCheckTestZbiBadMagicWithErr)
-RUN_TEST(ZbiTestCheckTestZbiBadVersion)
-RUN_TEST(ZbiTestCheckTestZbiBadCrc32)
-RUN_TEST(ZbiTestCheckTestZbiTruncated)
-
-RUN_TEST(ZbiTestCheckCompleteTestZbi)
-RUN_TEST(ZbiTestCheckCompleteTestZbiWithErr)
-RUN_TEST(ZbiTestCheckCompleteTestZbiNull)
-RUN_TEST(ZbiTestCheckCompleteTestZbiTruncated)
-RUN_TEST(ZbiTestCheckCompleteTestZbiWrongArch)
-RUN_TEST(ZbiTestCheckCompleteTestZbiWrongArchWithErr)
-RUN_TEST(ZbiTestCheckCompleteTestZbiMissingBootfs)
-
-RUN_TEST(ZbiTestForEachTestZbiNull)
-RUN_TEST(ZbiTestForEachTestZbiNullCallback)
-RUN_TEST(ZbiTestForEachTestZbiContainer)
-RUN_TEST(ZbiTestForEachTestZbiTruncated)
-RUN_TEST(ZbiTestForEachTestZbiItems)
-RUN_TEST(ZbiTestForEachTestZbiItemsNoCookie)
-RUN_TEST(ZbiTestForEachTestZbiItemsCallbackError)
-
-RUN_TEST(ZbiTestCreateEntryTestZbi)
-RUN_TEST(ZbiTestCreateEntryTestZbiNull)
-RUN_TEST(ZbiTestCreateEntryTestZbiNullPayload)
-RUN_TEST(ZbiTestCreateEntryTestZbiCrc32NotSupported)
-RUN_TEST(ZbiTestCreateEntryTestZbiNotContainer)
-RUN_TEST(ZbiTestCreateEntryTestZbiCapacitySmallerThanCurrentSize)
-RUN_TEST(ZbiTestCreateEntryTestZbiFull)
-RUN_TEST(ZbiTestCreateEntryTestZbiPayloadTooLarge)
-
-RUN_TEST(ZbiTestCreateEntryWithPayloadTestZbi)
-RUN_TEST(ZbiTestCreateEntryWithPayloadTestZbiNull)
-RUN_TEST(ZbiTestCreateEntryWithPayloadTestZbiNullPayload)
-RUN_TEST(ZbiTestCreateEntryWithPayloadTestZbiCrc32NotSupported)
-RUN_TEST(ZbiTestCreateEntryWithPayloadTestZbiNotContainer)
-RUN_TEST(ZbiTestCreateEntryWithPayloadTestZbiCapacitySmallerThanCurrentSize)
-RUN_TEST(ZbiTestCreateEntryWithPayloadTestZbiSectionTooLarge)
-
-RUN_TEST(ZbiTestExtendTestZbi)
-RUN_TEST(ZbiTestExtendTestZbiDstNull)
-RUN_TEST(ZbiTestExtendTestZbiSrcNull)
-RUN_TEST(ZbiTestExtendTestZbiDstNotContainer)
-RUN_TEST(ZbiTestExtendTestZbiSrcNotContainer)
-RUN_TEST(ZbiTestExtendTestZbiCapacitySmallerThanDstLength)
-RUN_TEST(ZbiTestExtendTestZbiCapacitySmallerThanDstAlignedLength)
-RUN_TEST(ZbiTestExtendTestZbiSrcTooLarge)
-
-// Basic tests.
-RUN_TEST(ZbiTestBasic)
-RUN_TEST(ZbiTestBadContainer)
-RUN_TEST(ZbiTestTruncated)
-
-RUN_TEST(ZbiTestCppInit)
-RUN_TEST(ZbiTestCppInitTooSmall)
-
-// Append tests.
-RUN_TEST(ZbiTestAppend)
-RUN_TEST(ZbiTestAppendFull)
-RUN_TEST(ZbiTestAppendMulti)
-
-// Extend tests.
-RUN_TEST(ZbiTestExtendOkay)
-RUN_TEST(ZbiTestNoOverflow)
-#ifdef __Fuchsia__
-RUN_TEST(ZbiZxTestOverflowAtPageBoundary)
-#endif
-END_TEST_CASE(zbi_tests)