1 #if LV_BUILD_TEST
2 #include "../lvgl.h"
3 #include "../../lvgl_private.h"
4 #include "../demos/lv_demos.h"
5 
6 #include "unity/unity.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 
test_render_to_argb4444(void)18 void test_render_to_argb4444(void)
19 {
20     /**
21      * There is a slight color deviation between thorvg on 32-bit and 64-bit platforms.
22      * The deviation will be amplified when using lower precision color formats.
23      * Only 64-bit platforms are tested here.
24      */
25 #if LV_USE_DRAW_VG_LITE && LV_USE_SNAPSHOT && !defined(NON_AMD64_BUILD)
26 
27     lv_opa_t opa_values[2] = {0xff, 0x80};
28     uint32_t opa;
29     for(opa = 0; opa < 2; opa++) {
30         uint32_t i;
31         for(i = 0; i < LV_DEMO_RENDER_SCENE_NUM; i++) {
32 
33             /*Skip test with transformed indexed images if they are not loaded to RAM*/
34             if(LV_BIN_DECODER_RAM_LOAD == 0 &&
35                (i == LV_DEMO_RENDER_SCENE_IMAGE_NORMAL_2 ||
36                 i == LV_DEMO_RENDER_SCENE_IMAGE_RECOLOR_2)) continue;
37 
38             lv_demo_render(i, opa_values[opa]);
39             lv_draw_buf_t * draw_buf = lv_snapshot_take(lv_screen_active(), LV_COLOR_FORMAT_ARGB4444);
40             lv_obj_t * img = lv_image_create(lv_layer_top());
41             lv_image_set_src(img, draw_buf);
42 
43             char buf[128];
44             lv_snprintf(buf, sizeof(buf), "draw/render/argb4444/demo_render_%s_opa_%d.png",
45                         lv_demo_render_get_scene_name(i), opa_values[opa]);
46             TEST_ASSERT_EQUAL_SCREENSHOT(buf);
47             lv_obj_delete(img);
48             lv_draw_buf_destroy(draw_buf);
49         }
50     }
51 #else
52     TEST_PASS();
53 #endif
54 }
55 
56 #endif
57