1 #if LV_BUILD_TEST
2 #include "../lvgl.h"
3 #include "../../lvgl_private.h"
4
5 #include "unity/unity.h"
6
setUp(void)7 void setUp(void)
8 {
9 /* Function run before every test */
10 }
11
tearDown(void)12 void tearDown(void)
13 {
14 lv_obj_clean(lv_screen_active());
15 }
16
create_image(const void * src)17 static void create_image(const void * src)
18 {
19 lv_obj_t * img = lv_image_create(lv_screen_active());
20 lv_image_set_src(img, src);
21 lv_obj_center(img);
22 }
23
bin_decoder(const void * src,const char * screenshot)24 static void bin_decoder(const void * src, const char * screenshot)
25 {
26 create_image(src);
27 TEST_ASSERT_EQUAL_SCREENSHOT(screenshot);
28 lv_obj_clean(lv_screen_active());
29
30 size_t mem_before = lv_test_get_free_mem();
31 for(uint32_t i = 0; i < 20; i++) {
32 lv_obj_clean(lv_screen_active());
33 create_image(src);
34
35 lv_obj_invalidate(lv_screen_active());
36 lv_refr_now(NULL);
37 }
38 TEST_ASSERT_EQUAL_SCREENSHOT(screenshot);
39 lv_obj_clean(lv_screen_active());
40 TEST_ASSERT_MEM_LEAK_LESS_THAN(mem_before, 0);
41 }
42
create_image_tile(const void * src)43 static void create_image_tile(const void * src)
44 {
45 lv_obj_t * img = lv_image_create(lv_screen_active());
46 lv_image_set_src(img, src);
47 lv_obj_center(img);
48 lv_obj_set_size(img, 275, 175);
49 lv_image_set_inner_align(img, LV_IMAGE_ALIGN_TILE);
50 }
51
bin_decoder_tile(const void * src,const char * screenshot)52 void bin_decoder_tile(const void * src, const char * screenshot)
53 {
54 create_image_tile(src);
55 TEST_ASSERT_EQUAL_SCREENSHOT(screenshot);
56 lv_obj_clean(lv_screen_active());
57
58 size_t mem_before = lv_test_get_free_mem();
59 for(uint32_t i = 0; i < 20; i++) {
60 lv_obj_clean(lv_screen_active());
61 create_image_tile(src);
62
63 lv_obj_invalidate(lv_screen_active());
64 lv_refr_now(NULL);
65 }
66 TEST_ASSERT_EQUAL_SCREENSHOT(screenshot);
67 lv_obj_clean(lv_screen_active());
68 TEST_ASSERT_MEM_LEAK_LESS_THAN(mem_before, 0);
69 }
70
test_bin_decoder_i4(void)71 void test_bin_decoder_i4(void)
72 {
73 LV_IMAGE_DECLARE(test_image_cogwheel_i4);
74 bin_decoder(&test_image_cogwheel_i4, "libs/bin_decoder_1.png");
75 }
test_bin_decoder_i4_tile(void)76 void test_bin_decoder_i4_tile(void)
77 {
78 LV_IMAGE_DECLARE(test_image_cogwheel_i4);
79 bin_decoder_tile(&test_image_cogwheel_i4, "libs/bin_decoder_2.png");
80 }
test_bin_decoder_argb8888(void)81 void test_bin_decoder_argb8888(void)
82 {
83 LV_IMAGE_DECLARE(test_image_cogwheel_argb8888);
84 bin_decoder(&test_image_cogwheel_argb8888, "libs/bin_decoder_3.png");
85 }
test_bin_decoder_argb8888_tile(void)86 void test_bin_decoder_argb8888_tile(void)
87 {
88 LV_IMAGE_DECLARE(test_image_cogwheel_argb8888);
89 bin_decoder_tile(&test_image_cogwheel_argb8888, "libs/bin_decoder_4.png");
90 }
91
92 #endif
93