blob: 10f86e8056866d492ef4e8a212d507b99466fa30 [file] [log] [blame]
Paul Duffinf7f65da2021-03-10 15:00:46 +00001// Copyright (C) 2021 The Android Open Source Project
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 sdk
16
Paul Duffin4a1d4512021-03-18 10:12:26 +000017import (
18 "testing"
19
20 "android/soong/android"
21)
Paul Duffinf7f65da2021-03-10 15:00:46 +000022
Paul Duffin0b28a8d2021-04-21 23:38:34 +010023func TestSnapshotWithBootclasspathFragment(t *testing.T) {
Paul Duffin4a1d4512021-03-18 10:12:26 +000024 result := android.GroupFixturePreparers(
25 prepareForSdkTestWithJava,
26 android.FixtureWithRootAndroidBp(`
27 sdk {
28 name: "mysdk",
Paul Duffin0b28a8d2021-04-21 23:38:34 +010029 bootclasspath_fragments: ["mybootclasspathfragment"],
Paul Duffin4a1d4512021-03-18 10:12:26 +000030 }
Paul Duffinf7f65da2021-03-10 15:00:46 +000031
Paul Duffin0b28a8d2021-04-21 23:38:34 +010032 bootclasspath_fragment {
33 name: "mybootclasspathfragment",
Paul Duffin4a1d4512021-03-18 10:12:26 +000034 image_name: "art",
35 }
36 `),
37 ).RunTest(t)
Paul Duffinf7f65da2021-03-10 15:00:46 +000038
Paul Duffin36474d32021-03-12 12:19:43 +000039 CheckSnapshot(t, result, "mysdk", "",
Paul Duffinf7f65da2021-03-10 15:00:46 +000040 checkUnversionedAndroidBpContents(`
41// This is auto-generated. DO NOT EDIT.
42
Paul Duffin0b28a8d2021-04-21 23:38:34 +010043prebuilt_bootclasspath_fragment {
44 name: "mybootclasspathfragment",
Paul Duffinf7f65da2021-03-10 15:00:46 +000045 prefer: false,
46 visibility: ["//visibility:public"],
47 apex_available: ["//apex_available:platform"],
48 image_name: "art",
49}
50`),
51 checkVersionedAndroidBpContents(`
52// This is auto-generated. DO NOT EDIT.
53
Paul Duffin0b28a8d2021-04-21 23:38:34 +010054prebuilt_bootclasspath_fragment {
55 name: "mysdk_mybootclasspathfragment@current",
56 sdk_member_name: "mybootclasspathfragment",
Paul Duffinf7f65da2021-03-10 15:00:46 +000057 visibility: ["//visibility:public"],
58 apex_available: ["//apex_available:platform"],
59 image_name: "art",
60}
61
62sdk_snapshot {
63 name: "mysdk@current",
64 visibility: ["//visibility:public"],
Paul Duffin0b28a8d2021-04-21 23:38:34 +010065 bootclasspath_fragments: ["mysdk_mybootclasspathfragment@current"],
Paul Duffinf7f65da2021-03-10 15:00:46 +000066}
67`),
Paul Duffin36474d32021-03-12 12:19:43 +000068 checkAllCopyRules(""))
Paul Duffinf7f65da2021-03-10 15:00:46 +000069}
Paul Duffin04b4a192021-03-18 11:05:31 +000070
Paul Duffin0b28a8d2021-04-21 23:38:34 +010071// Test that bootclasspath_fragment works with sdk.
72func TestBasicSdkWithBootclasspathFragment(t *testing.T) {
Paul Duffin04b4a192021-03-18 11:05:31 +000073 android.GroupFixturePreparers(
74 prepareForSdkTestWithApex,
75 prepareForSdkTestWithJava,
76 android.FixtureWithRootAndroidBp(`
77 sdk {
78 name: "mysdk",
Paul Duffin0b28a8d2021-04-21 23:38:34 +010079 bootclasspath_fragments: ["mybootclasspathfragment"],
Paul Duffin04b4a192021-03-18 11:05:31 +000080 }
81
Paul Duffin0b28a8d2021-04-21 23:38:34 +010082 bootclasspath_fragment {
83 name: "mybootclasspathfragment",
Paul Duffin04b4a192021-03-18 11:05:31 +000084 image_name: "art",
85 apex_available: ["myapex"],
86 }
87
88 sdk_snapshot {
89 name: "mysdk@1",
Paul Duffin0b28a8d2021-04-21 23:38:34 +010090 bootclasspath_fragments: ["mybootclasspathfragment_mysdk_1"],
Paul Duffin04b4a192021-03-18 11:05:31 +000091 }
92
Paul Duffin0b28a8d2021-04-21 23:38:34 +010093 prebuilt_bootclasspath_fragment {
94 name: "mybootclasspathfragment_mysdk_1",
95 sdk_member_name: "mybootclasspathfragment",
Paul Duffin04b4a192021-03-18 11:05:31 +000096 prefer: false,
97 visibility: ["//visibility:public"],
98 apex_available: [
99 "myapex",
100 ],
101 image_name: "art",
102 }
103 `),
104 ).RunTest(t)
105}