diff options
| -rw-r--r-- | services/core/java/com/android/server/utils/EventLogger.java | 23 | ||||
| -rw-r--r-- | services/tests/servicestests/src/com/android/server/utils/EventLoggerTest.java | 13 |
2 files changed, 23 insertions, 13 deletions
diff --git a/services/core/java/com/android/server/utils/EventLogger.java b/services/core/java/com/android/server/utils/EventLogger.java index 770cb7258319..4772bbfe97dd 100644 --- a/services/core/java/com/android/server/utils/EventLogger.java +++ b/services/core/java/com/android/server/utils/EventLogger.java @@ -36,8 +36,11 @@ import java.util.Locale; */ public class EventLogger { + /** Prefix for the title added at the beginning of a {@link #dump(PrintWriter)} operation */ + private static final String DUMP_TITLE_PREFIX = "Events log: "; + /** Identifies the source of events. */ - private final String mTag; + @Nullable private final String mTag; /** Stores the events using a ring buffer. */ private final ArrayDeque<Event> mEvents; @@ -55,7 +58,7 @@ public class EventLogger { * @param size the maximum number of events to keep in log * @param tag the string displayed before the recorded log */ - public EventLogger(int size, String tag) { + public EventLogger(int size, @Nullable String tag) { mEvents = new ArrayDeque<>(size); mMemSize = size; mTag = tag; @@ -64,10 +67,10 @@ public class EventLogger { /** Enqueues {@code event} to be logged. */ public synchronized void enqueue(Event event) { if (mEvents.size() >= mMemSize) { - mEvents.removeLast(); + mEvents.removeFirst(); } - mEvents.addFirst(event); + mEvents.addLast(event); } /** @@ -91,13 +94,19 @@ public class EventLogger { dump(pw, "" /* prefix */); } + protected String getDumpTitle() { + if (mTag == null) { + return DUMP_TITLE_PREFIX; + } + return DUMP_TITLE_PREFIX + mTag; + } + /** Dumps events using {@link PrintWriter} with a certain indent. */ public synchronized void dump(PrintWriter pw, String indent) { - pw.println(indent + "Events log: " + mTag); + pw.println(getDumpTitle()); - String childrenIndention = indent + " "; for (Event evt : mEvents) { - pw.println(childrenIndention + evt.toString()); + pw.println(indent + evt.toString()); } } diff --git a/services/tests/servicestests/src/com/android/server/utils/EventLoggerTest.java b/services/tests/servicestests/src/com/android/server/utils/EventLoggerTest.java index aafc16db50da..febbffea50cd 100644 --- a/services/tests/servicestests/src/com/android/server/utils/EventLoggerTest.java +++ b/services/tests/servicestests/src/com/android/server/utils/EventLoggerTest.java @@ -71,9 +71,10 @@ public class EventLoggerTest { } @Test - public void testThatPrintWriterProducesEmptyListFromEmptyLog() { + public void testThatPrintWriterProducesOnlyTitleFromEmptyLog() { mEventLogger.dump(mTestPrintWriter); - assertThat(mTestStringWriter.toString()).isEmpty(); + assertThat(mTestStringWriter.toString()) + .isEqualTo(mEventLogger.getDumpTitle() + "\n"); } } @@ -87,27 +88,27 @@ public class EventLoggerTest { // insertion order, max size is 3 new EventLogger.Event[] { TEST_EVENT_1, TEST_EVENT_2 }, // expected events - new EventLogger.Event[] { TEST_EVENT_2, TEST_EVENT_1 } + new EventLogger.Event[] { TEST_EVENT_1, TEST_EVENT_2 } }, { // insertion order, max size is 3 new EventLogger.Event[] { TEST_EVENT_1, TEST_EVENT_3, TEST_EVENT_2 }, // expected events - new EventLogger.Event[] { TEST_EVENT_2, TEST_EVENT_3, TEST_EVENT_1 } + new EventLogger.Event[] { TEST_EVENT_1, TEST_EVENT_3, TEST_EVENT_2 } }, { // insertion order, max size is 3 new EventLogger.Event[] { TEST_EVENT_1, TEST_EVENT_2, TEST_EVENT_3, TEST_EVENT_4 }, // expected events - new EventLogger.Event[] { TEST_EVENT_4, TEST_EVENT_3, TEST_EVENT_2 } + new EventLogger.Event[] { TEST_EVENT_2, TEST_EVENT_3, TEST_EVENT_4 } }, { // insertion order, max size is 3 new EventLogger.Event[] { TEST_EVENT_1, TEST_EVENT_2, TEST_EVENT_3, TEST_EVENT_4, TEST_EVENT_5 }, // expected events - new EventLogger.Event[] { TEST_EVENT_5, TEST_EVENT_4, TEST_EVENT_3 } + new EventLogger.Event[] { TEST_EVENT_3, TEST_EVENT_4, TEST_EVENT_5 } } }); } |