blob: 0b3191c32d4be43ae3f70dad3ef04da95b8d523d [file] [log] [blame]
Romain Jobredeaux428a3662022-01-28 11:12:52 -05001// Copyright 2022 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 "android/soong/android"
19 "android/soong/java"
20
21 "testing"
22)
23
24func runJavaImportTestCase(t *testing.T, tc bp2buildTestCase) {
25 t.Helper()
26 runBp2BuildTestCase(t, registerJavaImportModuleTypes, tc)
27}
28
29func registerJavaImportModuleTypes(ctx android.RegistrationContext) {
30}
31
Sam Delmerico48983162022-02-22 21:41:33 +000032func TestJavaImportMinimal(t *testing.T) {
Romain Jobredeaux428a3662022-01-28 11:12:52 -050033 runJavaImportTestCase(t, bp2buildTestCase{
34 description: "Java import - simple example",
35 moduleTypeUnderTest: "java_import",
36 moduleTypeUnderTestFactory: java.ImportFactory,
37 filesystem: map[string]string{
38 "import.jar": "",
39 },
40 blueprint: `
41java_import {
42 name: "example_import",
43 jars: ["import.jar"],
44 bazel_module: { bp2build_available: true },
45}
46`,
47 expectedBazelTargets: []string{
48 makeBazelTarget("java_import", "example_import", attrNameToString{
49 "jars": `["import.jar"]`,
50 }),
51 }})
52}
Sam Delmerico48983162022-02-22 21:41:33 +000053
54func TestJavaImportArchVariant(t *testing.T) {
55 runJavaImportTestCase(t, bp2buildTestCase{
56 description: "Java import - simple example",
57 moduleTypeUnderTest: "java_import",
58 moduleTypeUnderTestFactory: java.ImportFactory,
59 filesystem: map[string]string{
60 "import.jar": "",
61 },
62 blueprint: `
63java_import {
64 name: "example_import",
65 target: {
66 android: {
67 jars: ["android.jar"],
68 },
69 linux_glibc: {
70 jars: ["linux.jar"],
71 },
72 },
73 bazel_module: { bp2build_available: true },
74}
75`,
76 expectedBazelTargets: []string{
77 makeBazelTarget("java_import", "example_import", attrNameToString{
78 "jars": `select({
79 "//build/bazel/platforms/os:android": ["android.jar"],
80 "//build/bazel/platforms/os:linux": ["linux.jar"],
81 "//conditions:default": [],
82 })`,
83 }),
84 }})
85}