//===-- 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 "test/UnitTest/Test.h" #include // 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(LIBC_NAMESPACE::strerror_r(0, buffer, BUFF_SIZE), "Success"); ASSERT_EQ(buffer[0], '\0'); // Else it should write the result to the provided buffer. ASSERT_STREQ(LIBC_NAMESPACE::strerror_r(-1, buffer, BUFF_SIZE), "Unknown error -1"); ASSERT_STREQ(buffer, "Unknown error -1"); }