Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 544cfa0e authored by Caitlin Shkuratov's avatar Caitlin Shkuratov
Browse files

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
parent d2c910b4
Loading
Loading
Loading
Loading
+3 −17
Original line number Diff line number Diff line
@@ -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,
+2 −2
Original line number Diff line number Diff line
@@ -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(),
            )
    }

+3 −1
Original line number Diff line number Diff line
@@ -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() {
+5 −6
Original line number Diff line number Diff line
@@ -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 =
+4 −10
Original line number Diff line number Diff line
@@ -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()
Loading