// 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 java import ( "testing" "android/soong/android" ) func TestJavaLintBypassUpdatableChecks(t *testing.T) { testCases := []struct { name string bp string error string }{ { name: "warning_checks", bp: ` java_library { name: "foo", srcs: [ "a.java", ], min_sdk_version: "29", sdk_version: "current", lint: { warning_checks: ["NewApi"], }, } `, error: "lint.warning_checks: Can't treat \\[NewApi\\] checks as warnings if min_sdk_version is different from sdk_version.", }, { name: "disable_checks", bp: ` java_library { name: "foo", srcs: [ "a.java", ], min_sdk_version: "29", sdk_version: "current", lint: { disabled_checks: ["NewApi"], }, } `, error: "lint.disabled_checks: Can't disable \\[NewApi\\] checks if min_sdk_version is different from sdk_version.", }, } for _, testCase := range testCases { t.Run(testCase.name, func(t *testing.T) { errorHandler := android.FixtureExpectsAtLeastOneErrorMatchingPattern(testCase.error) android.GroupFixturePreparers(PrepareForTestWithJavaDefaultModules). ExtendWithErrorHandler(errorHandler). RunTestWithBp(t, testCase.bp) }) } }