• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2023 The Chromium Authors
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.test.metrics;
6 
7 import androidx.test.filters.MediumTest;
8 
9 import org.junit.Test;
10 import org.junit.runner.RunWith;
11 
12 import org.chromium.base.test.BaseJUnit4ClassRunner;
13 import org.chromium.base.test.util.DoNotBatch;
14 import org.chromium.base.test.util.HistogramWatcher;
15 
16 /**
17  * Tests the {@link HistogramWatcher} test util with a transition to native.
18  *
19  * The transition is significant because the first histogram snapshot is taken through
20  * CachingUmaRecorder, but the second is taken through NativeUmaRecorder, triggering the more
21  * complex logic to calculate a delta with different bucket sizes.
22  */
23 @RunWith(BaseJUnit4ClassRunner.class)
24 @DoNotBatch(reason = "Requires loading native at specific times")
25 public class HistogramWatcherTransitionToNativeTest extends HistogramWatcherTestBase {
26     @Test
27     @MediumTest
testSingleRecordMissing_failure()28     public void testSingleRecordMissing_failure() {
29         doTestSingleRecordMissing_failure(TestScenario.TRANSITION_TO_NATIVE);
30     }
31 
32     @Test
33     @MediumTest
testFourTimesHistograms_success()34     public void testFourTimesHistograms_success() {
35         doTestFourTimesHistograms_success(TestScenario.TRANSITION_TO_NATIVE);
36     }
37 
38     @Test
39     @MediumTest
testExtraRecord_failure()40     public void testExtraRecord_failure() {
41         doTestExtraRecord_failure(TestScenario.TRANSITION_TO_NATIVE);
42     }
43 
44     @Test
45     @MediumTest
testExtraRecordAllowed_success()46     public void testExtraRecordAllowed_success() {
47         doTestExtraRecordAllowed_success(TestScenario.TRANSITION_TO_NATIVE);
48     }
49 
50     @Test
51     @MediumTest
testExtraRecordAllowed_failure()52     public void testExtraRecordAllowed_failure() {
53         doTestExtraRecordAllowed_failure(TestScenario.TRANSITION_TO_NATIVE);
54     }
55 
56     @Test
57     @MediumTest
testMissingRecord_failure()58     public void testMissingRecord_failure() {
59         doTestMissingLastRecord_failure(TestScenario.TRANSITION_TO_NATIVE);
60     }
61 
62     @Test
63     @MediumTest
testExpectNoRecords_failure()64     public void testExpectNoRecords_failure() {
65         doTestExpectNoRecords_failure(TestScenario.TRANSITION_TO_NATIVE);
66     }
67 
68     @Test
69     @MediumTest
testExpectAnyRecords_missing_failure()70     public void testExpectAnyRecords_missing_failure() {
71         doTestExpectAnyRecords_missing_failure(TestScenario.TRANSITION_TO_NATIVE);
72     }
73 
74     @Test
75     @MediumTest
testExpectAnyRecords_extras_failure()76     public void testExpectAnyRecords_extras_failure() {
77         doTestExpectAnyRecords_extras_failure(TestScenario.TRANSITION_TO_NATIVE);
78     }
79 
80     @Test
81     @MediumTest
testExpectAnyRecords_success()82     public void testExpectAnyRecords_success() {
83         doTestExpectAnyRecords_success(TestScenario.TRANSITION_TO_NATIVE);
84     }
85 
86     @Test
87     @MediumTest
testMultipleHistograms_success()88     public void testMultipleHistograms_success() {
89         doTestMultipleHistograms_success(TestScenario.TRANSITION_TO_NATIVE);
90     }
91 
92     @Test
93     @MediumTest
testMultipleHistograms_failure()94     public void testMultipleHistograms_failure() {
95         doTestMultipleHistograms_failure(TestScenario.TRANSITION_TO_NATIVE);
96     }
97 
98     @Test
99     @MediumTest
testIgnoreOtherHistograms_success()100     public void testIgnoreOtherHistograms_success() {
101         doTestIgnoreOtherHistograms_success(TestScenario.TRANSITION_TO_NATIVE);
102     }
103 
104     @Test
105     @MediumTest
testMissingFirstRecord_failure()106     public void testMissingFirstRecord_failure() {
107         doTestMissingFirstRecord_failure(TestScenario.TRANSITION_TO_NATIVE);
108     }
109 
110     @Test
111     @MediumTest
testMissingMiddleRecord_failure()112     public void testMissingMiddleRecord_failure() {
113         doTestMissingMiddleRecord_failure(TestScenario.TRANSITION_TO_NATIVE);
114     }
115 }
116