59 const std::vector<const char*>& names,
const Strings& values) {
64 const auto build_one = [&](
const size_t i) {
65 return std::string(names[
i]) +
": " + values[
i];
67 std::string result =
"(" + build_one(0);
68 for (
size_t i = 1;
i < values.size();
i++) {
70 result += build_one(
i);
82 char prev_char =
'\0';
83 for (
const char*
p = id_name; *
p !=
'\0'; prev_char = *(
p++)) {
86 const bool starts_new_word =
IsUpper(*
p) ||
91 if (starts_new_word && !result.empty()) result +=
' ';
104 const std::string& message)
override {
106 : TestPartResult::kNonFatalFailure,
107 file, line, message.c_str()) =
Message();
124 return failure_reporter;
154 int stack_frames_to_skip) {
162 std::cout <<
"\nGMOCK WARNING:";
165 if (message.empty() || message[0] !=
'\n') {
168 std::cout << message;
169 if (stack_frames_to_skip >= 0) {
172 const int actual_to_skip = 0;
176 const int actual_to_skip = stack_frames_to_skip + 1;
180 if (!message.empty() && *message.rbegin() !=
'\n') {
183 std::cout <<
"Stack trace:\n"
187 std::cout << ::std::flush;
195 "You are using DoDefault() inside a composite action like "
196 "DoAll() or WithArgs(). This is not supported for technical "
197 "reasons. Please instead spell out the default action, or "
198 "assign the default action to an Action variable and use "
199 "the variable in various places.");
203 return c ==
'-' ?
'+' : c ==
'_' ?
'/' : c;
206constexpr char UnBase64Impl(
char c,
const char*
const base64,
char carry) {
207 return *base64 == 0 ?
static_cast<char>(65)
210 :
UnBase64Impl(c, base64 + 1,
static_cast<char>(carry + 1));
213template <
size_t... I>
215 const char*
const base64) {
220constexpr std::array<char, 256>
UnBase64(
const char*
const base64) {
225 "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
230 size_t encoded_len = encoded.size();
231 decoded->reserve(3 * (encoded_len / 4) + (encoded_len % 4));
234 for (
int src : encoded) {
235 if (std::isspace(src) || src ==
'=') {
238 char src_bin =
kUnBase64[
static_cast<size_t>(src)];
244 dst |=
static_cast<char>(src_bin << 2);
247 dst |=
static_cast<char>(src_bin >> (bit_pos - 2));
248 decoded->push_back(dst);
249 dst =
static_cast<char>(src_bin << (10 - bit_pos));
250 bit_pos = (bit_pos + 6) % 8;
Definition gtest-message.h:101
Definition gmock-internal-utils.h:222
FailureType
Definition gmock-internal-utils.h:225
@ kFatal
Definition gmock-internal-utils.h:225
Definition gtest-port.h:1887
Definition gmock-internal-utils.cc:101
void ReportFailure(FailureType type, const char *file, int line, const std::string &message) override
Definition gmock-internal-utils.cc:103
Definition gmock-internal-utils.h:298
int i
Definition gmock-matchers-comparisons_test.cc:603
const char * p
Definition gmock-matchers-containers_test.cc:379
#define GMOCK_FLAG_GET(name)
Definition gmock-port.h:134
#define GTEST_DEFINE_STATIC_MUTEX_(mutex)
Definition gtest-port.h:1880
#define GTEST_API_
Definition gtest-port.h:842
#define GTEST_CHECK_(condition)
Definition gtest-port.h:1078
void Abort()
Definition gtest-port.h:2147
GTEST_API_ std::string ConvertIdentifierNameToWords(const char *id_name)
Definition gmock-internal-utils.cc:80
::std::vector<::std::string > Strings
Definition gtest-printers.h:1115
LogSeverity
Definition gmock-internal-utils.h:267
@ kWarning
Definition gmock-internal-utils.h:267
typename MakeIndexSequenceImpl< N >::type MakeIndexSequence
Definition gtest-internal.h:1175
const char kErrorVerbosity[]
Definition gmock-internal-utils.h:276
GTEST_API_ std::string GetCurrentOsStackTraceExceptTop(int skip_count)
Definition gtest.cc:6298
bool IsDigit(char ch)
Definition gtest-port.h:1935
GTEST_API_ bool LogIsVisible(LogSeverity severity)
Definition gmock-internal-utils.cc:132
static constexpr char kBase64[]
Definition gmock-internal-utils.cc:224
static constexpr std::array< char, 256 > kUnBase64
Definition gmock-internal-utils.cc:226
bool Base64Unescape(const std::string &encoded, std::string *decoded)
Definition gmock-internal-utils.cc:228
bool IsAlNum(char ch)
Definition gtest-port.h:1932
bool IsUpper(char ch)
Definition gtest-port.h:1944
GTEST_API_ void Log(LogSeverity severity, const std::string &message, int stack_frames_to_skip)
Definition gmock-internal-utils.cc:153
GTEST_API_ FailureReporterInterface * GetFailureReporter()
Definition gmock-internal-utils.cc:116
const char kInfoVerbosity[]
Definition gmock-internal-utils.h:272
void Assert(bool condition, const char *file, int line, const std::string &msg)
Definition gmock-internal-utils.h:242
GTEST_API_ void IllegalDoDefault(const char *file, int line)
Definition gmock-internal-utils.cc:192
constexpr std::array< char, 256 > UnBase64(const char *const base64)
Definition gmock-internal-utils.cc:220
bool IsLower(char ch)
Definition gtest-port.h:1938
GTEST_API_ std::string JoinAsKeyValueTuple(const std::vector< const char * > &names, const Strings &values)
Definition gmock-internal-utils.cc:58
constexpr char UndoWebSafeEncoding(char c)
Definition gmock-internal-utils.cc:202
GTEST_API_ WithoutMatchers GetWithoutMatchers()
Definition gmock-internal-utils.cc:190
char ToLower(char ch)
Definition gtest-port.h:1968
constexpr char UnBase64Impl(char c, const char *const base64, char carry)
Definition gmock-internal-utils.cc:206
bool IsAlpha(char ch)
Definition gtest-port.h:1929
Definition gmock-actions.h:151
Definition gtest-internal.h:1148