xref: /aosp_15_r20/build/soong/java/proto_test.go (revision 333d2b3687b3a337dbcca9d65000bca186795e39)
1*333d2b36SAndroid Build Coastguard Worker// Copyright 2022 Google Inc. All rights reserved.
2*333d2b36SAndroid Build Coastguard Worker//
3*333d2b36SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License");
4*333d2b36SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License.
5*333d2b36SAndroid Build Coastguard Worker// You may obtain a copy of the License at
6*333d2b36SAndroid Build Coastguard Worker//
7*333d2b36SAndroid Build Coastguard Worker//     http://www.apache.org/licenses/LICENSE-2.0
8*333d2b36SAndroid Build Coastguard Worker//
9*333d2b36SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software
10*333d2b36SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS,
11*333d2b36SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*333d2b36SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and
13*333d2b36SAndroid Build Coastguard Worker// limitations under the License.
14*333d2b36SAndroid Build Coastguard Worker
15*333d2b36SAndroid Build Coastguard Workerpackage java
16*333d2b36SAndroid Build Coastguard Worker
17*333d2b36SAndroid Build Coastguard Workerimport (
18*333d2b36SAndroid Build Coastguard Worker	"strings"
19*333d2b36SAndroid Build Coastguard Worker	"testing"
20*333d2b36SAndroid Build Coastguard Worker
21*333d2b36SAndroid Build Coastguard Worker	"android/soong/android"
22*333d2b36SAndroid Build Coastguard Worker)
23*333d2b36SAndroid Build Coastguard Worker
24*333d2b36SAndroid Build Coastguard Workerconst protoModules = `
25*333d2b36SAndroid Build Coastguard Workerjava_library_static {
26*333d2b36SAndroid Build Coastguard Worker    name: "libprotobuf-java-lite",
27*333d2b36SAndroid Build Coastguard Worker}
28*333d2b36SAndroid Build Coastguard Worker`
29*333d2b36SAndroid Build Coastguard Worker
30*333d2b36SAndroid Build Coastguard Workerfunc TestProtoStream(t *testing.T) {
31*333d2b36SAndroid Build Coastguard Worker	bp := `
32*333d2b36SAndroid Build Coastguard Worker		java_library {
33*333d2b36SAndroid Build Coastguard Worker			name: "java-stream-protos",
34*333d2b36SAndroid Build Coastguard Worker			proto: {
35*333d2b36SAndroid Build Coastguard Worker				type: "stream",
36*333d2b36SAndroid Build Coastguard Worker			},
37*333d2b36SAndroid Build Coastguard Worker			srcs: [
38*333d2b36SAndroid Build Coastguard Worker				"a.proto",
39*333d2b36SAndroid Build Coastguard Worker				"b.proto",
40*333d2b36SAndroid Build Coastguard Worker			],
41*333d2b36SAndroid Build Coastguard Worker		}
42*333d2b36SAndroid Build Coastguard Worker	`
43*333d2b36SAndroid Build Coastguard Worker
44*333d2b36SAndroid Build Coastguard Worker	ctx := android.GroupFixturePreparers(
45*333d2b36SAndroid Build Coastguard Worker		PrepareForIntegrationTestWithJava,
46*333d2b36SAndroid Build Coastguard Worker	).RunTestWithBp(t, protoModules+bp)
47*333d2b36SAndroid Build Coastguard Worker
48*333d2b36SAndroid Build Coastguard Worker	proto0 := ctx.ModuleForTests("java-stream-protos", "android_common").Output("proto/proto0.srcjar")
49*333d2b36SAndroid Build Coastguard Worker
50*333d2b36SAndroid Build Coastguard Worker	if cmd := proto0.RuleParams.Command; !strings.Contains(cmd, "--javastream_out=") {
51*333d2b36SAndroid Build Coastguard Worker		t.Errorf("expected '--javastream_out' in %q", cmd)
52*333d2b36SAndroid Build Coastguard Worker	}
53*333d2b36SAndroid Build Coastguard Worker}
54