1// Copyright 2021 Google Inc. All rights reserved. 2// 3// Licensed under the Apache License, Version 2.0 (the "License"); 4// you may not use this file except in compliance with the License. 5// You may obtain a copy of the License at 6// 7// http://www.apache.org/licenses/LICENSE-2.0 8// 9// Unless required by applicable law or agreed to in writing, software 10// distributed under the License is distributed on an "AS IS" BASIS, 11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12// See the License for the specific language governing permissions and 13// limitations under the License. 14 15package bp2build 16 17import ( 18 "testing" 19 20 "android/soong/android" 21 "android/soong/java" 22) 23 24func runJavaLibraryHostTestCase(t *testing.T, tc Bp2buildTestCase) { 25 t.Helper() 26 (&tc).ModuleTypeUnderTest = "java_library_host" 27 (&tc).ModuleTypeUnderTestFactory = java.LibraryHostFactory 28 RunBp2BuildTestCase(t, func(ctx android.RegistrationContext) {}, tc) 29} 30 31func TestJavaLibraryHost(t *testing.T) { 32 runJavaLibraryHostTestCase(t, Bp2buildTestCase{ 33 Description: "java_library_host with srcs, exclude_srcs and libs", 34 Blueprint: `java_library_host { 35 name: "java-lib-host-1", 36 srcs: ["a.java", "b.java"], 37 exclude_srcs: ["b.java"], 38 libs: ["java-lib-host-2"], 39 bazel_module: { bp2build_available: true }, 40} 41 42java_library_host { 43 name: "java-lib-host-2", 44 srcs: ["c.java"], 45 bazel_module: { bp2build_available: true }, 46 java_version: "9", 47}`, 48 ExpectedBazelTargets: []string{ 49 MakeBazelTarget("java_library", "java-lib-host-1", AttrNameToString{ 50 "srcs": `["a.java"]`, 51 "deps": `[":java-lib-host-2-neverlink"]`, 52 "target_compatible_with": `select({ 53 "//build/bazel/platforms/os:android": ["@platforms//:incompatible"], 54 "//conditions:default": [], 55 })`, 56 }), 57 MakeBazelTarget("java_library", "java-lib-host-1-neverlink", AttrNameToString{ 58 "exports": `[":java-lib-host-1"]`, 59 "neverlink": `True`, 60 "target_compatible_with": `select({ 61 "//build/bazel/platforms/os:android": ["@platforms//:incompatible"], 62 "//conditions:default": [], 63 })`, 64 }), 65 MakeBazelTarget("java_library", "java-lib-host-2", AttrNameToString{ 66 "java_version": `"9"`, 67 "srcs": `["c.java"]`, 68 "target_compatible_with": `select({ 69 "//build/bazel/platforms/os:android": ["@platforms//:incompatible"], 70 "//conditions:default": [], 71 })`, 72 }), 73 MakeBazelTarget("java_library", "java-lib-host-2-neverlink", AttrNameToString{ 74 "exports": `[":java-lib-host-2"]`, 75 "neverlink": `True`, 76 "target_compatible_with": `select({ 77 "//build/bazel/platforms/os:android": ["@platforms//:incompatible"], 78 "//conditions:default": [], 79 })`, 80 "java_version": `"9"`, 81 }), 82 }, 83 }) 84} 85