diff options
| author | 2024-09-03 19:23:58 +0000 | |
|---|---|---|
| committer | 2024-09-03 20:30:57 +0000 | |
| commit | 544cfa0eb01ac28367a8fa893b0e93ad51eda394 (patch) | |
| tree | 17337d48cfad5c46dd02a9fe55c68d029c4e8672 | |
| parent | d2c910b4240c7a970ce352e532e82e7265322c03 (diff) | |
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
10 files changed, 101 insertions, 83 deletions
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<FakeNetworkEventModel?>(null) private val fakeWifiEventFlow = MutableStateFlow<FakeWifiEventModel?>(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<FakeNetworkEventModel?>(null) private val fakeWifiEventFlow = MutableStateFlow<FakeWifiEventModel?>(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<MobileConnectionRepositoryImpl.Factory>() private val carrierMergedFactory = mock<CarrierMergedConnectionRepository.Factory>() private val connectivityManager = mock<ConnectivityManager>() @@ -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()) |