blob: c644bec2dd437342ba55a8fc8ca35d1ccc2868a1 [file] [log] [blame]
Imre Kised98e9c2019-10-15 16:17:55 +02001/*
Imre Kis8ff4b342019-12-16 23:43:14 +01002 * Copyright (c) 2019-2020, Arm Limited. All rights reserved.
Imre Kised98e9c2019-10-15 16:17:55 +02003 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6
7#include "CppUTest/TestHarness.h"
8extern "C" {
9#include "lib/libc/string.h"
10}
11
Imre Kis8ff4b342019-12-16 23:43:14 +010012#define BUFFER_SIZE (16)
Imre Kised98e9c2019-10-15 16:17:55 +020013
Imre Kis8ff4b342019-12-16 23:43:14 +010014TEST_GROUP(memcmp) {
15 TEST_SETUP() {
16 for (int i = 0; i < BUFFER_SIZE; i++) {
17 buffer1[i] = 0;
18 buffer2[i] = 0;
19 }
20 }
21
22 uint8_t buffer1[BUFFER_SIZE];
23 uint8_t buffer2[BUFFER_SIZE];
Imre Kised98e9c2019-10-15 16:17:55 +020024};
25
Imre Kis8ff4b342019-12-16 23:43:14 +010026TEST(memcmp, zero_length) {
27 LONGS_EQUAL(0, memcmp(buffer1, buffer2, 0));
28}
29
30TEST(memcmp, same) {
31 LONGS_EQUAL(0, memcmp(buffer1, buffer2, sizeof(buffer1)));
32}
33
34TEST(memcmp, first_diff_positive) {
35 buffer1[0] = 1;
36 LONGS_EQUAL(1, memcmp(buffer1, buffer2, sizeof(buffer1)));
37}
38
39TEST(memcmp, first_diff_negative) {
40 buffer2[0] = 1;
41 LONGS_EQUAL(-1, memcmp(buffer1, buffer2, sizeof(buffer1)));
42}
43
44TEST(memcmp, second_diff_positive) {
45 buffer1[1] = 1;
46 LONGS_EQUAL(1, memcmp(buffer1, buffer2, sizeof(buffer1)));
47}
48
49TEST(memcmp, second_diff_negative) {
50 buffer2[1] = 1;
51 LONGS_EQUAL(-1, memcmp(buffer1, buffer2, sizeof(buffer1)));
52}
53
54TEST(memcmp, last_diff_positive) {
55 buffer1[sizeof(buffer1) - 1] = 1;
56 LONGS_EQUAL(1, memcmp(buffer1, buffer2, sizeof(buffer1)));
57}
58
59TEST(memcmp, last_diff_negative) {
60 buffer2[sizeof(buffer2) - 1] = 1;
61 LONGS_EQUAL(-1, memcmp(buffer1, buffer2, sizeof(buffer1)));
Imre Kised98e9c2019-10-15 16:17:55 +020062}