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