15 #include "absl/strings/internal/str_format/arg.h"
19 #include "gtest/gtest.h"
20 #include "absl/strings/str_format.h"
29 enum Color { kRed, kGreen, kBlue };
31 static const char *hi() {
return "hi"; }
43 TEST_F(FormatArgImplTest, ToInt) {
53 FormatArgImpl(
static_cast<unsigned long long>(123456)), &
out));
56 FormatArgImpl(
static_cast<unsigned long long>(
62 FormatArgImpl(
static_cast<long long>(
74 FormatArgImpl(
static_cast<int *
>(
nullptr)), &
out));
82 extern const char kMyArray[];
84 TEST_F(FormatArgImplTest, CharArraysDecayToCharPtr) {
96 TEST_F(FormatArgImplTest, OtherPtrDecayToVoidPtr) {
98 FormatArgImpl(
static_cast<void *
>(
nullptr)));
100 FormatArgImpl(
static_cast<int *
>(
nullptr))),
103 FormatArgImpl(
static_cast<volatile int *
>(
nullptr))),
106 auto p =
static_cast<void (*)()
>([] {});
111 TEST_F(FormatArgImplTest, WorksWithCharArraysOfUnknownSize) {
113 FormatSinkImpl
sink(&s);
114 FormatConversionSpecImpl
conv;
116 FormatConversionCharInternal::s, &
conv);
125 const char kMyArray[] =
"ABCDE";