354 changes: 144 additions & 210 deletions libc/test/src/__support/integer_to_string_test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,235 +17,169 @@ using __llvm_libc::integer_to_string;
using __llvm_libc::cpp::StringView;

TEST(LlvmLibcIntegerToStringTest, UINT8) {
EXPECT_TRUE(integer_to_string(uint8_t(0)).str().equals(StringView("0")));
EXPECT_TRUE(integer_to_string(uint8_t(1)).str().equals(StringView("1")));
EXPECT_TRUE(integer_to_string(uint8_t(12)).str().equals(StringView("12")));
EXPECT_TRUE(integer_to_string(uint8_t(123)).str().equals(StringView("123")));
EXPECT_TRUE(
integer_to_string(uint8_t(UINT8_MAX)).str().equals(StringView("255")));
EXPECT_TRUE(integer_to_string(uint8_t(-1)).str().equals(StringView("255")));
EXPECT_EQ(integer_to_string(uint8_t(0)).str(), (StringView("0")));
EXPECT_EQ(integer_to_string(uint8_t(1)).str(), (StringView("1")));
EXPECT_EQ(integer_to_string(uint8_t(12)).str(), (StringView("12")));
EXPECT_EQ(integer_to_string(uint8_t(123)).str(), (StringView("123")));
EXPECT_EQ(integer_to_string(uint8_t(UINT8_MAX)).str(), (StringView("255")));
EXPECT_EQ(integer_to_string(uint8_t(-1)).str(), (StringView("255")));
}

TEST(LlvmLibcIntegerToStringTest, INT8) {
EXPECT_TRUE(integer_to_string(int8_t(0)).str().equals(StringView("0")));
EXPECT_TRUE(integer_to_string(int8_t(1)).str().equals(StringView("1")));
EXPECT_TRUE(integer_to_string(int8_t(12)).str().equals(StringView("12")));
EXPECT_TRUE(integer_to_string(int8_t(123)).str().equals(StringView("123")));
EXPECT_TRUE(integer_to_string(int8_t(-12)).str().equals(StringView("-12")));
EXPECT_TRUE(integer_to_string(int8_t(-123)).str().equals(StringView("-123")));
EXPECT_TRUE(
integer_to_string(int8_t(INT8_MAX)).str().equals(StringView("127")));
EXPECT_TRUE(
integer_to_string(int8_t(INT8_MIN)).str().equals(StringView("-128")));
EXPECT_EQ(integer_to_string(int8_t(0)).str(), (StringView("0")));
EXPECT_EQ(integer_to_string(int8_t(1)).str(), (StringView("1")));
EXPECT_EQ(integer_to_string(int8_t(12)).str(), (StringView("12")));
EXPECT_EQ(integer_to_string(int8_t(123)).str(), (StringView("123")));
EXPECT_EQ(integer_to_string(int8_t(-12)).str(), (StringView("-12")));
EXPECT_EQ(integer_to_string(int8_t(-123)).str(), (StringView("-123")));
EXPECT_EQ(integer_to_string(int8_t(INT8_MAX)).str(), (StringView("127")));
EXPECT_EQ(integer_to_string(int8_t(INT8_MIN)).str(), (StringView("-128")));
}

TEST(LlvmLibcIntegerToStringTest, UINT16) {
EXPECT_TRUE(integer_to_string(uint16_t(0)).str().equals(StringView("0")));
EXPECT_TRUE(integer_to_string(uint16_t(1)).str().equals(StringView("1")));
EXPECT_TRUE(integer_to_string(uint16_t(12)).str().equals(StringView("12")));
EXPECT_TRUE(integer_to_string(uint16_t(123)).str().equals(StringView("123")));
EXPECT_TRUE(
integer_to_string(uint16_t(1234)).str().equals(StringView("1234")));
EXPECT_TRUE(
integer_to_string(uint16_t(12345)).str().equals(StringView("12345")));
EXPECT_TRUE(integer_to_string(uint16_t(UINT16_MAX))
.str()
.equals(StringView("65535")));
EXPECT_TRUE(
integer_to_string(uint16_t(-1)).str().equals(StringView("65535")));
EXPECT_EQ(integer_to_string(uint16_t(0)).str(), (StringView("0")));
EXPECT_EQ(integer_to_string(uint16_t(1)).str(), (StringView("1")));
EXPECT_EQ(integer_to_string(uint16_t(12)).str(), (StringView("12")));
EXPECT_EQ(integer_to_string(uint16_t(123)).str(), (StringView("123")));
EXPECT_EQ(integer_to_string(uint16_t(1234)).str(), (StringView("1234")));
EXPECT_EQ(integer_to_string(uint16_t(12345)).str(), (StringView("12345")));
EXPECT_EQ(integer_to_string(uint16_t(UINT16_MAX)).str(),
(StringView("65535")));
EXPECT_EQ(integer_to_string(uint16_t(-1)).str(), (StringView("65535")));
}

TEST(LlvmLibcIntegerToStringTest, INT16) {
EXPECT_TRUE(integer_to_string(int16_t(0)).str().equals(StringView("0")));
EXPECT_TRUE(integer_to_string(int16_t(1)).str().equals(StringView("1")));
EXPECT_TRUE(integer_to_string(int16_t(12)).str().equals(StringView("12")));
EXPECT_TRUE(integer_to_string(int16_t(123)).str().equals(StringView("123")));
EXPECT_TRUE(
integer_to_string(int16_t(1234)).str().equals(StringView("1234")));
EXPECT_TRUE(
integer_to_string(int16_t(12345)).str().equals(StringView("12345")));
EXPECT_TRUE(integer_to_string(int16_t(-1)).str().equals(StringView("-1")));
EXPECT_TRUE(integer_to_string(int16_t(-12)).str().equals(StringView("-12")));
EXPECT_TRUE(
integer_to_string(int16_t(-123)).str().equals(StringView("-123")));
EXPECT_TRUE(
integer_to_string(int16_t(-1234)).str().equals(StringView("-1234")));
EXPECT_TRUE(
integer_to_string(int16_t(-12345)).str().equals(StringView("-12345")));
EXPECT_TRUE(
integer_to_string(int16_t(INT16_MAX)).str().equals(StringView("32767")));
EXPECT_TRUE(
integer_to_string(int16_t(INT16_MIN)).str().equals(StringView("-32768")));
EXPECT_EQ(integer_to_string(int16_t(0)).str(), (StringView("0")));
EXPECT_EQ(integer_to_string(int16_t(1)).str(), (StringView("1")));
EXPECT_EQ(integer_to_string(int16_t(12)).str(), (StringView("12")));
EXPECT_EQ(integer_to_string(int16_t(123)).str(), (StringView("123")));
EXPECT_EQ(integer_to_string(int16_t(1234)).str(), (StringView("1234")));
EXPECT_EQ(integer_to_string(int16_t(12345)).str(), (StringView("12345")));
EXPECT_EQ(integer_to_string(int16_t(-1)).str(), (StringView("-1")));
EXPECT_EQ(integer_to_string(int16_t(-12)).str(), (StringView("-12")));
EXPECT_EQ(integer_to_string(int16_t(-123)).str(), (StringView("-123")));
EXPECT_EQ(integer_to_string(int16_t(-1234)).str(), (StringView("-1234")));
EXPECT_EQ(integer_to_string(int16_t(-12345)).str(), (StringView("-12345")));
EXPECT_EQ(integer_to_string(int16_t(INT16_MAX)).str(), (StringView("32767")));
EXPECT_EQ(integer_to_string(int16_t(INT16_MIN)).str(),
(StringView("-32768")));
}

TEST(LlvmLibcIntegerToStringTest, UINT32) {
EXPECT_TRUE(integer_to_string(uint32_t(0)).str().equals(StringView("0")));
EXPECT_TRUE(integer_to_string(uint32_t(1)).str().equals(StringView("1")));
EXPECT_TRUE(integer_to_string(uint32_t(12)).str().equals(StringView("12")));
EXPECT_TRUE(integer_to_string(uint32_t(123)).str().equals(StringView("123")));
EXPECT_TRUE(
integer_to_string(uint32_t(1234)).str().equals(StringView("1234")));
EXPECT_TRUE(
integer_to_string(uint32_t(12345)).str().equals(StringView("12345")));
EXPECT_TRUE(
integer_to_string(uint32_t(123456)).str().equals(StringView("123456")));
EXPECT_TRUE(
integer_to_string(uint32_t(1234567)).str().equals(StringView("1234567")));
EXPECT_TRUE(integer_to_string(uint32_t(12345678))
.str()
.equals(StringView("12345678")));
EXPECT_TRUE(integer_to_string(uint32_t(123456789))
.str()
.equals(StringView("123456789")));
EXPECT_TRUE(integer_to_string(uint32_t(1234567890))
.str()
.equals(StringView("1234567890")));
EXPECT_TRUE(integer_to_string(uint32_t(UINT32_MAX))
.str()
.equals(StringView("4294967295")));
EXPECT_TRUE(
integer_to_string(uint32_t(-1)).str().equals(StringView("4294967295")));
EXPECT_EQ(integer_to_string(uint32_t(0)).str(), (StringView("0")));
EXPECT_EQ(integer_to_string(uint32_t(1)).str(), (StringView("1")));
EXPECT_EQ(integer_to_string(uint32_t(12)).str(), (StringView("12")));
EXPECT_EQ(integer_to_string(uint32_t(123)).str(), (StringView("123")));
EXPECT_EQ(integer_to_string(uint32_t(1234)).str(), (StringView("1234")));
EXPECT_EQ(integer_to_string(uint32_t(12345)).str(), (StringView("12345")));
EXPECT_EQ(integer_to_string(uint32_t(123456)).str(), (StringView("123456")));
EXPECT_EQ(integer_to_string(uint32_t(1234567)).str(),
(StringView("1234567")));
EXPECT_EQ(integer_to_string(uint32_t(12345678)).str(),
(StringView("12345678")));
EXPECT_EQ(integer_to_string(uint32_t(123456789)).str(),
(StringView("123456789")));
EXPECT_EQ(integer_to_string(uint32_t(1234567890)).str(),
(StringView("1234567890")));
EXPECT_EQ(integer_to_string(uint32_t(UINT32_MAX)).str(),
(StringView("4294967295")));
EXPECT_EQ(integer_to_string(uint32_t(-1)).str(), (StringView("4294967295")));
}

TEST(LlvmLibcIntegerToStringTest, INT32) {
EXPECT_TRUE(integer_to_string(int32_t(0)).str().equals(StringView("0")));
EXPECT_TRUE(integer_to_string(int32_t(1)).str().equals(StringView("1")));
EXPECT_TRUE(integer_to_string(int32_t(12)).str().equals(StringView("12")));
EXPECT_TRUE(integer_to_string(int32_t(123)).str().equals(StringView("123")));
EXPECT_TRUE(
integer_to_string(int32_t(1234)).str().equals(StringView("1234")));
EXPECT_TRUE(
integer_to_string(int32_t(12345)).str().equals(StringView("12345")));
EXPECT_TRUE(
integer_to_string(int32_t(123456)).str().equals(StringView("123456")));
EXPECT_TRUE(
integer_to_string(int32_t(1234567)).str().equals(StringView("1234567")));
EXPECT_TRUE(integer_to_string(int32_t(12345678))
.str()
.equals(StringView("12345678")));
EXPECT_TRUE(integer_to_string(int32_t(123456789))
.str()
.equals(StringView("123456789")));
EXPECT_TRUE(integer_to_string(int32_t(1234567890))
.str()
.equals(StringView("1234567890")));
EXPECT_TRUE(integer_to_string(int32_t(-1)).str().equals(StringView("-1")));
EXPECT_TRUE(integer_to_string(int32_t(-12)).str().equals(StringView("-12")));
EXPECT_TRUE(
integer_to_string(int32_t(-123)).str().equals(StringView("-123")));
EXPECT_TRUE(
integer_to_string(int32_t(-1234)).str().equals(StringView("-1234")));
EXPECT_TRUE(
integer_to_string(int32_t(-12345)).str().equals(StringView("-12345")));
EXPECT_TRUE(
integer_to_string(int32_t(-123456)).str().equals(StringView("-123456")));
EXPECT_TRUE(integer_to_string(int32_t(-1234567))
.str()
.equals(StringView("-1234567")));
EXPECT_TRUE(integer_to_string(int32_t(-12345678))
.str()
.equals(StringView("-12345678")));
EXPECT_TRUE(integer_to_string(int32_t(-123456789))
.str()
.equals(StringView("-123456789")));
EXPECT_TRUE(integer_to_string(int32_t(-1234567890))
.str()
.equals(StringView("-1234567890")));
EXPECT_TRUE(integer_to_string(int32_t(INT32_MAX))
.str()
.equals(StringView("2147483647")));
EXPECT_TRUE(integer_to_string(int32_t(INT32_MIN))
.str()
.equals(StringView("-2147483648")));
EXPECT_EQ(integer_to_string(int32_t(0)).str(), (StringView("0")));
EXPECT_EQ(integer_to_string(int32_t(1)).str(), (StringView("1")));
EXPECT_EQ(integer_to_string(int32_t(12)).str(), (StringView("12")));
EXPECT_EQ(integer_to_string(int32_t(123)).str(), (StringView("123")));
EXPECT_EQ(integer_to_string(int32_t(1234)).str(), (StringView("1234")));
EXPECT_EQ(integer_to_string(int32_t(12345)).str(), (StringView("12345")));
EXPECT_EQ(integer_to_string(int32_t(123456)).str(), (StringView("123456")));
EXPECT_EQ(integer_to_string(int32_t(1234567)).str(), (StringView("1234567")));
EXPECT_EQ(integer_to_string(int32_t(12345678)).str(),
(StringView("12345678")));
EXPECT_EQ(integer_to_string(int32_t(123456789)).str(),
(StringView("123456789")));
EXPECT_EQ(integer_to_string(int32_t(1234567890)).str(),
(StringView("1234567890")));
EXPECT_EQ(integer_to_string(int32_t(-1)).str(), (StringView("-1")));
EXPECT_EQ(integer_to_string(int32_t(-12)).str(), (StringView("-12")));
EXPECT_EQ(integer_to_string(int32_t(-123)).str(), (StringView("-123")));
EXPECT_EQ(integer_to_string(int32_t(-1234)).str(), (StringView("-1234")));
EXPECT_EQ(integer_to_string(int32_t(-12345)).str(), (StringView("-12345")));
EXPECT_EQ(integer_to_string(int32_t(-123456)).str(), (StringView("-123456")));
EXPECT_EQ(integer_to_string(int32_t(-1234567)).str(),
(StringView("-1234567")));
EXPECT_EQ(integer_to_string(int32_t(-12345678)).str(),
(StringView("-12345678")));
EXPECT_EQ(integer_to_string(int32_t(-123456789)).str(),
(StringView("-123456789")));
EXPECT_EQ(integer_to_string(int32_t(-1234567890)).str(),
(StringView("-1234567890")));
EXPECT_EQ(integer_to_string(int32_t(INT32_MAX)).str(),
(StringView("2147483647")));
EXPECT_EQ(integer_to_string(int32_t(INT32_MIN)).str(),
(StringView("-2147483648")));
}

TEST(LlvmLibcIntegerToStringTest, UINT64) {
EXPECT_TRUE(integer_to_string(uint64_t(0)).str().equals(StringView("0")));
EXPECT_TRUE(integer_to_string(uint64_t(1)).str().equals(StringView("1")));
EXPECT_TRUE(integer_to_string(uint64_t(12)).str().equals(StringView("12")));
EXPECT_TRUE(integer_to_string(uint64_t(123)).str().equals(StringView("123")));
EXPECT_TRUE(
integer_to_string(uint64_t(1234)).str().equals(StringView("1234")));
EXPECT_TRUE(
integer_to_string(uint64_t(12345)).str().equals(StringView("12345")));
EXPECT_TRUE(
integer_to_string(uint64_t(123456)).str().equals(StringView("123456")));
EXPECT_TRUE(
integer_to_string(uint64_t(1234567)).str().equals(StringView("1234567")));
EXPECT_TRUE(integer_to_string(uint64_t(12345678))
.str()
.equals(StringView("12345678")));
EXPECT_TRUE(integer_to_string(uint64_t(123456789))
.str()
.equals(StringView("123456789")));
EXPECT_TRUE(integer_to_string(uint64_t(1234567890))
.str()
.equals(StringView("1234567890")));
EXPECT_TRUE(integer_to_string(uint64_t(1234567890123456789))
.str()
.equals(StringView("1234567890123456789")));
EXPECT_TRUE(integer_to_string(uint64_t(UINT64_MAX))
.str()
.equals(StringView("18446744073709551615")));
EXPECT_TRUE(integer_to_string(uint64_t(-1))
.str()
.equals(StringView("18446744073709551615")));
EXPECT_EQ(integer_to_string(uint64_t(0)).str(), (StringView("0")));
EXPECT_EQ(integer_to_string(uint64_t(1)).str(), (StringView("1")));
EXPECT_EQ(integer_to_string(uint64_t(12)).str(), (StringView("12")));
EXPECT_EQ(integer_to_string(uint64_t(123)).str(), (StringView("123")));
EXPECT_EQ(integer_to_string(uint64_t(1234)).str(), (StringView("1234")));
EXPECT_EQ(integer_to_string(uint64_t(12345)).str(), (StringView("12345")));
EXPECT_EQ(integer_to_string(uint64_t(123456)).str(), (StringView("123456")));
EXPECT_EQ(integer_to_string(uint64_t(1234567)).str(),
(StringView("1234567")));
EXPECT_EQ(integer_to_string(uint64_t(12345678)).str(),
(StringView("12345678")));
EXPECT_EQ(integer_to_string(uint64_t(123456789)).str(),
(StringView("123456789")));
EXPECT_EQ(integer_to_string(uint64_t(1234567890)).str(),
(StringView("1234567890")));
EXPECT_EQ(integer_to_string(uint64_t(1234567890123456789)).str(),
(StringView("1234567890123456789")));
EXPECT_EQ(integer_to_string(uint64_t(UINT64_MAX)).str(),
(StringView("18446744073709551615")));
EXPECT_EQ(integer_to_string(uint64_t(-1)).str(),
(StringView("18446744073709551615")));
}

TEST(LlvmLibcIntegerToStringTest, INT64) {
EXPECT_TRUE(integer_to_string(int64_t(0)).str().equals(StringView("0")));
EXPECT_TRUE(integer_to_string(int64_t(1)).str().equals(StringView("1")));
EXPECT_TRUE(integer_to_string(int64_t(12)).str().equals(StringView("12")));
EXPECT_TRUE(integer_to_string(int64_t(123)).str().equals(StringView("123")));
EXPECT_TRUE(
integer_to_string(int64_t(1234)).str().equals(StringView("1234")));
EXPECT_TRUE(
integer_to_string(int64_t(12345)).str().equals(StringView("12345")));
EXPECT_TRUE(
integer_to_string(int64_t(123456)).str().equals(StringView("123456")));
EXPECT_TRUE(
integer_to_string(int64_t(1234567)).str().equals(StringView("1234567")));
EXPECT_TRUE(integer_to_string(int64_t(12345678))
.str()
.equals(StringView("12345678")));
EXPECT_TRUE(integer_to_string(int64_t(123456789))
.str()
.equals(StringView("123456789")));
EXPECT_TRUE(integer_to_string(int64_t(1234567890))
.str()
.equals(StringView("1234567890")));
EXPECT_TRUE(integer_to_string(int64_t(1234567890123456789))
.str()
.equals(StringView("1234567890123456789")));
EXPECT_TRUE(integer_to_string(int64_t(-1)).str().equals(StringView("-1")));
EXPECT_TRUE(integer_to_string(int64_t(-12)).str().equals(StringView("-12")));
EXPECT_TRUE(
integer_to_string(int64_t(-123)).str().equals(StringView("-123")));
EXPECT_TRUE(
integer_to_string(int64_t(-1234)).str().equals(StringView("-1234")));
EXPECT_TRUE(
integer_to_string(int64_t(-12345)).str().equals(StringView("-12345")));
EXPECT_TRUE(
integer_to_string(int64_t(-123456)).str().equals(StringView("-123456")));
EXPECT_TRUE(integer_to_string(int64_t(-1234567))
.str()
.equals(StringView("-1234567")));
EXPECT_TRUE(integer_to_string(int64_t(-12345678))
.str()
.equals(StringView("-12345678")));
EXPECT_TRUE(integer_to_string(int64_t(-123456789))
.str()
.equals(StringView("-123456789")));
EXPECT_TRUE(integer_to_string(int64_t(-1234567890))
.str()
.equals(StringView("-1234567890")));
EXPECT_TRUE(integer_to_string(int64_t(-1234567890123456789))
.str()
.equals(StringView("-1234567890123456789")));
EXPECT_TRUE(integer_to_string(int64_t(INT64_MAX))
.str()
.equals(StringView("9223372036854775807")));
EXPECT_TRUE(integer_to_string(int64_t(INT64_MIN))
.str()
.equals(StringView("-9223372036854775808")));
EXPECT_EQ(integer_to_string(int64_t(0)).str(), (StringView("0")));
EXPECT_EQ(integer_to_string(int64_t(1)).str(), (StringView("1")));
EXPECT_EQ(integer_to_string(int64_t(12)).str(), (StringView("12")));
EXPECT_EQ(integer_to_string(int64_t(123)).str(), (StringView("123")));
EXPECT_EQ(integer_to_string(int64_t(1234)).str(), (StringView("1234")));
EXPECT_EQ(integer_to_string(int64_t(12345)).str(), (StringView("12345")));
EXPECT_EQ(integer_to_string(int64_t(123456)).str(), (StringView("123456")));
EXPECT_EQ(integer_to_string(int64_t(1234567)).str(), (StringView("1234567")));
EXPECT_EQ(integer_to_string(int64_t(12345678)).str(),
(StringView("12345678")));
EXPECT_EQ(integer_to_string(int64_t(123456789)).str(),
(StringView("123456789")));
EXPECT_EQ(integer_to_string(int64_t(1234567890)).str(),
(StringView("1234567890")));
EXPECT_EQ(integer_to_string(int64_t(1234567890123456789)).str(),
(StringView("1234567890123456789")));
EXPECT_EQ(integer_to_string(int64_t(-1)).str(), (StringView("-1")));
EXPECT_EQ(integer_to_string(int64_t(-12)).str(), (StringView("-12")));
EXPECT_EQ(integer_to_string(int64_t(-123)).str(), (StringView("-123")));
EXPECT_EQ(integer_to_string(int64_t(-1234)).str(), (StringView("-1234")));
EXPECT_EQ(integer_to_string(int64_t(-12345)).str(), (StringView("-12345")));
EXPECT_EQ(integer_to_string(int64_t(-123456)).str(), (StringView("-123456")));
EXPECT_EQ(integer_to_string(int64_t(-1234567)).str(),
(StringView("-1234567")));
EXPECT_EQ(integer_to_string(int64_t(-12345678)).str(),
(StringView("-12345678")));
EXPECT_EQ(integer_to_string(int64_t(-123456789)).str(),
(StringView("-123456789")));
EXPECT_EQ(integer_to_string(int64_t(-1234567890)).str(),
(StringView("-1234567890")));
EXPECT_EQ(integer_to_string(int64_t(-1234567890123456789)).str(),
(StringView("-1234567890123456789")));
EXPECT_EQ(integer_to_string(int64_t(INT64_MAX)).str(),
(StringView("9223372036854775807")));
EXPECT_EQ(integer_to_string(int64_t(INT64_MIN)).str(),
(StringView("-9223372036854775808")));
}
10 changes: 10 additions & 0 deletions libc/utils/UnitTest/LibcTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
#include "LibcTest.h"

#include "src/__support/CPP/UInt128.h"
#include "src/__support/CPP/StringView.h"
#include "utils/testutils/ExecuteFunction.h"
#include <cassert>
#include <iostream>
Expand Down Expand Up @@ -42,6 +43,9 @@ describeValue(ValType Value) {
}

std::string describeValue(std::string Value) { return std::string(Value); }
std::string describeValue(cpp::StringView Value) {
return std::string(Value.data(), Value.size());
}

// When the value is UInt128 or __uint128_t, show its hexadecimal digits.
// We cannot just use a UInt128 specialization as that resolves to only
Expand Down Expand Up @@ -278,6 +282,12 @@ template bool test<__llvm_libc::cpp::UInt<128>>(
__llvm_libc::cpp::UInt<128> RHS, const char *LHSStr, const char *RHSStr,
const char *File, unsigned long Line);

template bool test<__llvm_libc::cpp::StringView>(RunContext *Ctx, TestCondition Cond,
__llvm_libc::cpp::StringView LHS,
__llvm_libc::cpp::StringView RHS,
const char *LHSStr, const char *RHSStr,
const char *File, unsigned long Line);

} // namespace internal

bool Test::testStrEq(const char *LHS, const char *RHS, const char *LHSStr,
Expand Down
9 changes: 9 additions & 0 deletions libc/utils/UnitTest/LibcTest.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@

#include "PlatformDefs.h"

#include "src/__support/CPP/StringView.h"
#include "src/__support/CPP/type_traits.h"
#include "utils/testutils/ExecuteFunction.h"
#include "utils/testutils/StreamWrapper.h"
Expand Down Expand Up @@ -105,6 +106,14 @@ class Test {
(unsigned long long)RHS, LHSStr, RHSStr, File, Line);
}

template <typename ValType,
cpp::enable_if_t<
cpp::is_same_v<ValType, __llvm_libc::cpp::StringView>, int> = 0>
bool test(TestCondition Cond, ValType LHS, ValType RHS, const char *LHSStr,
const char *RHSStr, const char *File, unsigned long Line) {
return internal::test(Ctx, Cond, LHS, RHS, LHSStr, RHSStr, File, Line);
}

bool testStrEq(const char *LHS, const char *RHS, const char *LHSStr,
const char *RHSStr, const char *File, unsigned long Line);

Expand Down