A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/protocolbuffers/protobuf/commit/9901db60704ff248383da620d615bec06f19850e below:

Add support for import option for protoc. · protocolbuffers/protobuf@9901db6 · GitHub

@@ -675,7 +675,7 @@ TEST_F(CommandLineInterfaceTest, MultipleInputs_UnusedImport_DescriptorSetIn) {

675 675 676 676

file_descriptor_proto = file_descriptor_set.add_file();

677 677

file_descriptor_proto->set_name("import_custom_unknown_options.proto");

678 -

file_descriptor_proto->add_dependency("custom_options.proto");

678 +

file_descriptor_proto->add_option_dependency("custom_options.proto");

679 679

// Add custom message option to unknown field. This custom option is

680 680

// not known in generated pool, thus option will be in unknown fields.

681 681

file_descriptor_proto->add_message_type()->set_name("Bar");

@@ -747,6 +747,49 @@ TEST_F(CommandLineInterfaceTest, MultipleInputsWithImport) {

747 747

"bar.proto", "Bar");

748 748

}

749 749 750 +

TEST_F(CommandLineInterfaceTest, MultipleInputsWithOptionImport) {

751 +

// Test parsing multiple input files with an option import of a separate file.

752 +

CreateTempFile("google/protobuf/descriptor.proto",

753 +

google::protobuf::DescriptorProto::descriptor()->file()->DebugString());

754 +

CreateTempFile("foo.proto",

755 +

R"schema(

756 +

edition = "2024";

757 +

message Foo {}

758 +

)schema");

759 +

CreateTempFile("bar.proto",

760 +

R"schema(

761 +

edition = "2024";

762 +

import option "baz.proto";

763 +

message Bar {

764 +

Bar a = 1 [(field_options) = { baz: 1 }];

765 +

}

766 +

)schema");

767 +

CreateTempFile("baz.proto",

768 +

R"schema(

769 +

edition = "2024";

770 +

import "google/protobuf/descriptor.proto";

771 +

message Baz {

772 +

int64 baz = 1;

773 +

}

774 +

extend google.protobuf.FieldOptions {

775 +

Baz field_options = 5000;

776 +

}

777 +

)schema");

778 + 779 +

Run("protocol_compiler --test_out=$tmpdir --plug_out=$tmpdir "

780 +

"--proto_path=$tmpdir foo.proto bar.proto --experimental_editions");

781 + 782 +

ExpectNoErrors();

783 +

ExpectGeneratedWithMultipleInputs("test_generator", "foo.proto,bar.proto",

784 +

"foo.proto", "Foo");

785 +

ExpectGeneratedWithMultipleInputs("test_generator", "foo.proto,bar.proto",

786 +

"bar.proto", "Bar");

787 +

ExpectGeneratedWithMultipleInputs("test_plugin", "foo.proto,bar.proto",

788 +

"foo.proto", "Foo");

789 +

ExpectGeneratedWithMultipleInputs("test_plugin", "foo.proto,bar.proto",

790 +

"bar.proto", "Bar");

791 +

}

792 + 750 793 751 794

TEST_F(CommandLineInterfaceTest, MultipleInputsWithImport_DescriptorSetIn) {

752 795

// Test parsing multiple input files with an import of a separate file.

@@ -1434,6 +1477,35 @@ TEST_F(CommandLineInterfaceTest, FeatureExtensions) {

1434 1477

ExpectNoErrors();

1435 1478

}

1436 1479 1480 +

TEST_F(CommandLineInterfaceTest, ImportOptions) {

1481 +

CreateTempFile("google/protobuf/descriptor.proto",

1482 +

google::protobuf::DescriptorProto::descriptor()->file()->DebugString());

1483 +

CreateTempFile("options.proto",

1484 +

R"schema(

1485 +

syntax = "proto2";

1486 +

package test;

1487 +

import "google/protobuf/descriptor.proto";

1488 +

extend google.protobuf.FileOptions {

1489 +

optional TestOptions opt = 99990;

1490 +

}

1491 +

message TestOptions {

1492 +

repeated int32 a = 1;

1493 +

}

1494 +

)schema");

1495 +

CreateTempFile("foo.proto",

1496 +

R"schema(

1497 +

edition = "2024";

1498 +

import option "options.proto";

1499 + 1500 +

option (test.opt).a = 1;

1501 +

option (.test.opt).a = 2;

1502 +

)schema");

1503 + 1504 +

Run("protocol_compiler --proto_path=$tmpdir --test_out=$tmpdir foo.proto "

1505 +

"--experimental_editions");

1506 +

ExpectNoErrors();

1507 +

}

1508 + 1437 1509

TEST_F(CommandLineInterfaceTest, FeatureValidationError) {

1438 1510

CreateTempFile("foo.proto",

1439 1511

R"schema(

@@ -2672,6 +2744,51 @@ TEST_F(CommandLineInterfaceTest, WriteTransitiveDescriptorSetWithSourceInfo) {

2672 2744

EXPECT_TRUE(descriptor_set.file(1).has_source_code_info());

2673 2745

}

2674 2746 2747 +

TEST_F(CommandLineInterfaceTest, NoWriteTransitiveOptionImportDescriptorSet) {

2748 +

CreateTempFile("google/protobuf/descriptor.proto",

2749 +

google::protobuf::DescriptorProto::descriptor()->file()->DebugString());

2750 +

CreateTempFile("custom_option.proto",

2751 +

R"schema(

2752 +

syntax = "proto2";

2753 +

import "google/protobuf/descriptor.proto";

2754 +

extend .google.protobuf.FileOptions {

2755 +

optional int32 file_opt = 5000;

2756 +

}

2757 +

)schema");

2758 +

CreateTempFile("foo.proto",

2759 +

R"schema(

2760 +

syntax = "proto2";

2761 +

message Foo {}

2762 +

)schema");

2763 +

CreateTempFile("bar.proto",

2764 +

R"schema(

2765 +

edition = "2024";

2766 +

import "foo.proto";

2767 +

import option "custom_option.proto";

2768 +

option (file_opt) = 1;

2769 +

message Bar {

2770 +

Foo foo = 1;

2771 +

}

2772 +

)schema");

2773 + 2774 +

Run("protocol_compiler --descriptor_set_out=$tmpdir/descriptor_set "

2775 +

"--include_imports --proto_path=$tmpdir bar.proto "

2776 +

"--experimental_editions");

2777 + 2778 +

ExpectNoErrors();

2779 + 2780 +

FileDescriptorSet descriptor_set;

2781 +

ReadDescriptorSet("descriptor_set", &descriptor_set);

2782 +

if (HasFatalFailure()) return;

2783 +

EXPECT_EQ(2, descriptor_set.file_size());

2784 +

if (descriptor_set.file(0).name() == "bar.proto") {

2785 +

std::swap(descriptor_set.mutable_file()->mutable_data()[0],

2786 +

descriptor_set.mutable_file()->mutable_data()[1]);

2787 +

}

2788 +

EXPECT_EQ("foo.proto", descriptor_set.file(0).name());

2789 +

EXPECT_EQ("bar.proto", descriptor_set.file(1).name());

2790 +

}

2791 + 2675 2792

TEST_F(CommandLineInterfaceTest, DescriptorSetOptionRetention) {

2676 2793

// clang-format off

2677 2794

CreateTempFile(


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4