blob: e5d8fbba5d55416eb32e5f3b2b03af1ff775ba60 [file] [log] [blame]
Jingwen Chen12b4c272021-03-10 02:05:59 -05001// 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.
14package android
15
16import "testing"
17
18func TestConvertAllModulesInPackage(t *testing.T) {
19 testCases := []struct {
20 prefixes Bp2BuildConfig
21 packageDir string
22 }{
23 {
24 prefixes: Bp2BuildConfig{
25 "a": Bp2BuildDefaultTrueRecursively,
26 },
27 packageDir: "a",
28 },
29 {
30 prefixes: Bp2BuildConfig{
31 "a/b": Bp2BuildDefaultTrueRecursively,
32 },
33 packageDir: "a/b",
34 },
35 {
36 prefixes: Bp2BuildConfig{
37 "a/b": Bp2BuildDefaultTrueRecursively,
38 "a/b/c": Bp2BuildDefaultTrueRecursively,
39 },
40 packageDir: "a/b",
41 },
42 {
43 prefixes: Bp2BuildConfig{
44 "a": Bp2BuildDefaultTrueRecursively,
45 "d/e/f": Bp2BuildDefaultTrueRecursively,
46 },
47 packageDir: "a/b",
48 },
49 {
50 prefixes: Bp2BuildConfig{
51 "a": Bp2BuildDefaultFalse,
52 "a/b": Bp2BuildDefaultTrueRecursively,
53 "a/b/c": Bp2BuildDefaultFalse,
54 },
55 packageDir: "a/b",
56 },
57 {
58 prefixes: Bp2BuildConfig{
59 "a": Bp2BuildDefaultTrueRecursively,
60 "a/b": Bp2BuildDefaultFalse,
61 "a/b/c": Bp2BuildDefaultTrueRecursively,
62 },
63 packageDir: "a",
64 },
65 }
66
67 for _, test := range testCases {
68 if !bp2buildDefaultTrueRecursively(test.packageDir, test.prefixes) {
69 t.Errorf("Expected to convert all modules in %s based on %v, but failed.", test.packageDir, test.prefixes)
70 }
71 }
72}
73
74func TestModuleOptIn(t *testing.T) {
75 testCases := []struct {
76 prefixes Bp2BuildConfig
77 packageDir string
78 }{
79 {
80 prefixes: Bp2BuildConfig{
81 "a/b": Bp2BuildDefaultFalse,
82 },
83 packageDir: "a/b",
84 },
85 {
86 prefixes: Bp2BuildConfig{
87 "a": Bp2BuildDefaultFalse,
88 "a/b": Bp2BuildDefaultTrueRecursively,
89 },
90 packageDir: "a",
91 },
92 {
93 prefixes: Bp2BuildConfig{
94 "a/b": Bp2BuildDefaultTrueRecursively,
95 },
96 packageDir: "a", // opt-in by default
97 },
98 {
99 prefixes: Bp2BuildConfig{
100 "a/b/c": Bp2BuildDefaultTrueRecursively,
101 },
102 packageDir: "a/b",
103 },
104 {
105 prefixes: Bp2BuildConfig{
106 "a": Bp2BuildDefaultTrueRecursively,
107 "d/e/f": Bp2BuildDefaultTrueRecursively,
108 },
109 packageDir: "foo/bar",
110 },
111 {
112 prefixes: Bp2BuildConfig{
113 "a": Bp2BuildDefaultTrueRecursively,
114 "a/b": Bp2BuildDefaultFalse,
115 "a/b/c": Bp2BuildDefaultTrueRecursively,
116 },
117 packageDir: "a/b",
118 },
119 {
120 prefixes: Bp2BuildConfig{
121 "a": Bp2BuildDefaultFalse,
122 "a/b": Bp2BuildDefaultTrueRecursively,
123 "a/b/c": Bp2BuildDefaultFalse,
124 },
125 packageDir: "a",
126 },
127 }
128
129 for _, test := range testCases {
130 if bp2buildDefaultTrueRecursively(test.packageDir, test.prefixes) {
131 t.Errorf("Expected to allow module opt-in in %s based on %v, but failed.", test.packageDir, test.prefixes)
132 }
133 }
134}