blob: dabf276c88921a3e7d27c7c250e5cbdf34b3dd4f [file] [log] [blame]
Julian Hall201ce462021-04-29 11:05:34 +01001/*
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
11TEST_GROUP(EndianTests)
12{
13
14};
15
16TEST(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
29TEST(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
42TEST(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
55TEST(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}