blob: f9a68c918af7286eca9f7856304650a99d14bcfd [file] [log] [blame]
Rupert Shuttlewortheb8c85a2021-07-27 07:10:32 -04001// 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 bp2build
16
17import (
18 "android/soong/android"
19 "android/soong/apex"
20
21 "testing"
22)
23
Sam Delmerico3177a6e2022-06-21 19:28:33 +000024func runApexKeyTestCase(t *testing.T, tc Bp2buildTestCase) {
Rupert Shuttlewortheb8c85a2021-07-27 07:10:32 -040025 t.Helper()
Sam Delmerico3177a6e2022-06-21 19:28:33 +000026 RunBp2BuildTestCase(t, registerApexKeyModuleTypes, tc)
Rupert Shuttlewortheb8c85a2021-07-27 07:10:32 -040027}
28
29func registerApexKeyModuleTypes(ctx android.RegistrationContext) {
Jingwen Chen1d873332022-10-05 06:15:15 +000030 ctx.RegisterModuleType("filegroup", android.FileGroupFactory)
Rupert Shuttlewortheb8c85a2021-07-27 07:10:32 -040031}
32
Jingwen Chen6817bbb2022-10-14 09:56:07 +000033func TestApexKeySimple_KeysAreSrcFilesInSameDir(t *testing.T) {
Sam Delmerico3177a6e2022-06-21 19:28:33 +000034 runApexKeyTestCase(t, Bp2buildTestCase{
Jingwen Chen6817bbb2022-10-14 09:56:07 +000035 Description: "apex key - keys are src files, use key attributes",
Sam Delmerico3177a6e2022-06-21 19:28:33 +000036 ModuleTypeUnderTest: "apex_key",
37 ModuleTypeUnderTestFactory: apex.ApexKeyFactory,
Jingwen Chen6817bbb2022-10-14 09:56:07 +000038 Filesystem: map[string]string{
39 "com.android.apogee.avbpubkey": "",
40 "com.android.apogee.pem": "",
41 },
42 Blueprint: `
43apex_key {
44 name: "com.android.apogee.key",
45 public_key: "com.android.apogee.avbpubkey",
46 private_key: "com.android.apogee.pem",
47}
48`,
49 ExpectedBazelTargets: []string{MakeBazelTargetNoRestrictions("apex_key", "com.android.apogee.key", AttrNameToString{
50 "private_key": `"com.android.apogee.pem"`,
51 "public_key": `"com.android.apogee.avbpubkey"`,
52 }),
53 }})
54}
55
56func TestApexKeySimple_KeysAreSrcFilesNotInDir(t *testing.T) {
57 runApexKeyTestCase(t, Bp2buildTestCase{
58 Description: "apex key - keys are not src or module, use key_name attributes",
59 ModuleTypeUnderTest: "apex_key",
60 ModuleTypeUnderTestFactory: apex.ApexKeyFactory,
61 Filesystem: map[string]string{
62 // deliberately left empty
63 },
Sam Delmerico3177a6e2022-06-21 19:28:33 +000064 Blueprint: `
Rupert Shuttlewortheb8c85a2021-07-27 07:10:32 -040065apex_key {
66 name: "com.android.apogee.key",
67 public_key: "com.android.apogee.avbpubkey",
68 private_key: "com.android.apogee.pem",
69}
70`,
Sam Delmerico3177a6e2022-06-21 19:28:33 +000071 ExpectedBazelTargets: []string{MakeBazelTargetNoRestrictions("apex_key", "com.android.apogee.key", AttrNameToString{
Jingwen Chen1d873332022-10-05 06:15:15 +000072 "private_key_name": `"com.android.apogee.pem"`,
73 "public_key_name": `"com.android.apogee.avbpubkey"`,
74 }),
75 }})
76}
77
78func TestApexKey_KeysAreModules(t *testing.T) {
79 runApexKeyTestCase(t, Bp2buildTestCase{
80 Description: "apex key - keys are modules, use key attributes",
81 ModuleTypeUnderTest: "apex_key",
82 ModuleTypeUnderTestFactory: apex.ApexKeyFactory,
83 Filesystem: map[string]string{},
84 Blueprint: `
85apex_key {
86 name: "com.android.apogee.key",
87 public_key: ":com.android.apogee.avbpubkey",
88 private_key: ":com.android.apogee.pem",
89}
90` + simpleModuleDoNotConvertBp2build("filegroup", "com.android.apogee.avbpubkey") +
91 simpleModuleDoNotConvertBp2build("filegroup", "com.android.apogee.pem"),
92 ExpectedBazelTargets: []string{MakeBazelTargetNoRestrictions("apex_key", "com.android.apogee.key", AttrNameToString{
93 "private_key": `":com.android.apogee.pem"`,
94 "public_key": `":com.android.apogee.avbpubkey"`,
Liz Kammer78cfdaa2021-11-08 12:56:31 -050095 }),
96 }})
Rupert Shuttlewortheb8c85a2021-07-27 07:10:32 -040097}