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 sdk 16 17import ( 18 "testing" 19 20 "android/soong/android" 21 "android/soong/java" 22) 23 24func testSnapshotWithCompatConfig(t *testing.T, sdk string) { 25 result := android.GroupFixturePreparers( 26 prepareForSdkTestWithJava, 27 java.PrepareForTestWithPlatformCompatConfig, 28 prepareForSdkTestWithApex, 29 ).RunTestWithBp(t, sdk+` 30 platform_compat_config { 31 name: "myconfig", 32 } 33 `) 34 35 CheckSnapshot(t, result, "mysdk", "", 36 checkAndroidBpContents(` 37// This is auto-generated. DO NOT EDIT. 38 39apex_contributions_defaults { 40 name: "mysdk.contributions", 41 contents: ["prebuilt_myconfig"], 42} 43 44prebuilt_platform_compat_config { 45 name: "myconfig", 46 prefer: false, 47 visibility: ["//visibility:public"], 48 metadata: "compat_configs/myconfig/myconfig_meta.xml", 49} 50`), 51 checkAllCopyRules(` 52.intermediates/myconfig/android_common/myconfig_meta.xml -> compat_configs/myconfig/myconfig_meta.xml 53`), 54 snapshotTestChecker(checkSnapshotWithoutSource, 55 func(t *testing.T, result *android.TestResult) { 56 // Make sure that the snapshot metadata is collated by the platform compat config singleton. 57 java.CheckMergedCompatConfigInputs(t, result, "snapshot module", "snapshot/compat_configs/myconfig/myconfig_meta.xml") 58 }), 59 60 snapshotTestChecker(checkSnapshotWithSourcePreferred, 61 func(t *testing.T, result *android.TestResult) { 62 // Make sure that the snapshot metadata is collated by the platform compat config singleton. 63 java.CheckMergedCompatConfigInputs(t, result, "snapshot module", 64 "out/soong/.intermediates/myconfig/android_common/myconfig_meta.xml", 65 ) 66 }), 67 68 snapshotTestChecker(checkSnapshotPreferredWithSource, 69 func(t *testing.T, result *android.TestResult) { 70 // Make sure that the snapshot metadata is collated by the platform compat config singleton. 71 java.CheckMergedCompatConfigInputs(t, result, "snapshot module", 72 "snapshot/compat_configs/myconfig/myconfig_meta.xml", 73 ) 74 }), 75 ) 76} 77 78func TestSnapshotWithCompatConfig(t *testing.T) { 79 testSnapshotWithCompatConfig(t, ` 80 sdk { 81 name: "mysdk", 82 compat_configs: ["myconfig"], 83 } 84`) 85} 86 87func TestSnapshotWithCompatConfig_Apex(t *testing.T) { 88 testSnapshotWithCompatConfig(t, ` 89 apex { 90 name: "myapex", 91 key: "myapex.key", 92 min_sdk_version: "2", 93 compat_configs: ["myconfig"], 94 } 95 96 sdk { 97 name: "mysdk", 98 apexes: ["myapex"], 99 } 100`) 101} 102