platform_build_soong/bp2build/prebuilt_etc_conversion_test.go
Liz Kammer dff00ea509 Handle arch-variant in prebuilt_etc
For cc_binary, changing the handling of version_script to no longer be a
LabelAttribute, which reduces test coverage of that type. Expand
prebuilt_etc to handle arch-variant srcs and correct a bug in
LabelAttribute.

Test: build/bazel/ci/bp2build.sh
Change-Id: I620bc3a43b28c1873f335e30099844ca79ce94c1
2021-10-04 13:44:34 -04:00

92 lines
2.6 KiB
Go

// 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 bp2build
import (
"android/soong/android"
"android/soong/etc"
"testing"
)
func runPrebuiltEtcTestCase(t *testing.T, tc bp2buildTestCase) {
t.Helper()
runBp2BuildTestCase(t, registerPrebuiltEtcModuleTypes, tc)
}
func registerPrebuiltEtcModuleTypes(ctx android.RegistrationContext) {
}
func TestPrebuiltEtcSimple(t *testing.T) {
runPrebuiltEtcTestCase(t, bp2buildTestCase{
description: "prebuilt_etc - simple example",
moduleTypeUnderTest: "prebuilt_etc",
moduleTypeUnderTestFactory: etc.PrebuiltEtcFactory,
moduleTypeUnderTestBp2BuildMutator: etc.PrebuiltEtcBp2Build,
filesystem: map[string]string{},
blueprint: `
prebuilt_etc {
name: "apex_tz_version",
src: "version/tz_version",
filename: "tz_version",
sub_dir: "tz",
installable: false,
}
`,
expectedBazelTargets: []string{`prebuilt_etc(
name = "apex_tz_version",
filename = "tz_version",
installable = False,
src = "version/tz_version",
sub_dir = "tz",
)`}})
}
func TestPrebuiltEtcArchVariant(t *testing.T) {
runPrebuiltEtcTestCase(t, bp2buildTestCase{
description: "prebuilt_etc - simple example",
moduleTypeUnderTest: "prebuilt_etc",
moduleTypeUnderTestFactory: etc.PrebuiltEtcFactory,
moduleTypeUnderTestBp2BuildMutator: etc.PrebuiltEtcBp2Build,
filesystem: map[string]string{},
blueprint: `
prebuilt_etc {
name: "apex_tz_version",
src: "version/tz_version",
filename: "tz_version",
sub_dir: "tz",
installable: false,
arch: {
arm: {
src: "arm",
},
arm64: {
src: "arm64",
},
}
}
`,
expectedBazelTargets: []string{`prebuilt_etc(
name = "apex_tz_version",
filename = "tz_version",
installable = False,
src = select({
"//build/bazel/platforms/arch:arm": "arm",
"//build/bazel/platforms/arch:arm64": "arm64",
"//conditions:default": "version/tz_version",
}),
sub_dir = "tz",
)`}})
}