Imre Kis | ed98e9c | 2019-10-15 16:17:55 +0200 | [diff] [blame] | 1 | /* |
Imre Kis | 8ff4b34 | 2019-12-16 23:43:14 +0100 | [diff] [blame^] | 2 | * Copyright (c) 2019-2020, Arm Limited. All rights reserved. |
Imre Kis | ed98e9c | 2019-10-15 16:17:55 +0200 | [diff] [blame] | 3 | * |
| 4 | * SPDX-License-Identifier: BSD-3-Clause |
| 5 | */ |
| 6 | |
| 7 | #include "CppUTest/TestHarness.h" |
| 8 | extern "C" { |
| 9 | #include "lib/libc/string.h" |
| 10 | } |
| 11 | |
Imre Kis | 8ff4b34 | 2019-12-16 23:43:14 +0100 | [diff] [blame^] | 12 | #define BUFFER_SIZE (16) |
Imre Kis | ed98e9c | 2019-10-15 16:17:55 +0200 | [diff] [blame] | 13 | |
Imre Kis | 8ff4b34 | 2019-12-16 23:43:14 +0100 | [diff] [blame^] | 14 | TEST_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 Kis | ed98e9c | 2019-10-15 16:17:55 +0200 | [diff] [blame] | 24 | }; |
| 25 | |
Imre Kis | 8ff4b34 | 2019-12-16 23:43:14 +0100 | [diff] [blame^] | 26 | TEST(memcmp, zero_length) { |
| 27 | LONGS_EQUAL(0, memcmp(buffer1, buffer2, 0)); |
| 28 | } |
| 29 | |
| 30 | TEST(memcmp, same) { |
| 31 | LONGS_EQUAL(0, memcmp(buffer1, buffer2, sizeof(buffer1))); |
| 32 | } |
| 33 | |
| 34 | TEST(memcmp, first_diff_positive) { |
| 35 | buffer1[0] = 1; |
| 36 | LONGS_EQUAL(1, memcmp(buffer1, buffer2, sizeof(buffer1))); |
| 37 | } |
| 38 | |
| 39 | TEST(memcmp, first_diff_negative) { |
| 40 | buffer2[0] = 1; |
| 41 | LONGS_EQUAL(-1, memcmp(buffer1, buffer2, sizeof(buffer1))); |
| 42 | } |
| 43 | |
| 44 | TEST(memcmp, second_diff_positive) { |
| 45 | buffer1[1] = 1; |
| 46 | LONGS_EQUAL(1, memcmp(buffer1, buffer2, sizeof(buffer1))); |
| 47 | } |
| 48 | |
| 49 | TEST(memcmp, second_diff_negative) { |
| 50 | buffer2[1] = 1; |
| 51 | LONGS_EQUAL(-1, memcmp(buffer1, buffer2, sizeof(buffer1))); |
| 52 | } |
| 53 | |
| 54 | TEST(memcmp, last_diff_positive) { |
| 55 | buffer1[sizeof(buffer1) - 1] = 1; |
| 56 | LONGS_EQUAL(1, memcmp(buffer1, buffer2, sizeof(buffer1))); |
| 57 | } |
| 58 | |
| 59 | TEST(memcmp, last_diff_negative) { |
| 60 | buffer2[sizeof(buffer2) - 1] = 1; |
| 61 | LONGS_EQUAL(-1, memcmp(buffer1, buffer2, sizeof(buffer1))); |
Imre Kis | ed98e9c | 2019-10-15 16:17:55 +0200 | [diff] [blame] | 62 | } |