Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9d36bca2 authored by Sal Savage's avatar Sal Savage
Browse files

Prevent variables with type java.lang.Boolean

Bug: 315046089
Flag: EXEMPT, tooling change
Test: atest BluetoothLintCheckerTest --host
Change-Id: Ib62b659ed9011d21f5e5b3550aa3761ef99365c8
parent ef098768
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -135,7 +135,8 @@ class LogEnforcementVariableCreationDetector : Detector(), SourceCodeScanner {
        val fieldType = field.getType()
        val fieldName = field.getName()
        val fieldInitializer = field.uastInitializer?.skipParenthesizedExprDown()
        return fieldType.canonicalText.lowercase() == "boolean" &&
        return (fieldType.canonicalText == "boolean" ||
            fieldType.canonicalText == "java.lang.Boolean") &&
            (isLogEnforcementVariable(fieldName) ||
                (fieldInitializer != null &&
                    (checkExpressionForIsLoggableUsages(fieldInitializer) ||
+32 −0
Original line number Diff line number Diff line
@@ -779,6 +779,38 @@ class LogEnforcementVariableCreationDetectorTest : LintDetectorTest() {
            .expectClean()
    }

    @Test
    fun testVariableCreationWithBooleanWrapperClass_issuesFound() {
        lint()
            .files(
                java(
                        """
                package com.android.bluetooth;

                import android.util.Log;

                public final class Foo {
                    private static final String TAG = Foo.class.getSimpleName();
                    private static final Boolean WHYYYY_DBG = true;

                    public Foo() {
                        Log.d(TAG, "created Foo without an enforcement variable");
                    }
                }
                """
                    )
                    .indented(),
                *stubs
            )
            .issues(LogEnforcementVariableCreationDetector.ISSUE)
            .run()
            .expectContains(
                LogEnforcementVariableCreationDetector.LOG_ENFORCEMENT_VARIABLE_USAGE_ERROR
            )
            .expectContains(createErrorCountString(1, 0))
            .expectFixDiffs(createFixDiff(7, "    private static final Boolean WHYYYY_DBG = true;"))
    }

    private val logFramework: TestFile =
        java(
                """