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

Commit e1a729ec authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Order LogLevel enum values" into main

parents c740bec5 506771a7
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -618,7 +618,7 @@ public abstract class PerfettoProtoLogImpl extends IProtoLogClient.Stub implemen

            os.write(MessageData.MESSAGE_ID, messageHash);
            os.write(MESSAGE, message);
            os.write(LEVEL, level.id);
            os.write(LEVEL, level.protoMessageId);
            os.write(GROUP_ID, logGroup.getId());

            os.end(messageConfigToken);
+1 −1
Original line number Diff line number Diff line
@@ -299,7 +299,7 @@ public class ProtoLogDataSource extends DataSource<ProtoLogDataSource.Instance,
                        case DEFAULT:
                            break;
                        case ENABLE_ALL:
                            defaultLogFromLevel = LogLevel.DEBUG;
                            defaultLogFromLevel = LogLevel.VERBOSE;
                            break;
                        default:
                            throw new RuntimeException("Unhandled ProtoLog tracing mode type");
+6 −4
Original line number Diff line number Diff line
@@ -20,18 +20,20 @@ import android.ravenwood.annotation.RavenwoodKeepWholeClass;

@RavenwoodKeepWholeClass
public enum LogLevel {
    DEBUG("d", 1),
    // Ordered by increasing severity. We rely on the natural order or ordinal value to determine
    // from which level to log.
    VERBOSE("v", 2),
    DEBUG("d", 1),
    INFO("i", 3),
    WARN("w", 4),
    ERROR("e", 5),
    WTF("wtf", 6);

    public final String shortCode;
    public final int id;
    public final int protoMessageId;

    LogLevel(String shortCode, int id) {
    LogLevel(String shortCode, int protoMessageId) {
        this.shortCode = shortCode;
        this.id = id;
        this.protoMessageId = protoMessageId;
    }
}
+60 −6
Original line number Diff line number Diff line
@@ -291,12 +291,11 @@ public class ProcessedPerfettoProtoLogImplTest {
        final ResultReader reader = new ResultReader(mWriter.write(), mTraceConfig);
        final ProtoLogTrace protolog = reader.readProtoLogTrace();

        Truth.assertThat(protolog.messages).hasSize(5);
        Truth.assertThat(protolog.messages).hasSize(4);
        Truth.assertThat(protolog.messages.get(0).getLevel()).isEqualTo(LogLevel.DEBUG);
        Truth.assertThat(protolog.messages.get(1).getLevel()).isEqualTo(LogLevel.VERBOSE);
        Truth.assertThat(protolog.messages.get(2).getLevel()).isEqualTo(LogLevel.WARN);
        Truth.assertThat(protolog.messages.get(3).getLevel()).isEqualTo(LogLevel.ERROR);
        Truth.assertThat(protolog.messages.get(4).getLevel()).isEqualTo(LogLevel.WTF);
        Truth.assertThat(protolog.messages.get(1).getLevel()).isEqualTo(LogLevel.WARN);
        Truth.assertThat(protolog.messages.get(2).getLevel()).isEqualTo(LogLevel.ERROR);
        Truth.assertThat(protolog.messages.get(3).getLevel()).isEqualTo(LogLevel.WTF);
    }

    @Test
@@ -702,7 +701,7 @@ public class ProcessedPerfettoProtoLogImplTest {
                Truth.assertThat(sProtoLog.isEnabled(TestProtoLogGroup.TEST_GROUP, LogLevel.DEBUG))
                        .isTrue();
                Truth.assertThat(sProtoLog.isEnabled(TestProtoLogGroup.TEST_GROUP,
                        LogLevel.VERBOSE)).isTrue();
                        LogLevel.VERBOSE)).isFalse();
                Truth.assertThat(sProtoLog.isEnabled(TestProtoLogGroup.TEST_GROUP, LogLevel.INFO))
                        .isTrue();
                Truth.assertThat(sProtoLog.isEnabled(TestProtoLogGroup.TEST_GROUP, LogLevel.WARN))
@@ -866,6 +865,61 @@ public class ProcessedPerfettoProtoLogImplTest {
                .isEqualTo("This message should also be logged 567");
    }

    @Test
    public void verboseLowerThanDebugLogLevelDefaultLevel() throws IOException {
        PerfettoTraceMonitor traceMonitor = PerfettoTraceMonitor.newBuilder()
                .enableProtoLog(LogLevel.DEBUG, List.of(), TEST_PROTOLOG_DATASOURCE_NAME)
                .build();
        try {
            traceMonitor.start();
            sProtoLog.log(LogLevel.VERBOSE, TestProtoLogGroup.TEST_GROUP,
                    "This message should not be logged");
            sProtoLog.log(LogLevel.DEBUG, TestProtoLogGroup.TEST_GROUP,
                    "This message should be logged %d", 123);
        } finally {
            traceMonitor.stop(mWriter);
        }

        final ResultReader reader = new ResultReader(mWriter.write(), mTraceConfig);
        final ProtoLogTrace protolog = reader.readProtoLogTrace();

        Truth.assertThat(protolog.messages).hasSize(1);

        Truth.assertThat(protolog.messages.get(0).getLevel())
                .isEqualTo(LogLevel.DEBUG);
        Truth.assertThat(protolog.messages.get(0).getMessage())
                .isEqualTo("This message should be logged 123");
    }

    @Test
    public void verboseLowerThanDebugLogLevel() throws IOException {
        PerfettoTraceMonitor traceMonitor = PerfettoTraceMonitor.newBuilder()
                .enableProtoLog(LogLevel.VERBOSE, List.of(
                        new PerfettoTraceMonitor.Builder.ProtoLogGroupOverride(
                                TestProtoLogGroup.TEST_GROUP.name(), LogLevel.DEBUG, false)
                ), TEST_PROTOLOG_DATASOURCE_NAME)
                .build();
        try {
            traceMonitor.start();
            sProtoLog.log(LogLevel.VERBOSE, TestProtoLogGroup.TEST_GROUP,
                    "This message should not be logged");
            sProtoLog.log(LogLevel.DEBUG, TestProtoLogGroup.TEST_GROUP,
                    "This message should be logged %d", 123);
        } finally {
            traceMonitor.stop(mWriter);
        }

        final ResultReader reader = new ResultReader(mWriter.write(), mTraceConfig);
        final ProtoLogTrace protolog = reader.readProtoLogTrace();

        Truth.assertThat(protolog.messages).hasSize(1);

        Truth.assertThat(protolog.messages.get(0).getLevel())
                .isEqualTo(LogLevel.DEBUG);
        Truth.assertThat(protolog.messages.get(0).getMessage())
                .isEqualTo("This message should be logged 123");
    }

    @Test
    public void enablesLogGroupAfterLoadingConfig() {
        sProtoLog.stopLoggingToLogcat(
+2 −2
Original line number Diff line number Diff line
@@ -61,7 +61,7 @@ public class ProtologDataSourceTest {
                                        .build()
                        ).build());

        Truth.assertThat(tlsState.getLogFromLevel("SOME_TAG")).isEqualTo(LogLevel.DEBUG);
        Truth.assertThat(tlsState.getLogFromLevel("SOME_TAG")).isEqualTo(LogLevel.VERBOSE);
        Truth.assertThat(tlsState.getShouldCollectStacktrace("SOME_TAG")).isFalse();
    }

@@ -76,7 +76,7 @@ public class ProtologDataSourceTest {
                ).build()
        );

        Truth.assertThat(tlsState.getLogFromLevel("SOME_TAG")).isEqualTo(LogLevel.DEBUG);
        Truth.assertThat(tlsState.getLogFromLevel("SOME_TAG")).isEqualTo(LogLevel.VERBOSE);
        Truth.assertThat(tlsState.getShouldCollectStacktrace("SOME_TAG")).isFalse();
    }

Loading