From 544cfa0eb01ac28367a8fa893b0e93ad51eda394 Mon Sep 17 00:00:00 2001 From: Caitlin Shkuratov Date: Tue, 3 Sep 2024 19:23:58 +0000 Subject: Add helpers for TableLogBuffer + TableLogBufferFactory for tests. 1) Adds Kosmos.tableLogBufferFactory and uses it in tests. 2) Adds a helper method to create real TableLogBuffers with just a name and either a Kosmos instance or a SystemClock instance. Bug: 360832989 Flag: TEST_ONLY Test: atest TableLogBufferFactoryTest LogDiffsForTableTest FullMobileConnectionRepositoryTest (+ other tests) Change-Id: I1ebd119c15b018dc74f0200369f693cff0676732 --- .../DeviceEntryFaceAuthRepositoryTest.kt | 20 ++---------- .../systemui/log/table/LogDiffsForTableTest.kt | 4 +-- .../log/table/TableLogBufferFactoryTest.kt | 4 ++- .../repository/MobileRepositorySwitcherTest.kt | 11 +++---- .../demo/DemoMobileConnectionParameterizedTest.kt | 14 +++------ .../demo/DemoMobileConnectionsRepositoryTest.kt | 15 +++------ .../prod/FullMobileConnectionRepositoryTest.kt | 35 +++++---------------- .../domain/interactor/MobileIconsInteractorTest.kt | 14 +++------ .../log/table/TableLogBufferFactoryKosmos.kt | 31 +++++++++++++++++++ .../systemui/log/table/TableLogBufferHelper.kt | 36 ++++++++++++++++++++++ 10 files changed, 101 insertions(+), 83 deletions(-) create mode 100644 packages/SystemUI/tests/utils/src/com/android/systemui/log/table/TableLogBufferFactoryKosmos.kt create mode 100644 packages/SystemUI/tests/utils/src/com/android/systemui/log/table/TableLogBufferHelper.kt diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/deviceentry/data/repository/DeviceEntryFaceAuthRepositoryTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/deviceentry/data/repository/DeviceEntryFaceAuthRepositoryTest.kt index a8fedd40730e..71abed78e557 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/deviceentry/data/repository/DeviceEntryFaceAuthRepositoryTest.kt +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/deviceentry/data/repository/DeviceEntryFaceAuthRepositoryTest.kt @@ -75,7 +75,7 @@ import com.android.systemui.kosmos.testScope import com.android.systemui.log.FaceAuthenticationLogger import com.android.systemui.log.SessionTracker import com.android.systemui.log.logcatLogBuffer -import com.android.systemui.log.table.TableLogBuffer +import com.android.systemui.log.table.logcatTableLogBuffer import com.android.systemui.power.domain.interactor.PowerInteractor.Companion.setAsleepForTest import com.android.systemui.power.domain.interactor.PowerInteractor.Companion.setAwakeForTest import com.android.systemui.power.domain.interactor.powerInteractor @@ -90,7 +90,6 @@ import com.android.systemui.util.mockito.KotlinArgumentCaptor import com.android.systemui.util.mockito.captureMany import com.android.systemui.util.mockito.mock import com.android.systemui.util.mockito.whenever -import com.android.systemui.util.time.FakeSystemClock import com.google.common.truth.Truth.assertThat import java.io.PrintWriter import java.io.StringWriter @@ -199,21 +198,8 @@ class DeviceEntryFaceAuthRepositoryTest : SysuiTestCase() { fmOverride: FaceManager? = faceManager, bypassControllerOverride: KeyguardBypassController? = bypassController ): DeviceEntryFaceAuthRepositoryImpl { - val systemClock = FakeSystemClock() - val faceAuthBuffer = - TableLogBuffer( - 10, - "face auth", - systemClock, - mock(), - ) - val faceDetectBuffer = - TableLogBuffer( - 10, - "face detect", - systemClock, - mock(), - ) + val faceAuthBuffer = logcatTableLogBuffer(kosmos, "face auth") + val faceDetectBuffer = logcatTableLogBuffer(kosmos, "face detect") return DeviceEntryFaceAuthRepositoryImpl( mContext, diff --git a/packages/SystemUI/tests/src/com/android/systemui/log/table/LogDiffsForTableTest.kt b/packages/SystemUI/tests/src/com/android/systemui/log/table/LogDiffsForTableTest.kt index caa46baf318b..030b1726bb73 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/log/table/LogDiffsForTableTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/log/table/LogDiffsForTableTest.kt @@ -19,8 +19,8 @@ package com.android.systemui.log.table import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase +import com.android.systemui.log.LogcatEchoTrackerAlways import com.android.systemui.log.table.TableChange.Companion.IS_INITIAL_PREFIX -import com.android.systemui.util.mockito.mock import com.android.systemui.util.time.FakeSystemClock import com.google.common.truth.Truth.assertThat import java.io.PrintWriter @@ -57,7 +57,7 @@ class LogDiffsForTableTest : SysuiTestCase() { MAX_SIZE, BUFFER_NAME, systemClock, - mock(), + LogcatEchoTrackerAlways(), ) } diff --git a/packages/SystemUI/tests/src/com/android/systemui/log/table/TableLogBufferFactoryTest.kt b/packages/SystemUI/tests/src/com/android/systemui/log/table/TableLogBufferFactoryTest.kt index 8774f19d9aad..dfd964f0eaa7 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/log/table/TableLogBufferFactoryTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/log/table/TableLogBufferFactoryTest.kt @@ -20,6 +20,7 @@ import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase import com.android.systemui.dump.DumpManager +import com.android.systemui.log.LogcatEchoTrackerAlways import com.android.systemui.util.time.FakeSystemClock import com.google.common.truth.Truth.assertThat import org.junit.Test @@ -31,7 +32,8 @@ import org.mockito.kotlin.mock class TableLogBufferFactoryTest : SysuiTestCase() { private val dumpManager: DumpManager = mock() private val systemClock = FakeSystemClock() - private val underTest = TableLogBufferFactory(dumpManager, systemClock, mock()) + private val underTest = + TableLogBufferFactory(dumpManager, systemClock, LogcatEchoTrackerAlways()) @Test fun create_alwaysCreatesNewInstance() { diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/MobileRepositorySwitcherTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/MobileRepositorySwitcherTest.kt index 83f4b7adefd0..36f5236c3936 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/MobileRepositorySwitcherTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/MobileRepositorySwitcherTest.kt @@ -27,7 +27,7 @@ import com.android.systemui.demomode.DemoMode import com.android.systemui.demomode.DemoModeController import com.android.systemui.dump.DumpManager import com.android.systemui.log.table.TableLogBuffer -import com.android.systemui.log.table.TableLogBufferFactory +import com.android.systemui.log.table.tableLogBufferFactory import com.android.systemui.statusbar.pipeline.airplane.data.repository.FakeAirplaneModeRepository import com.android.systemui.statusbar.pipeline.mobile.data.MobileInputLogger import com.android.systemui.statusbar.pipeline.mobile.data.model.SubscriptionModel @@ -42,11 +42,11 @@ import com.android.systemui.statusbar.pipeline.shared.data.repository.Connectivi import com.android.systemui.statusbar.pipeline.shared.data.repository.FakeConnectivityRepository import com.android.systemui.statusbar.pipeline.wifi.data.repository.FakeWifiRepository import com.android.systemui.statusbar.pipeline.wifi.data.repository.demo.DemoModeWifiDataSource +import com.android.systemui.testKosmos import com.android.systemui.util.mockito.any import com.android.systemui.util.mockito.kotlinArgumentCaptor import com.android.systemui.util.mockito.mock import com.android.systemui.util.mockito.whenever -import com.android.systemui.util.time.FakeSystemClock import com.google.common.truth.Truth.assertThat import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers @@ -74,12 +74,13 @@ import org.mockito.MockitoAnnotations @SmallTest @RunWith(AndroidJUnit4::class) class MobileRepositorySwitcherTest : SysuiTestCase() { + private val kosmos = testKosmos() + private lateinit var underTest: MobileRepositorySwitcher private lateinit var realRepo: MobileConnectionsRepositoryImpl private lateinit var demoRepo: DemoMobileConnectionsRepository private lateinit var mobileDataSource: DemoModeMobileConnectionDataSource private lateinit var wifiDataSource: DemoModeWifiDataSource - private lateinit var logFactory: TableLogBufferFactory private lateinit var wifiRepository: FakeWifiRepository private lateinit var connectivityRepository: ConnectivityRepository @@ -100,8 +101,6 @@ class MobileRepositorySwitcherTest : SysuiTestCase() { fun setUp() { MockitoAnnotations.initMocks(this) - logFactory = TableLogBufferFactory(dumpManager, FakeSystemClock(), mock()) - // Never start in demo mode whenever(demoModeController.isInDemoMode).thenReturn(false) @@ -144,7 +143,7 @@ class MobileRepositorySwitcherTest : SysuiTestCase() { wifiDataSource = wifiDataSource, scope = scope, context = context, - logFactory = logFactory, + logFactory = kosmos.tableLogBufferFactory, ) underTest = diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/demo/DemoMobileConnectionParameterizedTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/demo/DemoMobileConnectionParameterizedTest.kt index 11d5d072b5e9..7d320212750f 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/demo/DemoMobileConnectionParameterizedTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/demo/DemoMobileConnectionParameterizedTest.kt @@ -23,16 +23,16 @@ import androidx.test.filters.SmallTest import com.android.settingslib.SignalIcon import com.android.settingslib.mobile.TelephonyIcons import com.android.systemui.SysuiTestCase -import com.android.systemui.log.table.TableLogBufferFactory +import com.android.systemui.log.table.tableLogBufferFactory import com.android.systemui.statusbar.pipeline.mobile.data.model.DataConnectionState import com.android.systemui.statusbar.pipeline.mobile.data.model.NetworkNameModel import com.android.systemui.statusbar.pipeline.mobile.data.repository.demo.model.FakeNetworkEventModel import com.android.systemui.statusbar.pipeline.shared.data.model.toMobileDataActivityModel import com.android.systemui.statusbar.pipeline.wifi.data.repository.demo.DemoModeWifiDataSource import com.android.systemui.statusbar.pipeline.wifi.data.repository.demo.model.FakeWifiEventModel +import com.android.systemui.testKosmos import com.android.systemui.util.mockito.mock import com.android.systemui.util.mockito.whenever -import com.android.systemui.util.time.FakeSystemClock import com.google.common.truth.Truth.assertThat import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.Job @@ -59,17 +59,11 @@ import platform.test.runner.parameterized.Parameters @RunWith(ParameterizedAndroidJunit4::class) internal class DemoMobileConnectionParameterizedTest(private val testCase: TestCase) : SysuiTestCase() { + private val kosmos = testKosmos() private val testDispatcher = UnconfinedTestDispatcher() private val testScope = TestScope(testDispatcher) - private val logFactory = - TableLogBufferFactory( - mock(), - FakeSystemClock(), - mock(), - ) - private val fakeNetworkEventFlow = MutableStateFlow(null) private val fakeWifiEventFlow = MutableStateFlow(null) @@ -96,7 +90,7 @@ internal class DemoMobileConnectionParameterizedTest(private val testCase: TestC wifiDataSource = mockWifiDataSource, scope = testScope.backgroundScope, context = context, - logFactory = logFactory, + logFactory = kosmos.tableLogBufferFactory, ) connectionsRepo.startProcessingCommands() diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/demo/DemoMobileConnectionsRepositoryTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/demo/DemoMobileConnectionsRepositoryTest.kt index e08d105eb49d..5017dda88d3b 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/demo/DemoMobileConnectionsRepositoryTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/demo/DemoMobileConnectionsRepositoryTest.kt @@ -24,8 +24,7 @@ import androidx.test.filters.SmallTest import com.android.settingslib.SignalIcon import com.android.settingslib.mobile.TelephonyIcons.THREE_G import com.android.systemui.SysuiTestCase -import com.android.systemui.dump.DumpManager -import com.android.systemui.log.table.TableLogBufferFactory +import com.android.systemui.log.table.tableLogBufferFactory import com.android.systemui.statusbar.pipeline.mobile.data.model.DataConnectionState import com.android.systemui.statusbar.pipeline.mobile.data.model.NetworkNameModel import com.android.systemui.statusbar.pipeline.mobile.data.model.SubscriptionModel @@ -34,9 +33,9 @@ import com.android.systemui.statusbar.pipeline.mobile.data.repository.demo.model import com.android.systemui.statusbar.pipeline.shared.data.model.toMobileDataActivityModel import com.android.systemui.statusbar.pipeline.wifi.data.repository.demo.DemoModeWifiDataSource import com.android.systemui.statusbar.pipeline.wifi.data.repository.demo.model.FakeWifiEventModel +import com.android.systemui.testKosmos import com.android.systemui.util.mockito.mock import com.android.systemui.util.mockito.whenever -import com.android.systemui.util.time.FakeSystemClock import com.google.common.truth.Truth.assertThat import junit.framework.Assert import kotlinx.coroutines.ExperimentalCoroutinesApi @@ -56,19 +55,13 @@ import org.junit.runner.RunWith @SmallTest @RunWith(AndroidJUnit4::class) class DemoMobileConnectionsRepositoryTest : SysuiTestCase() { - private val dumpManager: DumpManager = mock() + private val kosmos = testKosmos() private val testDispatcher = UnconfinedTestDispatcher() private val testScope = TestScope(testDispatcher) private val fakeNetworkEventFlow = MutableStateFlow(null) private val fakeWifiEventFlow = MutableStateFlow(null) - private val logFactory = - TableLogBufferFactory( - dumpManager, - FakeSystemClock(), - mock(), - ) private lateinit var underTest: DemoMobileConnectionsRepository private lateinit var mobileDataSource: DemoModeMobileConnectionDataSource @@ -92,7 +85,7 @@ class DemoMobileConnectionsRepositoryTest : SysuiTestCase() { wifiDataSource = wifiDataSource, scope = testScope.backgroundScope, context = context, - logFactory = logFactory, + logFactory = kosmos.tableLogBufferFactory, ) underTest.startProcessingCommands() diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/FullMobileConnectionRepositoryTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/FullMobileConnectionRepositoryTest.kt index 40b841f621c6..c02985057b86 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/FullMobileConnectionRepositoryTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/FullMobileConnectionRepositoryTest.kt @@ -29,8 +29,8 @@ import com.android.systemui.SysuiTestCase import com.android.systemui.coroutines.collectLastValue import com.android.systemui.flags.FakeFeatureFlagsClassic import com.android.systemui.flags.Flags.ROAMING_INDICATOR_VIA_DISPLAY_INFO -import com.android.systemui.log.table.TableLogBuffer -import com.android.systemui.log.table.TableLogBufferFactory +import com.android.systemui.log.table.logcatTableLogBuffer +import com.android.systemui.log.table.tableLogBufferFactory import com.android.systemui.statusbar.pipeline.mobile.data.model.NetworkNameModel import com.android.systemui.statusbar.pipeline.mobile.data.model.SubscriptionModel import com.android.systemui.statusbar.pipeline.mobile.data.model.SystemUiCarrierConfig @@ -42,11 +42,11 @@ import com.android.systemui.statusbar.pipeline.mobile.data.repository.prod.FullM import com.android.systemui.statusbar.pipeline.mobile.data.repository.prod.MobileTelephonyHelpers.getTelephonyCallbackForType import com.android.systemui.statusbar.pipeline.wifi.data.repository.FakeWifiRepository import com.android.systemui.statusbar.pipeline.wifi.shared.model.WifiNetworkModel +import com.android.systemui.testKosmos import com.android.systemui.util.mockito.any import com.android.systemui.util.mockito.eq import com.android.systemui.util.mockito.mock import com.android.systemui.util.mockito.whenever -import com.android.systemui.util.time.FakeSystemClock import com.google.common.truth.Truth.assertThat import java.io.PrintWriter import java.io.StringWriter @@ -73,21 +73,16 @@ import org.mockito.Mockito.verify @SmallTest @RunWith(AndroidJUnit4::class) class FullMobileConnectionRepositoryTest : SysuiTestCase() { + private val kosmos = testKosmos() + private lateinit var underTest: FullMobileConnectionRepository private val flags = FakeFeatureFlagsClassic().also { it.set(ROAMING_INDICATOR_VIA_DISPLAY_INFO, true) } - private val systemClock = FakeSystemClock() private val testDispatcher = UnconfinedTestDispatcher() private val testScope = TestScope(testDispatcher) - private val tableLogBuffer = - TableLogBuffer( - maxSize = 100, - name = "TestName", - systemClock, - mock(), - ) + private val tableLogBuffer = logcatTableLogBuffer(kosmos, "TestName") private val mobileFactory = mock() private val carrierMergedFactory = mock() private val connectivityManager = mock() @@ -370,17 +365,10 @@ class FullMobileConnectionRepositoryTest : SysuiTestCase() { @Test fun factory_reusesLogBuffersForSameConnection() = testScope.runTest { - val realLoggerFactory = - TableLogBufferFactory( - mock(), - FakeSystemClock(), - mock(), - ) - val factory = FullMobileConnectionRepository.Factory( scope = testScope.backgroundScope, - realLoggerFactory, + kosmos.tableLogBufferFactory, mobileFactory, carrierMergedFactory, ) @@ -412,17 +400,10 @@ class FullMobileConnectionRepositoryTest : SysuiTestCase() { @Test fun factory_reusesLogBuffersForSameSubIDevenIfCarrierMerged() = testScope.runTest { - val realLoggerFactory = - TableLogBufferFactory( - mock(), - FakeSystemClock(), - mock(), - ) - val factory = FullMobileConnectionRepository.Factory( scope = testScope.backgroundScope, - realLoggerFactory, + kosmos.tableLogBufferFactory, mobileFactory, carrierMergedFactory, ) diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/domain/interactor/MobileIconsInteractorTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/domain/interactor/MobileIconsInteractorTest.kt index 5aec91dd3628..f6d439ab2639 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/domain/interactor/MobileIconsInteractorTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/domain/interactor/MobileIconsInteractorTest.kt @@ -28,7 +28,7 @@ import com.android.systemui.SysuiTestCase import com.android.systemui.coroutines.collectLastValue import com.android.systemui.flags.FakeFeatureFlagsClassic import com.android.systemui.flags.Flags -import com.android.systemui.log.table.TableLogBuffer +import com.android.systemui.log.table.logcatTableLogBuffer import com.android.systemui.statusbar.pipeline.mobile.data.model.SubscriptionModel import com.android.systemui.statusbar.pipeline.mobile.data.repository.FakeMobileConnectionRepository import com.android.systemui.statusbar.pipeline.mobile.data.repository.FakeMobileConnectionsRepository @@ -36,10 +36,10 @@ import com.android.systemui.statusbar.pipeline.mobile.util.FakeMobileMappingsPro import com.android.systemui.statusbar.pipeline.shared.data.model.ConnectivitySlot import com.android.systemui.statusbar.pipeline.shared.data.repository.FakeConnectivityRepository import com.android.systemui.statusbar.policy.data.repository.FakeUserSetupRepository +import com.android.systemui.testKosmos import com.android.systemui.util.CarrierConfigTracker import com.android.systemui.util.mockito.mock import com.android.systemui.util.mockito.whenever -import com.android.systemui.util.time.FakeSystemClock import com.google.common.truth.Truth.assertThat import java.util.UUID import kotlinx.coroutines.ExperimentalCoroutinesApi @@ -58,6 +58,8 @@ import org.mockito.MockitoAnnotations @SmallTest @RunWith(AndroidJUnit4::class) class MobileIconsInteractorTest : SysuiTestCase() { + private val kosmos = testKosmos() + private lateinit var underTest: MobileIconsInteractor private lateinit var connectivityRepository: FakeConnectivityRepository private lateinit var connectionsRepository: FakeMobileConnectionsRepository @@ -71,13 +73,7 @@ class MobileIconsInteractorTest : SysuiTestCase() { private val testDispatcher = StandardTestDispatcher() private val testScope = TestScope(testDispatcher) - private val tableLogBuffer = - TableLogBuffer( - 8, - "MobileIconsInteractorTest", - FakeSystemClock(), - mock(), - ) + private val tableLogBuffer = logcatTableLogBuffer(kosmos, "MobileIconsInteractorTest") @Mock private lateinit var carrierConfigTracker: CarrierConfigTracker diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/log/table/TableLogBufferFactoryKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/log/table/TableLogBufferFactoryKosmos.kt new file mode 100644 index 000000000000..c55dc6a4f2ea --- /dev/null +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/log/table/TableLogBufferFactoryKosmos.kt @@ -0,0 +1,31 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.log.table + +import com.android.systemui.dump.dumpManager +import com.android.systemui.kosmos.Kosmos +import com.android.systemui.log.LogcatEchoTrackerAlways +import com.android.systemui.util.time.fakeSystemClock + +val Kosmos.tableLogBufferFactory: TableLogBufferFactory by + Kosmos.Fixture { + TableLogBufferFactory( + dumpManager = dumpManager, + systemClock = fakeSystemClock, + logcatEchoTracker = LogcatEchoTrackerAlways(), + ) + } diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/log/table/TableLogBufferHelper.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/log/table/TableLogBufferHelper.kt new file mode 100644 index 000000000000..64c3974ed37a --- /dev/null +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/log/table/TableLogBufferHelper.kt @@ -0,0 +1,36 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.log.table + +import com.android.systemui.kosmos.Kosmos +import com.android.systemui.log.LogcatEchoTrackerAlways +import com.android.systemui.util.time.SystemClock +import com.android.systemui.util.time.fakeSystemClock + +/** + * Creates a [TableLogBuffer] that will echo everything to logcat, which is useful for debugging + * tests. + */ +fun logcatTableLogBuffer(kosmos: Kosmos, name: String = "EchoToLogcatTableLogBuffer") = + logcatTableLogBuffer(kosmos.fakeSystemClock, name) + +/** + * Creates a [TableLogBuffer] that will echo everything to logcat, which is useful for debugging + * tests. + */ +fun logcatTableLogBuffer(systemClock: SystemClock, name: String = "EchoToLogcatTableLogBuffer") = + TableLogBuffer(maxSize = 50, name, systemClock, logcatEchoTracker = LogcatEchoTrackerAlways()) -- cgit v1.2.3-59-g8ed1b