blob: e2ba440d8c60cc73c2c932b3135be5151050ad68 [file] [log] [blame]
// Protocol Buffers - Google's data interchange format
// Copyright 2023 Google LLC. All rights reserved.
//
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file or at
// https://developers.google.com/open-source/licenses/bsd
#include <string>
#include "google/protobuf/descriptor.pb.h"
#include <gtest/gtest.h>
#include "testing/fuzzing/fuzztest.h"
#include "upb/util/def_to_proto_test.h"
namespace upb_test {
FUZZ_TEST(FuzzTest, RoundTripDescriptor)
.WithDomains(
::fuzztest::Arbitrary<google::protobuf::FileDescriptorSet>().WithProtobufField(
"file",
::fuzztest::Arbitrary<google::protobuf::FileDescriptorProto>()
// upb_FileDef_ToProto() does not attempt to preserve
// source_code_info.
.WithFieldUnset("source_code_info")
.WithProtobufField(
"service",
::fuzztest::Arbitrary<google::protobuf::ServiceDescriptorProto>()
// streams are google3-only, and we do not currently
// attempt to preserve them.
.WithFieldUnset("stream"))));
} // namespace upb_test