Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(142)

Side by Side Diff: base/android/javatests/src/org/chromium/base/EarlyTraceEventTest.java

Issue 2145443002: Revert of Android: Add support for TraceEvent before the native library is loaded. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 package org.chromium.base;
6
7 import android.os.Process;
8 import android.os.SystemClock;
9 import android.test.InstrumentationTestCase;
10 import android.test.suitebuilder.annotation.SmallTest;
11
12 import org.chromium.base.library_loader.LibraryLoader;
13 import org.chromium.base.library_loader.LibraryProcessType;
14 import org.chromium.base.test.util.Feature;
15
16 /**
17 * Tests for {@link EarlyTraceEvent}.
18 */
19 public class EarlyTraceEventTest extends InstrumentationTestCase {
20 private static final String EVENT_NAME = "MyEvent";
21 private static final String EVENT_NAME2 = "MyOtherEvent";
22
23 @Override
24 protected void setUp() throws Exception {
25 super.setUp();
26 LibraryLoader.get(LibraryProcessType.PROCESS_BROWSER)
27 .ensureInitialized(getInstrumentation().getTargetContext());
28
29 EarlyTraceEvent.sState = EarlyTraceEvent.STATE_DISABLED;
30 EarlyTraceEvent.sCompletedEvents = null;
31 EarlyTraceEvent.sPendingEvents = null;
32 }
33
34 @SmallTest
35 @Feature({"Android-AppBase"})
36 public void testCanRecordEvent() {
37 EarlyTraceEvent.enable();
38 long myThreadId = Process.myTid();
39 long beforeMs = SystemClock.elapsedRealtime();
40 EarlyTraceEvent.begin(EVENT_NAME);
41 EarlyTraceEvent.end(EVENT_NAME);
42 long afterMs = SystemClock.elapsedRealtime();
43
44 assertEquals(1, EarlyTraceEvent.sCompletedEvents.size());
45 assertTrue(EarlyTraceEvent.sPendingEvents.isEmpty());
46 EarlyTraceEvent.Event event = EarlyTraceEvent.sCompletedEvents.get(0);
47 assertEquals(EVENT_NAME, event.mName);
48 assertEquals(myThreadId, event.mThreadId);
49 assertTrue(beforeMs <= event.mBeginTimeMs && event.mBeginTimeMs <= after Ms);
50 assertTrue(event.mBeginTimeMs <= event.mEndTimeMs);
51 assertTrue(beforeMs <= event.mEndTimeMs && event.mEndTimeMs <= afterMs);
52 }
53
54 @SmallTest
55 @Feature({"Android-AppBase"})
56 public void testIncompleteEvent() {
57 EarlyTraceEvent.enable();
58 EarlyTraceEvent.begin(EVENT_NAME);
59
60 assertTrue(EarlyTraceEvent.sCompletedEvents.isEmpty());
61 assertEquals(1, EarlyTraceEvent.sPendingEvents.size());
62 EarlyTraceEvent.Event event = EarlyTraceEvent.sPendingEvents.get(EVENT_N AME);
63 assertEquals(EVENT_NAME, event.mName);
64 }
65
66 @SmallTest
67 @Feature({"Android-AppBase"})
68 public void testNoDuplicatePendingEvents() {
69 EarlyTraceEvent.enable();
70 EarlyTraceEvent.begin(EVENT_NAME);
71 try {
72 EarlyTraceEvent.begin(EVENT_NAME);
73 } catch (IllegalArgumentException e) {
74 // Expected.
75 return;
76 }
77 fail();
78 }
79
80 @SmallTest
81 @Feature({"Android-AppBase"})
82 public void testIgnoreEventsWhenDisabled() {
83 EarlyTraceEvent.begin(EVENT_NAME);
84 EarlyTraceEvent.end(EVENT_NAME);
85 assertNull(EarlyTraceEvent.sCompletedEvents);
86 }
87
88 @SmallTest
89 @Feature({"Android-AppBase"})
90 public void testIgnoreNewEventsWhenFinishing() {
91 EarlyTraceEvent.enable();
92 EarlyTraceEvent.begin(EVENT_NAME);
93 EarlyTraceEvent.disable();
94
95 assertEquals(EarlyTraceEvent.STATE_FINISHING, EarlyTraceEvent.sState);
96 EarlyTraceEvent.begin(EVENT_NAME2);
97 EarlyTraceEvent.end(EVENT_NAME2);
98
99 assertEquals(1, EarlyTraceEvent.sPendingEvents.size());
100 assertTrue(EarlyTraceEvent.sCompletedEvents.isEmpty());
101 }
102
103 @SmallTest
104 @Feature({"Android-AppBase"})
105 public void testFinishingToFinished() {
106 EarlyTraceEvent.enable();
107 EarlyTraceEvent.begin(EVENT_NAME);
108 EarlyTraceEvent.disable();
109
110 assertEquals(EarlyTraceEvent.STATE_FINISHING, EarlyTraceEvent.sState);
111 EarlyTraceEvent.begin(EVENT_NAME2);
112 EarlyTraceEvent.end(EVENT_NAME2);
113 EarlyTraceEvent.end(EVENT_NAME);
114
115 assertEquals(EarlyTraceEvent.STATE_FINISHED, EarlyTraceEvent.sState);
116 }
117
118 @SmallTest
119 @Feature({"Android-AppBase"})
120 public void testCannotBeReenabledOnceFinished() {
121 EarlyTraceEvent.enable();
122 EarlyTraceEvent.begin(EVENT_NAME);
123 EarlyTraceEvent.end(EVENT_NAME);
124 EarlyTraceEvent.disable();
125 assertEquals(EarlyTraceEvent.STATE_FINISHED, EarlyTraceEvent.sState);
126
127 EarlyTraceEvent.enable();
128 assertEquals(EarlyTraceEvent.STATE_FINISHED, EarlyTraceEvent.sState);
129 }
130
131 @SmallTest
132 @Feature({"Android-AppBase"})
133 public void testThreadIdIsRecorded() throws Exception {
134 EarlyTraceEvent.enable();
135 final long[] threadId = {0};
136
137 Thread thread = new Thread() {
138 @Override
139 public void run() {
140 TraceEvent.begin(EVENT_NAME);
141 threadId[0] = Process.myTid();
142 TraceEvent.end(EVENT_NAME);
143 }
144 };
145 thread.start();
146 thread.join();
147
148 assertEquals(1, EarlyTraceEvent.sCompletedEvents.size());
149 EarlyTraceEvent.Event event = EarlyTraceEvent.sCompletedEvents.get(0);
150 assertEquals(threadId[0], event.mThreadId);
151 }
152 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698