Quellcode durchsuchen

Tests/LibGfx: Add tests for top-left and bottom-left TGA images

Liav A vor 2 Jahren
Ursprung
Commit
6bf2460231

BIN
Base/res/html/misc/targasuite_files/buggie-bottom-left-uncompressed.tga


BIN
Base/res/html/misc/targasuite_files/buggie-top-left-uncompressed.tga


+ 33 - 0
Tests/LibGfx/TestImageDecoder.cpp

@@ -16,6 +16,7 @@
 #include <LibGfx/PGMLoader.h>
 #include <LibGfx/PNGLoader.h>
 #include <LibGfx/PPMLoader.h>
+#include <LibGfx/TGALoader.h>
 #include <LibTest/TestCase.h>
 #include <stdio.h>
 #include <string.h>
@@ -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<u8 const*>(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<u8 const*>(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);
+}