1 #if LV_BUILD_TEST
2 #include "../lvgl.h"
3 #include "../../lvgl_private.h"
4
5 #include "unity/unity.h"
6 #include "lv_test_helpers.h"
7
setUp(void)8 void setUp(void)
9 {
10 /* Function run before every test */
11 }
12
tearDown(void)13 void tearDown(void)
14 {
15 /* Function run after every test */
16 }
17
create_images(void)18 static void create_images(void)
19 {
20 lv_obj_clean(lv_screen_active());
21
22 lv_obj_t * img;
23 lv_obj_t * label;
24
25 img = lv_image_create(lv_screen_active());
26 lv_image_set_src(img, "A:src/test_assets/test_img_lvgl_logo.jpg");
27 lv_obj_align(img, LV_ALIGN_CENTER, -150, -150);
28
29 label = lv_label_create(lv_screen_active());
30 lv_label_set_text(label, "jpeg with exif orientation 0");
31 lv_obj_align(label, LV_ALIGN_CENTER, -150, -100);
32
33 img = lv_image_create(lv_screen_active());
34 lv_image_set_src(img, "A:src/test_assets/test_img_lvgl_logo_with_exif_orientation_180.jpg");
35 lv_obj_align(img, LV_ALIGN_CENTER, 150, -150);
36
37 label = lv_label_create(lv_screen_active());
38 lv_label_set_text(label, "jpeg with exif orientation 180");
39 lv_obj_align(label, LV_ALIGN_CENTER, 150, -100);
40
41 img = lv_image_create(lv_screen_active());
42 lv_image_set_src(img, "A:src/test_assets/test_img_lvgl_logo_with_exif_orientation_90.jpg");
43 lv_obj_align(img, LV_ALIGN_CENTER, -150, 40);
44
45 label = lv_label_create(lv_screen_active());
46 lv_label_set_text(label, "jpeg with exif orientation 90");
47 lv_obj_align(label, LV_ALIGN_CENTER, -150, 150);
48
49 img = lv_image_create(lv_screen_active());
50 lv_image_set_src(img, "A:src/test_assets/test_img_lvgl_logo_with_exif_orientation_270.jpg");
51 lv_obj_align(img, LV_ALIGN_CENTER, 150, 40);
52
53 label = lv_label_create(lv_screen_active());
54 lv_label_set_text(label, "jpeg with exif orientation 270");
55 lv_obj_align(label, LV_ALIGN_CENTER, 150, 150);
56 }
57
test_jpg_2(void)58 void test_jpg_2(void)
59 {
60 /* Temporarily remove tjpgd decoder */
61 lv_tjpgd_deinit();
62
63 create_images();
64
65 TEST_ASSERT_EQUAL_SCREENSHOT("libs/jpg_2.png");
66
67 size_t mem_before = lv_test_get_free_mem();
68 for(uint32_t i = 0; i < 20; i++) {
69 create_images();
70
71 lv_obj_invalidate(lv_screen_active());
72 lv_refr_now(NULL);
73 }
74
75 TEST_ASSERT_EQUAL_SCREENSHOT("libs/jpg_2.png");
76
77 TEST_ASSERT_MEM_LEAK_LESS_THAN(mem_before, 64);
78
79 /* Re-add tjpgd decoder */
80 lv_tjpgd_init();
81 }
82
83 #endif
84