Loading tools/lint/global/integration_tests/Android.bp 0 → 100644 +40 −0 Original line number Diff line number Diff line // 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, }, }, } tools/lint/global/integration_tests/TestNoAidl/TestNoAidl.java 0 → 100644 +30 −0 Original line number Diff line number Diff line /* * 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() { } } tools/lint/global/integration_tests/tests.py 0 → 100644 +34 −0 Original line number Diff line number Diff line # 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) Loading
tools/lint/global/integration_tests/Android.bp 0 → 100644 +40 −0 Original line number Diff line number Diff line // 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, }, }, }
tools/lint/global/integration_tests/TestNoAidl/TestNoAidl.java 0 → 100644 +30 −0 Original line number Diff line number Diff line /* * 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() { } }
tools/lint/global/integration_tests/tests.py 0 → 100644 +34 −0 Original line number Diff line number Diff line # 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)