From 4badcf4bfb56dac2fe115a8652865859b9fbe1c6 Mon Sep 17 00:00:00 2001 From: David Korth Date: Mon, 16 Jun 2025 01:06:17 -0400 Subject: [PATCH] [libromdata/tests] ImageDecoderTest: Add two Qoi test images. - argb-reference.qoi: Qoi version of argb-reference.png - rgb-reference.qoi: Qoi version of rgb-reference.png --- src/libromdata/tests/img/ImageDecoderTest.cpp | 10 ++++++++++ .../ImageDecoder_data/Qoi/argb-reference.qoi.gz | Bin 0 -> 30256 bytes .../ImageDecoder_data/Qoi/rgb-reference.qoi.gz | Bin 0 -> 3086 bytes 3 files changed, 10 insertions(+) create mode 100644 src/libromdata/tests/img/ImageDecoder_data/Qoi/argb-reference.qoi.gz create mode 100644 src/libromdata/tests/img/ImageDecoder_data/Qoi/rgb-reference.qoi.gz diff --git a/src/libromdata/tests/img/ImageDecoderTest.cpp b/src/libromdata/tests/img/ImageDecoderTest.cpp index 115980394..58b8735fb 100644 --- a/src/libromdata/tests/img/ImageDecoderTest.cpp +++ b/src/libromdata/tests/img/ImageDecoderTest.cpp @@ -2049,6 +2049,16 @@ INSTANTIATE_TEST_SUITE_P(MAME, ImageDecoderTest, MAME_MIPMAP_TEST("texture_compression_etc2.ktx", 7, "COMPRESSED_RGB8_ETC2")) , ImageDecoderTest::test_case_suffix_generator); +// Qoi tests +#define QOI_IMAGE_TEST(file, format) ImageDecoderTest_mode( \ + "Qoi/" file ".qoi.gz", \ + file ".png", (format)) +INSTANTIATE_TEST_SUITE_P(Qoi, ImageDecoderTest, + ::testing::Values( + QOI_IMAGE_TEST("argb-reference", "ARGB32"), + QOI_IMAGE_TEST("rgb-reference", "RGB888")) + , ImageDecoderTest::test_case_suffix_generator); + // TODO: NPOT tests for compressed formats. (partial block sizes) } } diff --git a/src/libromdata/tests/img/ImageDecoder_data/Qoi/argb-reference.qoi.gz b/src/libromdata/tests/img/ImageDecoder_data/Qoi/argb-reference.qoi.gz new file mode 100644 index 0000000000000000000000000000000000000000..804a6dc44978150817ab799f2e850aea841a2d55 GIT binary patch literal 30256 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 NZdn_V