This change ensures that each prebuilt in a snapshot explicitly specifies its visibility even when that visibility is the current default. This is done for two reasons: 1. It simplifies a follow up change that adds visibility rules to an existing set of rules. 2. It ensures that the snapshots are independent of the current Soong default visibility. The latter is important because we intend to switch from modules being visible to everyone by default (i.e. //visibility:public) to only being visible to modules in the same package (i.e. //visibility:private). By making the snapshots of modules that do not specify any visibility explicitly specify that they are "//visibility:public" it ensures that the snapshots will not need to be changed when the default changes. Bug: 168301990 Test: m nothing Change-Id: Ia034f4a1e5124c17f46d73b0e9a6c5f2a251038e
70 lines
1.7 KiB
Go
70 lines
1.7 KiB
Go
// Copyright 2019 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"
|
|
)
|
|
|
|
// Ensure that module_exports generates a module_exports_snapshot module.
|
|
func TestModuleExportsSnapshot(t *testing.T) {
|
|
packageBp := `
|
|
module_exports {
|
|
name: "myexports",
|
|
java_libs: [
|
|
"myjavalib",
|
|
],
|
|
}
|
|
|
|
java_library {
|
|
name: "myjavalib",
|
|
srcs: ["Test.java"],
|
|
system_modules: "none",
|
|
sdk_version: "none",
|
|
}
|
|
`
|
|
|
|
result := testSdkWithFs(t, ``,
|
|
map[string][]byte{
|
|
"package/Test.java": nil,
|
|
"package/Android.bp": []byte(packageBp),
|
|
})
|
|
|
|
result.CheckSnapshot("myexports", "package",
|
|
checkAndroidBpContents(`
|
|
// This is auto-generated. DO NOT EDIT.
|
|
|
|
java_import {
|
|
name: "myexports_myjavalib@current",
|
|
sdk_member_name: "myjavalib",
|
|
visibility: ["//visibility:public"],
|
|
jars: ["java/myjavalib.jar"],
|
|
}
|
|
|
|
java_import {
|
|
name: "myjavalib",
|
|
prefer: false,
|
|
visibility: ["//visibility:public"],
|
|
jars: ["java/myjavalib.jar"],
|
|
}
|
|
|
|
module_exports_snapshot {
|
|
name: "myexports@current",
|
|
visibility: ["//visibility:public"],
|
|
java_libs: ["myexports_myjavalib@current"],
|
|
}
|
|
`))
|
|
}
|