1 /*
2  * Copyright (c) 2021, Arm Limited and Contributors. All rights reserved.
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  */
6 
7 #include <cstring>
8 #include <common/endian/le.h>
9 #include <CppUTest/TestHarness.h>
10 
TEST_GROUP(EndianTests)11 TEST_GROUP(EndianTests)
12 {
13 
14 };
15 
TEST(EndianTests,le8)16 TEST(EndianTests, le8)
17 {
18     const uint8_t test_vector[] = {0x00, 0x01, 0x02, 0x03, 0x04};
19     uint8_t store_result[sizeof(test_vector)];
20 
21     memcpy(store_result, test_vector, sizeof(test_vector));
22 
23     UNSIGNED_LONGS_EQUAL(0x03, load_u8_le(test_vector, 3));
24 
25     store_u8_le(store_result, 2, 0x02);
26     MEMCMP_EQUAL(test_vector, store_result, sizeof(test_vector));
27 }
28 
TEST(EndianTests,le16)29 TEST(EndianTests, le16)
30 {
31     const uint8_t test_vector[] = {0x00, 0x01, 0x02, 0x03, 0x04};
32     uint8_t store_result[sizeof(test_vector)];
33 
34     memcpy(store_result, test_vector, sizeof(test_vector));
35 
36     UNSIGNED_LONGS_EQUAL(0x0201, load_u16_le(test_vector, 1));
37 
38     store_u16_le(store_result, 1, 0x0201);
39     MEMCMP_EQUAL(test_vector, store_result, sizeof(test_vector));
40 }
41 
TEST(EndianTests,le32)42 TEST(EndianTests, le32)
43 {
44     const uint8_t test_vector[] = {0x00, 0x01, 0x02, 0x03, 0x04};
45     uint8_t store_result[sizeof(test_vector)];
46 
47     memcpy(store_result, test_vector, sizeof(test_vector));
48 
49     UNSIGNED_LONGS_EQUAL(0x04030201, load_u32_le(test_vector, 1));
50 
51     store_u32_le(store_result, 1, 0x04030201);
52     MEMCMP_EQUAL(test_vector, store_result, sizeof(test_vector));
53 }
54 
TEST(EndianTests,le64)55 TEST(EndianTests, le64)
56 {
57     const uint8_t test_vector[] = {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08};
58     uint8_t store_result[sizeof(test_vector)];
59 
60     memcpy(store_result, test_vector, sizeof(test_vector));
61 
62     UNSIGNED_LONGS_EQUAL(0x0807060504030201, load_u64_le(test_vector, 1));
63 
64     store_u64_le(store_result, 1, 0x0807060504030201);
65     MEMCMP_EQUAL(test_vector, store_result, sizeof(test_vector));
66 }
67