diff options
| author | 2023-10-03 00:33:56 +0000 | |
|---|---|---|
| committer | 2023-10-03 00:33:56 +0000 | |
| commit | 386ee7a5807a01b5b3d3c971ec8cee938c4507f2 (patch) | |
| tree | 9c3c60ef980072056e73a3d5283af90e4bc8ca8e | |
| parent | 74b1c1afc7e0bfbb5efb172db2b922c3c1e4f460 (diff) | |
| parent | 405e4fd218b05552195cc959615b17cffeee295a (diff) | |
Merge "Add integration test for EnforcePermissionHelperDetector" into main am: 2768c06f7a am: 9cdf7de282 am: 405e4fd218
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2769058
Change-Id: I5bcd143ce2d01d969c264ad3445dba0e73c254c5
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
| -rw-r--r-- | tools/lint/global/integration_tests/Android.bp | 40 | ||||
| -rw-r--r-- | tools/lint/global/integration_tests/TestNoAidl/TestNoAidl.java | 30 | ||||
| -rw-r--r-- | tools/lint/global/integration_tests/tests.py | 34 |
3 files changed, 104 insertions, 0 deletions
diff --git a/tools/lint/global/integration_tests/Android.bp b/tools/lint/global/integration_tests/Android.bp new file mode 100644 index 000000000000..ca96559ac016 --- /dev/null +++ b/tools/lint/global/integration_tests/Android.bp @@ -0,0 +1,40 @@ +// Copyright (C) 2023 The Android Open Source Project +// +// 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. + +java_library { + name: "AndroidGlobalLintTestNoAidl", + srcs: ["TestNoAidl/**/*.java"], + libs: [ + "framework-annotations-lib", + ], + lint: { + // It is expected that lint returns an error when processing this + // library. Silence it here, the lint output is verified in tests.py. + suppress_exit_code: true, + }, +} + +python_test_host { + name: "AndroidGlobalLintCheckerIntegrationTest", + srcs: ["tests.py"], + main: "tests.py", + data: [ + ":AndroidGlobalLintTestNoAidl{.lint}", + ], + version: { + py3: { + embedded_launcher: true, + }, + }, +} diff --git a/tools/lint/global/integration_tests/TestNoAidl/TestNoAidl.java b/tools/lint/global/integration_tests/TestNoAidl/TestNoAidl.java new file mode 100644 index 000000000000..0015f958a78e --- /dev/null +++ b/tools/lint/global/integration_tests/TestNoAidl/TestNoAidl.java @@ -0,0 +1,30 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * 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 com.google.android.lint.integration_tests; + +import android.annotation.EnforcePermission; + +/** + * A class that use the annotation but does not rely on AIDL. + */ +class TestNoAidl { + + @EnforcePermission("INTERNET") + void myMethod() { + } + +} diff --git a/tools/lint/global/integration_tests/tests.py b/tools/lint/global/integration_tests/tests.py new file mode 100644 index 000000000000..fc3eeb4f8ed9 --- /dev/null +++ b/tools/lint/global/integration_tests/tests.py @@ -0,0 +1,34 @@ +# Copyright 2023 The Android Open Source Project +# +# 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. + +import pkgutil +import unittest +import xml.etree.ElementTree + +class TestLinterReports(unittest.TestCase): + """Integration tests for the linters used by @EnforcePermission.""" + + def test_no_aidl(self): + report = pkgutil.get_data("lint", "lint-report.xml").decode() + issues = xml.etree.ElementTree.fromstring(report) + self.assertEqual(issues.tag, "issues") + self.assertEqual(len(issues), 1) + + issue = issues[0] + self.assertEqual(issue.attrib["id"], "MisusingEnforcePermissionAnnotation") + self.assertEqual(issue.attrib["severity"], "Error") + + +if __name__ == '__main__': + unittest.main(verbosity=2) |