Skip to content

Commit 5731604

Browse files
committed
Add empty proto file test
* Add empty proto file test * Add a preamble to `foo-messages.proto` * Don't unconditionally add a dependency on `GRPCProtobuf` if there are no services * Add the new test case code generation to `dev/protos/generate.sh` * depend on `grpc-swift` `main` to pick up empty file generation changes.
1 parent 9f07522 commit 5731604

File tree

7 files changed

+875
-815
lines changed

7 files changed

+875
-815
lines changed

Package.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ let products: [Product] = [
3131
let dependencies: [Package.Dependency] = [
3232
.package(
3333
url: "https://github.com/grpc/grpc-swift.git",
34-
exact: "2.0.0-beta.2"
34+
branch: "main"
3535
),
3636
.package(
3737
url: "https://github.com/apple/swift-protobuf.git",

Sources/GRPCProtobufCodeGen/ProtobufCodeGenParser.swift

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -98,9 +98,11 @@ package struct ProtobufCodeGenParser {
9898

9999
extension ProtobufCodeGenParser {
100100
fileprivate func codeDependencies(file: FileDescriptor) -> [Dependency] {
101-
var codeDependencies: [Dependency] = [
102-
Dependency(module: "GRPCProtobuf", accessLevel: .internal)
103-
]
101+
var codeDependencies: [Dependency] = []
102+
103+
if file.services.count > 0 {
104+
codeDependencies.append(Dependency(module: "GRPCProtobuf", accessLevel: .internal))
105+
}
104106

105107
// If there's a dependency on a bundled proto then add the SwiftProtobuf import.
106108
//
156 Bytes
Binary file not shown.
19 Bytes
Binary file not shown.

Tests/GRPCProtobufCodeGenTests/ProtobufCodeGeneratorTests.swift

Lines changed: 856 additions & 811 deletions
Large diffs are not rendered by default.

dev/protos/generate.sh

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,17 @@ function generate_foo_service_descriptor_set {
119119
--include_imports
120120
}
121121

122+
function generate_foo_messages_descriptor_set {
123+
local proto proto_path output
124+
proto="$here/local/foo-messages.proto"
125+
proto_path="$(dirname "$proto")"
126+
output="$root/Tests/GRPCProtobufCodeGenTests/Generated/foo-messages.pb"
127+
128+
invoke_protoc --descriptor_set_out="$output" "$proto" -I "$proto_path" \
129+
--include_source_info \
130+
--include_imports
131+
}
132+
122133
function generate_bar_service_descriptor_set {
123134
local proto proto_path output
124135
proto="$here/local/bar-service.proto"
@@ -152,5 +163,6 @@ generate_error_service
152163
# Descriptor sets for tests
153164
generate_test_service_descriptor_set
154165
generate_foo_service_descriptor_set
166+
generate_foo_messages_descriptor_set
155167
generate_bar_service_descriptor_set
156168
generate_wkt_service_descriptor_set

dev/protos/local/foo-messages.proto

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
// Leading trivia.
12
syntax = "proto3";
23

34
package foo;

0 commit comments

Comments
 (0)