33 #include <google/protobuf/stubs/stringprintf.h>
34 #include <google/protobuf/testing/googletest.h>
35 #include <gtest/gtest.h>
56 TEST(StringPrintfTest, Misc) {
58 #if !defined(_MSC_VER) && !defined(__MINGW32__)
65 const char*
empty =
"";
70 TEST(StringAppendFTest, EmptyString) {
76 TEST(StringAppendFTest, String) {
88 TEST(StringPrintfTest, Multibyte) {
94 char* old_locale_c = setlocale(LC_CTYPE,
nullptr);
98 setlocale(LC_CTYPE,
"en_US.utf8");
100 const char kInvalidCodePoint[] =
"\375\067s";
111 const size_t n = 2048;
112 std::array<char, n + 1>
buf;
114 memcpy(&
buf[0] + n - 3, kInvalidCodePoint, 4);
119 setlocale(LC_CTYPE, old_locale.c_str());
122 TEST(StringPrintfTest, NoMultibyte) {
124 char* old_locale_c = setlocale(LC_CTYPE,
nullptr);
127 setlocale(LC_CTYPE,
"POSIX");
129 setlocale(LC_CTYPE, old_locale.c_str());
133 TEST(StringPrintfTest, DontOverwriteErrno) {
142 TEST(StringPrintfTest, LargeBuf) {
145 char*
buf =
new char[
n+1];