diff options
author | Liav A <liavalb@gmail.com> | 2022-12-31 13:34:05 +0200 |
---|---|---|
committer | Jelle Raaijmakers <jelle@gmta.nl> | 2023-01-15 12:43:03 +0100 |
commit | 6bf2460231eb0528aa65531d8edb042dc66f4285 (patch) | |
tree | ea2c423910f10574183b42860ec9b57971f8b536 /Tests/LibGfx | |
parent | a46df412656009a2461ea16a077e874bf63c2a32 (diff) | |
download | serenity-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.cpp | 33 |
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); +} |