|  | #ifndef GOOGLE_PROTOBUF_CONFORMANCE_NAMING_H__ | 
|  | #define GOOGLE_PROTOBUF_CONFORMANCE_NAMING_H__ | 
|  |  | 
|  | #include <string> | 
|  |  | 
|  | #include "google/protobuf/descriptor.pb.h" | 
|  | #include "absl/log/absl_log.h" | 
|  | #include "absl/strings/str_cat.h" | 
|  | #include "absl/strings/string_view.h" | 
|  | #include "conformance/conformance.pb.h" | 
|  | #include "google/protobuf/descriptor.h" | 
|  | #include "google/protobuf/descriptor_legacy.h" | 
|  |  | 
|  | // This file contains functions for generating test names and other identifiers | 
|  | // for conformance tests. | 
|  |  | 
|  | namespace google { | 
|  | namespace protobuf { | 
|  | namespace conformance { | 
|  |  | 
|  | // Returns the edition identifier for the given message.  This is used to | 
|  | // generate test names from parameterized descriptors. | 
|  | inline std::string GetEditionIdentifier(const Descriptor& message) { | 
|  | switch (FileDescriptorLegacy(message.file()).edition()) { | 
|  | case Edition::EDITION_PROTO3: | 
|  | return "Proto3"; | 
|  | case Edition::EDITION_PROTO2: | 
|  | return "Proto2"; | 
|  | default: { | 
|  | std::string id = "Editions"; | 
|  | if (message.name() == "TestAllTypesProto2") { | 
|  | absl::StrAppend(&id, "_Proto2"); | 
|  | } else if (message.name() == "TestAllTypesProto3") { | 
|  | absl::StrAppend(&id, "_Proto3"); | 
|  | } | 
|  | return id; | 
|  | } | 
|  | } | 
|  | } | 
|  |  | 
|  | // Returns the format identifier for the given wire format.  This is used to | 
|  | // generate test names from parameterized wire formats. | 
|  | inline absl::string_view GetFormatIdentifier(::conformance::WireFormat format) { | 
|  | switch (format) { | 
|  | case ::conformance::PROTOBUF: | 
|  | return "Protobuf"; | 
|  | case ::conformance::JSON: | 
|  | return "Json"; | 
|  | case ::conformance::TEXT_FORMAT: | 
|  | return "TextFormat"; | 
|  | default: | 
|  | ABSL_LOG(FATAL) << "Unknown wire format"; | 
|  | } | 
|  | return ""; | 
|  | } | 
|  |  | 
|  | }  // namespace conformance | 
|  | }  // namespace protobuf | 
|  | }  // namespace google | 
|  |  | 
|  | #endif  // GOOGLE_PROTOBUF_CONFORMANCE_NAMING_H__ |