blob: c598effd5fa0ae90516950db2bb6c9a6c435ce0f [file] [log] [blame]
#include "google/protobuf/unredacted_debug_format_for_test.h"
#include <string>
#include "google/protobuf/message.h"
#include "google/protobuf/message_lite.h"
#include "google/protobuf/text_format.h"
namespace google {
namespace protobuf {
namespace util {
std::string UnredactedDebugFormatForTest(const google::protobuf::Message& message) {
std::string debug_string;
google::protobuf::TextFormat::Printer printer;
printer.SetExpandAny(true);
printer.SetReportSensitiveFields(
internal::FieldReporterLevel::kUnredactedDebugFormatForTest);
printer.PrintToString(message, &debug_string);
return debug_string;
}
std::string UnredactedShortDebugFormatForTest(const google::protobuf::Message& message) {
std::string debug_string;
google::protobuf::TextFormat::Printer printer;
printer.SetSingleLineMode(true);
printer.SetExpandAny(true);
printer.SetReportSensitiveFields(
internal::FieldReporterLevel::kUnredactedShortDebugFormatForTest);
printer.PrintToString(message, &debug_string);
// Single line mode currently might have an extra space at the end.
if (!debug_string.empty() && debug_string[debug_string.size() - 1] == ' ') {
debug_string.resize(debug_string.size() - 1);
}
return debug_string;
}
std::string UnredactedUtf8DebugFormatForTest(const google::protobuf::Message& message) {
std::string debug_string;
google::protobuf::TextFormat::Printer printer;
printer.SetUseUtf8StringEscaping(true);
printer.SetExpandAny(true);
printer.SetReportSensitiveFields(
internal::FieldReporterLevel::kUnredactedUtf8DebugFormatForTest);
printer.PrintToString(message, &debug_string);
return debug_string;
}
std::string UnredactedDebugFormatForTest(const google::protobuf::MessageLite& message) {
return message.DebugString();
}
std::string UnredactedShortDebugFormatForTest(
const google::protobuf::MessageLite& message) {
return message.ShortDebugString();
}
std::string UnredactedUtf8DebugFormatForTest(
const google::protobuf::MessageLite& message) {
return message.Utf8DebugString();
}
} // namespace util
} // namespace protobuf
} // namespace google