// Copyright 2021 Google Inc. All rights reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. package sdk import ( "testing" "android/soong/android" "android/soong/java" ) func testSnapshotWithCompatConfig(t *testing.T, sdk string) { result := android.GroupFixturePreparers( prepareForSdkTestWithJava, java.PrepareForTestWithPlatformCompatConfig, prepareForSdkTestWithApex, ).RunTestWithBp(t, sdk+` platform_compat_config { name: "myconfig", } `) CheckSnapshot(t, result, "mysdk", "", checkAndroidBpContents(` // This is auto-generated. DO NOT EDIT. apex_contributions_defaults { name: "mysdk.contributions", contents: ["prebuilt_myconfig"], } prebuilt_platform_compat_config { name: "myconfig", prefer: false, visibility: ["//visibility:public"], metadata: "compat_configs/myconfig/myconfig_meta.xml", } `), checkAllCopyRules(` .intermediates/myconfig/android_common/myconfig_meta.xml -> compat_configs/myconfig/myconfig_meta.xml `), snapshotTestChecker(checkSnapshotWithoutSource, func(t *testing.T, result *android.TestResult) { // Make sure that the snapshot metadata is collated by the platform compat config singleton. java.CheckMergedCompatConfigInputs(t, result, "snapshot module", "snapshot/compat_configs/myconfig/myconfig_meta.xml") }), snapshotTestChecker(checkSnapshotWithSourcePreferred, func(t *testing.T, result *android.TestResult) { // Make sure that the snapshot metadata is collated by the platform compat config singleton. java.CheckMergedCompatConfigInputs(t, result, "snapshot module", "out/soong/.intermediates/myconfig/android_common/myconfig_meta.xml", ) }), snapshotTestChecker(checkSnapshotPreferredWithSource, func(t *testing.T, result *android.TestResult) { // Make sure that the snapshot metadata is collated by the platform compat config singleton. java.CheckMergedCompatConfigInputs(t, result, "snapshot module", "snapshot/compat_configs/myconfig/myconfig_meta.xml", ) }), ) } func TestSnapshotWithCompatConfig(t *testing.T) { testSnapshotWithCompatConfig(t, ` sdk { name: "mysdk", compat_configs: ["myconfig"], } `) } func TestSnapshotWithCompatConfig_Apex(t *testing.T) { testSnapshotWithCompatConfig(t, ` apex { name: "myapex", key: "myapex.key", min_sdk_version: "2", compat_configs: ["myconfig"], } sdk { name: "mysdk", apexes: ["myapex"], } `) }