From 6bf2460231eb0528aa65531d8edb042dc66f4285 Mon Sep 17 00:00:00 2001 From: Liav A Date: Sat, 31 Dec 2022 13:34:05 +0200 Subject: [PATCH] Tests/LibGfx: Add tests for top-left and bottom-left TGA images --- .../buggie-bottom-left-uncompressed.tga | Bin 0 -> 66044 bytes .../buggie-top-left-uncompressed.tga | Bin 0 -> 66044 bytes Tests/LibGfx/TestImageDecoder.cpp | 33 ++++++++++++++++++ 3 files changed, 33 insertions(+) create mode 100644 Base/res/html/misc/targasuite_files/buggie-bottom-left-uncompressed.tga create mode 100644 Base/res/html/misc/targasuite_files/buggie-top-left-uncompressed.tga diff --git a/Base/res/html/misc/targasuite_files/buggie-bottom-left-uncompressed.tga b/Base/res/html/misc/targasuite_files/buggie-bottom-left-uncompressed.tga new file mode 100644 index 0000000000000000000000000000000000000000..5f0a8aaf615a1087f8d3bdf4a7ddeda6a2b7a426 GIT binary patch literal 66044 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 literal 0 HcmV?d00001 diff --git a/Tests/LibGfx/TestImageDecoder.cpp b/Tests/LibGfx/TestImageDecoder.cpp index 366f2f0052..f458a6f500 100644 --- a/Tests/LibGfx/TestImageDecoder.cpp +++ b/Tests/LibGfx/TestImageDecoder.cpp @@ -16,6 +16,7 @@ #include #include #include +#include #include #include #include @@ -143,3 +144,35 @@ TEST_CASE(test_ppm) auto frame = ppm.frame(0).release_value_but_fixme_should_propagate_errors(); EXPECT(frame.duration == 0); } + +TEST_CASE(test_targa_bottom_left) +{ + auto file = Core::MappedFile::map("/res/html/misc/targasuite_files/buggie-bottom-left-uncompressed.tga"sv).release_value(); + auto tga = Gfx::TGAImageDecoderPlugin(reinterpret_cast(file->data()), file->size()); + EXPECT_EQ(tga.frame_count(), 1u); + + EXPECT(tga.sniff()); + EXPECT(!tga.is_animated()); + EXPECT(!tga.loop_count()); + + auto frame_or_error = tga.frame(0); + EXPECT(!frame_or_error.is_error()); + auto frame = frame_or_error.release_value(); + EXPECT(frame.duration == 0); +} + +TEST_CASE(test_targa_top_left) +{ + auto file = Core::MappedFile::map("/res/html/misc/targasuite_files/buggie-top-left-uncompressed.tga"sv).release_value(); + auto tga = Gfx::TGAImageDecoderPlugin(reinterpret_cast(file->data()), file->size()); + EXPECT_EQ(tga.frame_count(), 1u); + + EXPECT(tga.sniff()); + EXPECT(!tga.is_animated()); + EXPECT(!tga.loop_count()); + + auto frame_or_error = tga.frame(0); + EXPECT(!frame_or_error.is_error()); + auto frame = frame_or_error.release_value(); + EXPECT(frame.duration == 0); +}