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

Commit 72657b72 authored by Charles Yo's avatar Charles Yo Committed by Android Build Coastguard Worker
Browse files

Revert "Always remove message string argument from processed calls"

Revert submission 28147757-no-processing-protolog

Reason for revert: b/351458758

Reverted changes: /q/submissionid:28147757-no-processing-protolog
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:9486eb7ef1b4990ba1f00074bf17ad0ac21f2fbb)
Merged-In: Id363046e889fc9d13410517de863d944e02a9cc1
Change-Id: Id363046e889fc9d13410517de863d944e02a9cc1
parent 460036e2
Loading
Loading
Loading
Loading
+10 −9
Original line number Diff line number Diff line
@@ -130,27 +130,28 @@ class SourceTransformer(
        val hash = CodeUtils.hash(packagePath, messageString, level, group)

        val newCall = call.clone()
        // Remove message string.
        // Out: ProtoLog.e(GROUP, args)
        newCall.arguments.removeAt(1)
        if (!group.textEnabled) {
            // Remove message string if text logging is not enabled by default.
            // Out: ProtoLog.e(GROUP, null, arg)
            newCall.arguments[1].replace(NameExpr("null"))
        }
        // Insert message string hash as a second argument.
        // Out: ProtoLog.e(GROUP, 1234, args)
        // Out: ProtoLog.e(GROUP, 1234, null, arg)
        newCall.arguments.add(1, LongLiteralExpr("" + hash + "L"))
        val argTypes = LogDataType.parseFormatString(messageString)
        val typeMask = LogDataType.logDataTypesToBitMask(argTypes)
        // Insert bitmap representing which Number parameters are to be considered as
        // floating point numbers.
        // Out: ProtoLog.e(GROUP, 1234, 0, args)
        // Out: ProtoLog.e(GROUP, 1234, 0, null, arg)
        newCall.arguments.add(2, IntegerLiteralExpr(typeMask))
        // Replace call to a stub method with an actual implementation.
        // Out: ProtoLogImpl.e(GROUP, 1234, 0, args)
        // Out: ProtoLogImpl.e(GROUP, 1234, null, arg)
        newCall.setScope(protoLogImplClassNode)
        if (argTypes.size != call.arguments.size - 2) {
            throw InvalidProtoLogCallException(
                "Number of arguments (${argTypes.size} does not match format" +
                        " string in: $call", ParsingContext(path, call))
        }
        val argsOffset = 3
        val blockStmt = BlockStmt()
        if (argTypes.isNotEmpty()) {
            // Assign every argument to a variable to check its type in compile time
@@ -159,9 +160,9 @@ class SourceTransformer(
            argTypes.forEachIndexed { idx, type ->
                val varName = "protoLogParam$idx"
                val declaration = VariableDeclarator(getASTTypeForDataType(type), varName,
                    getConversionForType(type)(newCall.arguments[idx + argsOffset].clone()))
                    getConversionForType(type)(newCall.arguments[idx + 4].clone()))
                blockStmt.addStatement(ExpressionStmt(VariableDeclarationExpr(declaration)))
                newCall.setArgument(idx + argsOffset, NameExpr(SimpleName(varName)))
                newCall.setArgument(idx + 4, NameExpr(SimpleName(varName)))
            }
        } else {
            // Assign (Object[])null as the vararg parameter to prevent allocating an empty
+1 −1
Original line number Diff line number Diff line
@@ -60,7 +60,7 @@ class EndToEndTest {
                .containsMatch(Pattern.compile("\\{ String protoLogParam0 = " +
                        "String\\.valueOf\\(argString\\); long protoLogParam1 = argInt; " +
                        "com\\.android\\.internal\\.protolog.ProtoLogImpl_.*\\.d\\(" +
                        "GROUP, -6872339441335321086L, 4, protoLogParam0, protoLogParam1" +
                        "GROUP, -6872339441335321086L, 4, null, protoLogParam0, protoLogParam1" +
                        "\\); \\}"))
    }

+29 −25
Original line number Diff line number Diff line
@@ -76,7 +76,7 @@ class SourceTransformerTest {

            class Test {
                void test() {
                    if (org.example.ProtoLogImpl.Cache.TEST_GROUP_enabled[3]) { long protoLogParam0 = 100; double protoLogParam1 = 0.1; org.example.ProtoLogImpl.w(TEST_GROUP, -1473209266730422156L, 9, protoLogParam0, protoLogParam1); }
                    if (org.example.ProtoLogImpl.Cache.TEST_GROUP_enabled[3]) { long protoLogParam0 = 100; double protoLogParam1 = 0.1; org.example.ProtoLogImpl.w(TEST_GROUP, -1473209266730422156L, 9, "test %d %f", protoLogParam0, protoLogParam1); }
                }
            }
            """.trimIndent()
@@ -86,7 +86,7 @@ class SourceTransformerTest {

            class Test {
                void test() {
                    if (org.example.ProtoLogImpl.Cache.TEST_GROUP_enabled[3]) { long protoLogParam0 = 100; double protoLogParam1 = 0.1; String protoLogParam2 = String.valueOf("test"); org.example.ProtoLogImpl.w(TEST_GROUP, -4447034859795564700L, 9, protoLogParam0, protoLogParam1, protoLogParam2); 
                    if (org.example.ProtoLogImpl.Cache.TEST_GROUP_enabled[3]) { long protoLogParam0 = 100; double protoLogParam1 = 0.1; String protoLogParam2 = String.valueOf("test"); org.example.ProtoLogImpl.w(TEST_GROUP, -4447034859795564700L, 9, "test %d %f " + "abc %s\n test", protoLogParam0, protoLogParam1, protoLogParam2); 
            
            }
                }
@@ -98,8 +98,8 @@ class SourceTransformerTest {

            class Test {
                void test() {
                    if (org.example.ProtoLogImpl.Cache.TEST_GROUP_enabled[3]) { long protoLogParam0 = 100; double protoLogParam1 = 0.1; org.example.ProtoLogImpl.w(TEST_GROUP, -1473209266730422156L, 9, protoLogParam0, protoLogParam1); } /* ProtoLog.w(TEST_GROUP, "test %d %f", 100, 0.1); */ if (org.example.ProtoLogImpl.Cache.TEST_GROUP_enabled[3]) { long protoLogParam0 = 100; double protoLogParam1 = 0.1; org.example.ProtoLogImpl.w(TEST_GROUP, -1473209266730422156L, 9, protoLogParam0, protoLogParam1); }
                    if (org.example.ProtoLogImpl.Cache.TEST_GROUP_enabled[3]) { long protoLogParam0 = 100; double protoLogParam1 = 0.1; org.example.ProtoLogImpl.w(TEST_GROUP, -1473209266730422156L, 9, protoLogParam0, protoLogParam1); }
                    if (org.example.ProtoLogImpl.Cache.TEST_GROUP_enabled[3]) { long protoLogParam0 = 100; double protoLogParam1 = 0.1; org.example.ProtoLogImpl.w(TEST_GROUP, -1473209266730422156L, 9, "test %d %f", protoLogParam0, protoLogParam1); } /* ProtoLog.w(TEST_GROUP, "test %d %f", 100, 0.1); */ if (org.example.ProtoLogImpl.Cache.TEST_GROUP_enabled[3]) { long protoLogParam0 = 100; double protoLogParam1 = 0.1; org.example.ProtoLogImpl.w(TEST_GROUP, -1473209266730422156L, 9, "test %d %f", protoLogParam0, protoLogParam1); }
                    if (org.example.ProtoLogImpl.Cache.TEST_GROUP_enabled[3]) { long protoLogParam0 = 100; double protoLogParam1 = 0.1; org.example.ProtoLogImpl.w(TEST_GROUP, -1473209266730422156L, 9, "test %d %f", protoLogParam0, protoLogParam1); }
                }
            }
            """.trimIndent()
@@ -109,7 +109,7 @@ class SourceTransformerTest {

            class Test {
                void test() {
                    if (org.example.ProtoLogImpl.Cache.TEST_GROUP_enabled[3]) { org.example.ProtoLogImpl.w(TEST_GROUP, 3218600869538902408L, 0, (Object[]) null); }
                    if (org.example.ProtoLogImpl.Cache.TEST_GROUP_enabled[3]) { org.example.ProtoLogImpl.w(TEST_GROUP, 3218600869538902408L, 0, "test", (Object[]) null); }
                }
            }
            """.trimIndent()
@@ -119,7 +119,7 @@ class SourceTransformerTest {

            class Test {
                void test() {
                    if (org.example.ProtoLogImpl.Cache.TEST_GROUP_enabled[3]) { long protoLogParam0 = 100; double protoLogParam1 = 0.1; org.example.ProtoLogImpl.w(TEST_GROUP, -1473209266730422156L, 9, protoLogParam0, protoLogParam1); }
                    if (org.example.ProtoLogImpl.Cache.TEST_GROUP_enabled[3]) { long protoLogParam0 = 100; double protoLogParam1 = 0.1; org.example.ProtoLogImpl.w(TEST_GROUP, -1473209266730422156L, 9, null, protoLogParam0, protoLogParam1); }
                }
            }
            """.trimIndent()
@@ -129,7 +129,7 @@ class SourceTransformerTest {

            class Test {
                void test() {
                    if (org.example.ProtoLogImpl.Cache.TEST_GROUP_enabled[3]) { long protoLogParam0 = 100; double protoLogParam1 = 0.1; String protoLogParam2 = String.valueOf("test"); org.example.ProtoLogImpl.w(TEST_GROUP, -4447034859795564700L, 9, protoLogParam0, protoLogParam1, protoLogParam2); 
                    if (org.example.ProtoLogImpl.Cache.TEST_GROUP_enabled[3]) { long protoLogParam0 = 100; double protoLogParam1 = 0.1; String protoLogParam2 = String.valueOf("test"); org.example.ProtoLogImpl.w(TEST_GROUP, -4447034859795564700L, 9, null, protoLogParam0, protoLogParam1, protoLogParam2); 
            
            }
                }
@@ -172,12 +172,13 @@ class SourceTransformerTest {
        Truth.assertThat(protoLogCalls).hasSize(1)
        val methodCall = protoLogCalls[0] as MethodCallExpr
        assertEquals("w", methodCall.name.asString())
        assertEquals(5, methodCall.arguments.size)
        assertEquals(6, methodCall.arguments.size)
        assertEquals("TEST_GROUP", methodCall.arguments[0].toString())
        assertEquals("-1473209266730422156L", methodCall.arguments[1].toString())
        assertEquals(0b1001.toString(), methodCall.arguments[2].toString())
        assertEquals("protoLogParam0", methodCall.arguments[3].toString())
        assertEquals("protoLogParam1", methodCall.arguments[4].toString())
        assertEquals("\"test %d %f\"", methodCall.arguments[3].toString())
        assertEquals("protoLogParam0", methodCall.arguments[4].toString())
        assertEquals("protoLogParam1", methodCall.arguments[5].toString())
        assertEquals(TRANSFORMED_CODE_TEXT_ENABLED, out)
    }

@@ -213,12 +214,13 @@ class SourceTransformerTest {
        Truth.assertThat(protoLogCalls).hasSize(3)
        val methodCall = protoLogCalls[0] as MethodCallExpr
        assertEquals("w", methodCall.name.asString())
        assertEquals(5, methodCall.arguments.size)
        assertEquals(6, methodCall.arguments.size)
        assertEquals("TEST_GROUP", methodCall.arguments[0].toString())
        assertEquals("-1473209266730422156L", methodCall.arguments[1].toString())
        assertEquals(0b1001.toString(), methodCall.arguments[2].toString())
        assertEquals("protoLogParam0", methodCall.arguments[3].toString())
        assertEquals("protoLogParam1", methodCall.arguments[4].toString())
        assertEquals("\"test %d %f\"", methodCall.arguments[3].toString())
        assertEquals("protoLogParam0", methodCall.arguments[4].toString())
        assertEquals("protoLogParam1", methodCall.arguments[5].toString())
        assertEquals(TRANSFORMED_CODE_MULTICALL_TEXT, out)
    }

@@ -250,13 +252,13 @@ class SourceTransformerTest {
        Truth.assertThat(protoLogCalls).hasSize(1)
        val methodCall = protoLogCalls[0] as MethodCallExpr
        assertEquals("w", methodCall.name.asString())
        assertEquals(6, methodCall.arguments.size)
        assertEquals(7, methodCall.arguments.size)
        assertEquals("TEST_GROUP", methodCall.arguments[0].toString())
        assertEquals("-4447034859795564700L", methodCall.arguments[1].toString())
        assertEquals(0b001001.toString(), methodCall.arguments[2].toString())
        assertEquals("protoLogParam0", methodCall.arguments[3].toString())
        assertEquals("protoLogParam1", methodCall.arguments[4].toString())
        assertEquals("protoLogParam2", methodCall.arguments[5].toString())
        assertEquals("protoLogParam0", methodCall.arguments[4].toString())
        assertEquals("protoLogParam1", methodCall.arguments[5].toString())
        assertEquals("protoLogParam2", methodCall.arguments[6].toString())
        assertEquals(TRANSFORMED_CODE_MULTILINE_TEXT_ENABLED, out)
    }

@@ -287,7 +289,7 @@ class SourceTransformerTest {
        Truth.assertThat(protoLogCalls).hasSize(1)
        val methodCall = protoLogCalls[0] as MethodCallExpr
        assertEquals("w", methodCall.name.asString())
        assertEquals(4, methodCall.arguments.size)
        assertEquals(5, methodCall.arguments.size)
        assertEquals("TEST_GROUP", methodCall.arguments[0].toString())
        assertEquals("3218600869538902408L", methodCall.arguments[1].toString())
        assertEquals(0.toString(), methodCall.arguments[2].toString())
@@ -321,12 +323,13 @@ class SourceTransformerTest {
        Truth.assertThat(protoLogCalls).hasSize(1)
        val methodCall = protoLogCalls[0] as MethodCallExpr
        assertEquals("w", methodCall.name.asString())
        assertEquals(5, methodCall.arguments.size)
        assertEquals(6, methodCall.arguments.size)
        assertEquals("TEST_GROUP", methodCall.arguments[0].toString())
        assertEquals("-1473209266730422156L", methodCall.arguments[1].toString())
        assertEquals(0b1001.toString(), methodCall.arguments[2].toString())
        assertEquals("protoLogParam0", methodCall.arguments[3].toString())
        assertEquals("protoLogParam1", methodCall.arguments[4].toString())
        assertEquals("null", methodCall.arguments[3].toString())
        assertEquals("protoLogParam0", methodCall.arguments[4].toString())
        assertEquals("protoLogParam1", methodCall.arguments[5].toString())
        assertEquals(TRANSFORMED_CODE_TEXT_DISABLED, out)
    }

@@ -358,13 +361,14 @@ class SourceTransformerTest {
        Truth.assertThat(protoLogCalls).hasSize(1)
        val methodCall = protoLogCalls[0] as MethodCallExpr
        assertEquals("w", methodCall.name.asString())
        assertEquals(6, methodCall.arguments.size)
        assertEquals(7, methodCall.arguments.size)
        assertEquals("TEST_GROUP", methodCall.arguments[0].toString())
        assertEquals("-4447034859795564700L", methodCall.arguments[1].toString())
        assertEquals(0b001001.toString(), methodCall.arguments[2].toString())
        assertEquals("protoLogParam0", methodCall.arguments[3].toString())
        assertEquals("protoLogParam1", methodCall.arguments[4].toString())
        assertEquals("protoLogParam2", methodCall.arguments[5].toString())
        assertEquals("null", methodCall.arguments[3].toString())
        assertEquals("protoLogParam0", methodCall.arguments[4].toString())
        assertEquals("protoLogParam1", methodCall.arguments[5].toString())
        assertEquals("protoLogParam2", methodCall.arguments[6].toString())
        assertEquals(TRANSFORMED_CODE_MULTILINE_TEXT_DISABLED, out)
    }
}