Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/llvm/llvm-project.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'libc/test/src/string/strerror_r_test.cpp')
-rw-r--r--libc/test/src/string/strerror_r_test.cpp28
1 files changed, 28 insertions, 0 deletions
diff --git a/libc/test/src/string/strerror_r_test.cpp b/libc/test/src/string/strerror_r_test.cpp
new file mode 100644
index 000000000000..ed1fb58824fe
--- /dev/null
+++ b/libc/test/src/string/strerror_r_test.cpp
@@ -0,0 +1,28 @@
+//===-- Unittests for strerror --------------------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#include "src/string/strerror_r.h"
+#include "utils/UnitTest/Test.h"
+
+#include <stddef.h>
+
+// This tests the gnu variant of strerror_r (which returns a char*).
+TEST(LlvmLibcStrErrorRTest, GnuVariantTests) {
+ const size_t BUFF_SIZE = 128;
+ char buffer[BUFF_SIZE];
+ buffer[0] = '\0';
+ // If strerror_r returns a constant string, then it shouldn't affect the
+ // buffer.
+ ASSERT_STREQ(__llvm_libc::strerror_r(0, buffer, BUFF_SIZE), "Success");
+ ASSERT_EQ(buffer[0], '\0');
+
+ // Else it should write the result to the provided buffer.
+ ASSERT_STREQ(__llvm_libc::strerror_r(-1, buffer, BUFF_SIZE),
+ "Unknown error -1");
+ ASSERT_STREQ(buffer, "Unknown error -1");
+}