#include "src/string/strxfrm.h"
#include "test/UnitTest/Test.h"
#include "src/string/string_utils.h"
TEST(LlvmLibcStrxfrmTest, SimpleTestSufficientlySizedN) {
const char *src = "abc";
const size_t n = 5;
char dest[n];
size_t result = LIBC_NAMESPACE::strxfrm(dest, src, n);
ASSERT_EQ(result, LIBC_NAMESPACE::internal::string_length(src));
ASSERT_STREQ(dest, src);
}
TEST(LlvmLibcStrxfrmTest, SimpleTestExactSizedN) {
const char *src = "abc";
const size_t n = 4;
char dest[n];
size_t result = LIBC_NAMESPACE::strxfrm(dest, src, n);
ASSERT_EQ(result, LIBC_NAMESPACE::internal::string_length(src));
ASSERT_STREQ(dest, src);
}
TEST(LlvmLibcStrxfrmTest, SimpleTestInsufficientlySizedN) {
const char *src = "abc";
const size_t n = 3;
char dest[n] = {'x', 'x', '\0'};
size_t result = LIBC_NAMESPACE::strxfrm(dest, src, n);
ASSERT_GE(result, n);
ASSERT_STREQ(dest, "xx");
}