1 #if LV_BUILD_TEST
2 #include "../lvgl.h"
3 #include "../../lvgl_private.h"
4 
5 #include "unity/unity.h"
6 
7 static lv_array_t array;
8 
setUp(void)9 void setUp(void)
10 {
11     lv_array_init(&array, LV_ARRAY_DEFAULT_CAPACITY, sizeof(int32_t));
12 }
13 
tearDown(void)14 void tearDown(void)
15 {
16     lv_array_deinit(&array);
17 }
18 
test_array_append_values(void)19 void test_array_append_values(void)
20 {
21     const int32_t new_size = LV_ARRAY_DEFAULT_CAPACITY + 2;
22     TEST_ASSERT_EQUAL_UINT32(0, lv_array_size(&array));
23     for(int32_t i = 0; i < new_size; i++) {
24         lv_array_push_back(&array, &i);
25     }
26     /*push back will automatically extent the array size.*/
27     TEST_ASSERT_EQUAL_UINT32(new_size, lv_array_size(&array));
28 }
29 
test_array_set_get(void)30 void test_array_set_get(void)
31 {
32     int32_t v = 100;
33     lv_array_push_back(&array, &v);
34     int32_t * r = lv_array_at(&array, 0);
35     TEST_ASSERT_EQUAL_UINT32(100, *r);
36 }
37 
test_array_size(void)38 void test_array_size(void)
39 {
40     for(int32_t i = 0; i < 10; i++) {
41         lv_array_push_back(&array, &i);
42     }
43 
44     TEST_ASSERT_EQUAL_UINT32(0, lv_array_is_full(&array) ? 1 : 0);
45     lv_array_clear(&array);
46     TEST_ASSERT_EQUAL_UINT32(1, lv_array_is_empty(&array) ? 1 : 0);
47     TEST_ASSERT_EQUAL_UINT32(0, lv_array_size(&array));
48 }
49 
test_array_resize(void)50 void test_array_resize(void)
51 {
52     for(int32_t i = 0; i < LV_ARRAY_DEFAULT_CAPACITY; i++) {
53         lv_array_push_back(&array, &i);
54     }
55 
56     TEST_ASSERT_EQUAL_UINT32(LV_ARRAY_DEFAULT_CAPACITY, lv_array_size(&array));
57     lv_array_resize(&array, 12);
58     TEST_ASSERT_EQUAL_UINT32(LV_ARRAY_DEFAULT_CAPACITY, lv_array_size(&array));
59     TEST_ASSERT_EQUAL_UINT32(12, lv_array_capacity(&array));
60     lv_array_resize(&array, 6);
61     TEST_ASSERT_EQUAL_UINT32(LV_ARRAY_DEFAULT_CAPACITY, lv_array_size(&array));
62     TEST_ASSERT_EQUAL_UINT32(6, lv_array_capacity(&array));
63 }
64 
test_array_copy(void)65 void test_array_copy(void)
66 {
67     for(int32_t i = 0; i < LV_ARRAY_DEFAULT_CAPACITY; i++) {
68         lv_array_push_back(&array, &i);
69     }
70 
71     uint32_t array_size = lv_array_size(&array);
72     lv_array_t array2 = { 0 };
73     lv_array_copy(&array2, &array);
74     TEST_ASSERT_EQUAL_UINT32(array_size, lv_array_size(&array2));
75 
76     uint32_t * r = lv_array_at(&array2, 1);
77     TEST_ASSERT_EQUAL_UINT32(1, *r);
78     lv_array_deinit(&array2);
79 }
80 
test_array_concat(void)81 void test_array_concat(void)
82 {
83     lv_array_t a, b;
84     lv_array_init(&a, 4, sizeof(int32_t));
85     lv_array_init(&b, 4, sizeof(int32_t));
86     for(int32_t i = 0; i < 4; i++) {
87         lv_array_push_back(&a, &i);
88         lv_array_push_back(&b, &i);
89     }
90 
91     TEST_ASSERT_TRUE(lv_array_concat(&a, &b) == LV_RESULT_OK);
92     TEST_ASSERT_EQUAL_UINT32(8, lv_array_size(&a));
93 
94     for(int32_t i = 0; i < 8; i++) {
95         int32_t * v = lv_array_at(&a, i);
96         TEST_ASSERT_EQUAL_INT32(i % 4, *v);
97     }
98 
99     lv_array_deinit(&a);
100     lv_array_deinit(&b);
101 }
102 
103 #endif
104