Testing memcmp and memcpy from TF-A libc
Removing previously used c-picker based tests and fully testing memcmp
and memcpy functions from the TF-A libc by linking them directly to the
test binary.
Change-Id: Ic343094603a563beda43ccda737d0e6f89f254e4
Signed-off-by: Imre Kis <imre.kis@arm.com>
diff --git a/tests/lib/libc/test_memcmp.cpp b/tests/lib/libc/test_memcmp.cpp
index b4eb293..c644bec 100644
--- a/tests/lib/libc/test_memcmp.cpp
+++ b/tests/lib/libc/test_memcmp.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2019, Arm Limited. All rights reserved.
+ * Copyright (c) 2019-2020, Arm Limited. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
@@ -9,10 +9,54 @@
#include "lib/libc/string.h"
}
-TEST_GROUP(memcmp) {
+#define BUFFER_SIZE (16)
+TEST_GROUP(memcmp) {
+ TEST_SETUP() {
+ for (int i = 0; i < BUFFER_SIZE; i++) {
+ buffer1[i] = 0;
+ buffer2[i] = 0;
+ }
+ }
+
+ uint8_t buffer1[BUFFER_SIZE];
+ uint8_t buffer2[BUFFER_SIZE];
};
-TEST(memcmp, empty) {
- LONGS_EQUAL(0, memcmp(NULL, NULL, 0))
+TEST(memcmp, zero_length) {
+ LONGS_EQUAL(0, memcmp(buffer1, buffer2, 0));
+}
+
+TEST(memcmp, same) {
+ LONGS_EQUAL(0, memcmp(buffer1, buffer2, sizeof(buffer1)));
+}
+
+TEST(memcmp, first_diff_positive) {
+ buffer1[0] = 1;
+ LONGS_EQUAL(1, memcmp(buffer1, buffer2, sizeof(buffer1)));
+}
+
+TEST(memcmp, first_diff_negative) {
+ buffer2[0] = 1;
+ LONGS_EQUAL(-1, memcmp(buffer1, buffer2, sizeof(buffer1)));
+}
+
+TEST(memcmp, second_diff_positive) {
+ buffer1[1] = 1;
+ LONGS_EQUAL(1, memcmp(buffer1, buffer2, sizeof(buffer1)));
+}
+
+TEST(memcmp, second_diff_negative) {
+ buffer2[1] = 1;
+ LONGS_EQUAL(-1, memcmp(buffer1, buffer2, sizeof(buffer1)));
+}
+
+TEST(memcmp, last_diff_positive) {
+ buffer1[sizeof(buffer1) - 1] = 1;
+ LONGS_EQUAL(1, memcmp(buffer1, buffer2, sizeof(buffer1)));
+}
+
+TEST(memcmp, last_diff_negative) {
+ buffer2[sizeof(buffer2) - 1] = 1;
+ LONGS_EQUAL(-1, memcmp(buffer1, buffer2, sizeof(buffer1)));
}