Skip to content
This repository has been archived by the owner on Nov 8, 2023. It is now read-only.

Commit

Permalink
Merge "Add integration test for EnforcePermissionHelperDetector" into…
Browse files Browse the repository at this point in the history
… main
  • Loading branch information
tweksteen authored and Gerrit Code Review committed Oct 2, 2023
2 parents 6ffa587 + 4c785fe commit 2768c06
Show file tree
Hide file tree
Showing 3 changed files with 104 additions and 0 deletions.
40 changes: 40 additions & 0 deletions tools/lint/global/integration_tests/Android.bp
Original file line number Diff line number Diff line change
@@ -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,
},
},
}
30 changes: 30 additions & 0 deletions tools/lint/global/integration_tests/TestNoAidl/TestNoAidl.java
Original file line number Diff line number Diff line change
@@ -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() {
}

}
34 changes: 34 additions & 0 deletions tools/lint/global/integration_tests/tests.py
Original file line number Diff line number Diff line change
@@ -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)

0 comments on commit 2768c06

Please sign in to comment.