GCC Code Coverage Report


Directory: src/gate/
File: src/gate/graphics/tests/gategraphics_test/test_images.c
Date: 2025-09-14 13:10:38
Exec Total Coverage
Lines: 51 54 94.4%
Functions: 8 8 100.0%
Branches: 17 34 50.0%

Line Branch Exec Source
1 #include "gate/tests.h"
2 #include "test_images.h"
3 #include "gate/graphics/colors.h"
4 #include "gate/graphics/bitmapimages.h"
5 #include "gate/graphics/jpegimages.h"
6 #include "gate/graphics/pngimages.h"
7 #include "gate/graphics/gifimages.h"
8 #include "gate/graphics/pixmapimages.h"
9 #include "gate/graphics/drawing.h"
10 #include "gate/streams.h"
11
12 1 GATE_TEST_FUNCTION(test_colors)
13 {
14 gate_color_t col;
15
16 1 GATE_TEST_UNIT_BEGIN(test_colors);
17
18
1/2
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
1 GATE_TEST_CHECK_EQUAL(6, gate_color_parse_hex("336699", 6, &col));
19
1/2
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
1 GATE_TEST_CHECK_EQUAL(col.r, 0x33);
20
1/2
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
1 GATE_TEST_CHECK_EQUAL(col.g, 0x66);
21
1/2
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
1 GATE_TEST_CHECK_EQUAL(col.b, 0x99);
22
1/2
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
1 GATE_TEST_CHECK_EQUAL(col.a, 0xff);
23
24 1 GATE_TEST_UNIT_END;
25 }
26
27 5 static gate_result_t create_raster_image(gate_rasterimage_t* image)
28 {
29 gate_result_t ret;
30 5 gate_color_t bg_col = GATE_COLOR_BLUE;
31 5 gate_color_t fg_col = GATE_COLOR_YELLOW;
32
33
1/2
✗ Branch 1 not taken.
✓ Branch 2 taken 5 times.
5 if (NULL == gate_rasterimage_create(image,
34 GATE_IMAGE_PIXELFORMAT_RGB24,
35 64, 32, NULL))
36 {
37 return GATE_RESULT_OUTOFMEMORY;
38 }
39 5 ret = gate_rasterimage_clear(image, &bg_col);
40
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 5 times.
5 if (GATE_FAILED(ret))
41 {
42 gate_rasterimage_release(image);
43 return ret;
44 }
45 5 gate_draw_line(image, 0, 0, 64, 32, fg_col);
46 5 gate_draw_line(image, 0, 32, 64, 0, fg_col);
47 5 return ret;
48 }
49
50 5 static gate_bool_t test_save_load_rasterimage(gate_image_reader_t reader, gate_image_writer_t writer)
51 {
52 5 gate_rasterimage_t image = GATE_INIT_EMPTY;
53 5 gate_rasterimage_t image2 = GATE_INIT_EMPTY;
54 5 gate_stream_t* ptr_stream = NULL;
55
56
1/2
✓ Branch 3 taken 5 times.
✗ Branch 4 not taken.
5 GATE_TEST_REQUIRE_OK(create_raster_image(&image));
57
58 5 ptr_stream = (gate_stream_t*)gate_memstream_create(0);
59
1/2
✓ Branch 2 taken 5 times.
✗ Branch 3 not taken.
5 GATE_TEST_CHECK(ptr_stream);
60
1/2
✓ Branch 0 taken 5 times.
✗ Branch 1 not taken.
5 if (ptr_stream)
61 {
62
1/2
✓ Branch 3 taken 5 times.
✗ Branch 4 not taken.
5 GATE_TEST_CHECK_OK(writer(&image, ptr_stream, 0));
63
64
1/2
✓ Branch 3 taken 5 times.
✗ Branch 4 not taken.
5 GATE_TEST_CHECK_OK(reader(ptr_stream, &image2, 0));
65
66 5 gate_object_release(ptr_stream);
67 }
68
69 5 gate_rasterimage_release(&image2);
70 5 gate_rasterimage_release(&image);
71
72 5 return true;
73 }
74
75 1 GATE_TEST_FUNCTION(test_bitmap)
76 {
77 1 GATE_TEST_UNIT_BEGIN(test_bitmap);
78
1/2
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
1 GATE_TEST_CHECK(test_save_load_rasterimage(&gate_bitmapimage_load, &gate_bitmapimage_save));
79 1 GATE_TEST_UNIT_END;
80 }
81
82 1 GATE_TEST_FUNCTION(test_jpeg)
83 {
84 1 GATE_TEST_UNIT_BEGIN(test_jpeg);
85
1/2
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
1 GATE_TEST_CHECK(test_save_load_rasterimage(&gate_jpegimage_load, &gate_jpegimage_save));
86 1 GATE_TEST_UNIT_END;
87 }
88
89 1 GATE_TEST_FUNCTION(test_png)
90 {
91 1 GATE_TEST_UNIT_BEGIN(test_png);
92
1/2
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
1 GATE_TEST_CHECK(test_save_load_rasterimage(&gate_pngimage_load, &gate_pngimage_save));
93 1 GATE_TEST_UNIT_END;
94 }
95
96 1 GATE_TEST_FUNCTION(test_gif)
97 {
98 1 GATE_TEST_UNIT_BEGIN(test_gif);
99
1/2
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
1 GATE_TEST_CHECK(test_save_load_rasterimage(&gate_gifimage_load, &gate_gifimage_save));
100 1 GATE_TEST_UNIT_END;
101 }
102
103 1 GATE_TEST_FUNCTION(test_pixmap)
104 {
105 1 GATE_TEST_UNIT_BEGIN(test_pixmap);
106
1/2
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
1 GATE_TEST_CHECK(test_save_load_rasterimage(&gate_pixmapimage_load, &gate_pixmapimage_save));
107 1 GATE_TEST_UNIT_END;
108 }
109