1*333d2b36SAndroid Build Coastguard Workerpackage android 2*333d2b36SAndroid Build Coastguard Worker 3*333d2b36SAndroid Build Coastguard Workerimport ( 4*333d2b36SAndroid Build Coastguard Worker "testing" 5*333d2b36SAndroid Build Coastguard Worker) 6*333d2b36SAndroid Build Coastguard Worker 7*333d2b36SAndroid Build Coastguard Workervar packageTests = []struct { 8*333d2b36SAndroid Build Coastguard Worker name string 9*333d2b36SAndroid Build Coastguard Worker fs MockFS 10*333d2b36SAndroid Build Coastguard Worker expectedErrors []string 11*333d2b36SAndroid Build Coastguard Worker}{ 12*333d2b36SAndroid Build Coastguard Worker // Package default_visibility handling is tested in visibility_test.go 13*333d2b36SAndroid Build Coastguard Worker { 14*333d2b36SAndroid Build Coastguard Worker name: "package must not accept visibility, name or licenses properties", 15*333d2b36SAndroid Build Coastguard Worker fs: map[string][]byte{ 16*333d2b36SAndroid Build Coastguard Worker "top/Android.bp": []byte(` 17*333d2b36SAndroid Build Coastguard Worker package { 18*333d2b36SAndroid Build Coastguard Worker name: "package", 19*333d2b36SAndroid Build Coastguard Worker visibility: ["//visibility:private"], 20*333d2b36SAndroid Build Coastguard Worker licenses: ["license"], 21*333d2b36SAndroid Build Coastguard Worker }`), 22*333d2b36SAndroid Build Coastguard Worker }, 23*333d2b36SAndroid Build Coastguard Worker expectedErrors: []string{ 24*333d2b36SAndroid Build Coastguard Worker `top/Android.bp:5:14: unrecognized property "licenses"`, 25*333d2b36SAndroid Build Coastguard Worker `top/Android.bp:3:10: unrecognized property "name"`, 26*333d2b36SAndroid Build Coastguard Worker `top/Android.bp:4:16: unrecognized property "visibility"`, 27*333d2b36SAndroid Build Coastguard Worker }, 28*333d2b36SAndroid Build Coastguard Worker }, 29*333d2b36SAndroid Build Coastguard Worker { 30*333d2b36SAndroid Build Coastguard Worker name: "multiple packages in separate directories", 31*333d2b36SAndroid Build Coastguard Worker fs: map[string][]byte{ 32*333d2b36SAndroid Build Coastguard Worker "top/Android.bp": []byte(` 33*333d2b36SAndroid Build Coastguard Worker package { 34*333d2b36SAndroid Build Coastguard Worker }`), 35*333d2b36SAndroid Build Coastguard Worker "other/Android.bp": []byte(` 36*333d2b36SAndroid Build Coastguard Worker package { 37*333d2b36SAndroid Build Coastguard Worker }`), 38*333d2b36SAndroid Build Coastguard Worker "other/nested/Android.bp": []byte(` 39*333d2b36SAndroid Build Coastguard Worker package { 40*333d2b36SAndroid Build Coastguard Worker }`), 41*333d2b36SAndroid Build Coastguard Worker }, 42*333d2b36SAndroid Build Coastguard Worker }, 43*333d2b36SAndroid Build Coastguard Worker { 44*333d2b36SAndroid Build Coastguard Worker name: "package must not be specified more than once per package", 45*333d2b36SAndroid Build Coastguard Worker fs: map[string][]byte{ 46*333d2b36SAndroid Build Coastguard Worker "top/Android.bp": []byte(` 47*333d2b36SAndroid Build Coastguard Worker package { 48*333d2b36SAndroid Build Coastguard Worker default_visibility: ["//visibility:private"], 49*333d2b36SAndroid Build Coastguard Worker default_applicable_licenses: ["license"], 50*333d2b36SAndroid Build Coastguard Worker } 51*333d2b36SAndroid Build Coastguard Worker package { 52*333d2b36SAndroid Build Coastguard Worker }`), 53*333d2b36SAndroid Build Coastguard Worker }, 54*333d2b36SAndroid Build Coastguard Worker expectedErrors: []string{ 55*333d2b36SAndroid Build Coastguard Worker `module "//top" already defined`, 56*333d2b36SAndroid Build Coastguard Worker }, 57*333d2b36SAndroid Build Coastguard Worker }, 58*333d2b36SAndroid Build Coastguard Worker} 59*333d2b36SAndroid Build Coastguard Worker 60*333d2b36SAndroid Build Coastguard Workerfunc TestPackage(t *testing.T) { 61*333d2b36SAndroid Build Coastguard Worker for _, test := range packageTests { 62*333d2b36SAndroid Build Coastguard Worker t.Run(test.name, func(t *testing.T) { 63*333d2b36SAndroid Build Coastguard Worker GroupFixturePreparers( 64*333d2b36SAndroid Build Coastguard Worker PrepareForTestWithArchMutator, 65*333d2b36SAndroid Build Coastguard Worker PrepareForTestWithPackageModule, 66*333d2b36SAndroid Build Coastguard Worker test.fs.AddToFixture(), 67*333d2b36SAndroid Build Coastguard Worker ). 68*333d2b36SAndroid Build Coastguard Worker ExtendWithErrorHandler(FixtureExpectsAllErrorsToMatchAPattern(test.expectedErrors)). 69*333d2b36SAndroid Build Coastguard Worker RunTest(t) 70*333d2b36SAndroid Build Coastguard Worker }) 71*333d2b36SAndroid Build Coastguard Worker } 72*333d2b36SAndroid Build Coastguard Worker} 73