summaryrefslogtreecommitdiff
path: root/Tests/LibGfx
diff options
context:
space:
mode:
authorLiav A <liavalb@gmail.com>2022-12-31 13:34:05 +0200
committerJelle Raaijmakers <jelle@gmta.nl>2023-01-15 12:43:03 +0100
commit6bf2460231eb0528aa65531d8edb042dc66f4285 (patch)
treeea2c423910f10574183b42860ec9b57971f8b536 /Tests/LibGfx
parenta46df412656009a2461ea16a077e874bf63c2a32 (diff)
downloadserenity-6bf2460231eb0528aa65531d8edb042dc66f4285.zip
Tests/LibGfx: Add tests for top-left and bottom-left TGA images
Diffstat (limited to 'Tests/LibGfx')
-rw-r--r--Tests/LibGfx/TestImageDecoder.cpp33
1 files changed, 33 insertions, 0 deletions
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 <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);
+}