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

Commit 5877916a authored by Chiachang Wang's avatar Chiachang Wang
Browse files

Prevent wtf crash test app

TcpSocketTrackerTest will need to verify some unexpected cases
work as intended or not. In these cases, module may log wtf log.
However, AM will crash application if wtf log is found in eng
build. Test will fail due to test app crashed. Thus, set the
wtf handler in test to Log.e to prevent it.

Bug: 146909385
Test: atest NetworkStackTests:\
com.android.networkstack.netlink.TcpSocketTrackerTest#testPollSocketsInfo_BadFormat
in eng build
Test: atest NetworkStackNextTests:\
com.android.networkstack.netlink.TcpSocketTrackerTest#testPollSocketsInfo_BadFormat
in eng build

Change-Id: I12f4125496f58fc8a47b124b4a47de6c2d0a386b
parent 7b60bfa1
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -38,6 +38,8 @@ import android.net.INetd;
import android.net.MarkMaskParcel;
import android.net.Network;
import android.net.netlink.StructNlMsgHdr;
import android.util.Log;
import android.util.Log.TerribleFailureHandler;

import androidx.test.filters.SmallTest;
import androidx.test.runner.AndroidJUnit4;
@@ -198,9 +200,15 @@ public class TcpSocketTrackerTest {
    @Mock private INetd mNetd;
    private MockitoSession mSession;
    @Mock NetworkShim mNetworkShim;
    private TerribleFailureHandler mOldWtfHandler;

    @Before
    public void setUp() throws Exception {
        MockitoAnnotations.initMocks(this);
        // Override the default TerribleFailureHandler, as that handler might terminate the process
        // (if we're on an eng build).
        mOldWtfHandler =
                Log.setWtfHandler((tag, what, system) -> Log.e(tag, what.getMessage(), what));
        when(mDependencies.getNetd()).thenReturn(mNetd);
        when(mDependencies.isTcpInfoParsingSupported()).thenReturn(true);
        when(mDependencies.connectToKernel()).thenReturn(mMockFd);
@@ -222,6 +230,7 @@ public class TcpSocketTrackerTest {
    @After
    public void tearDown() {
        mSession.finishMocking();
        Log.setWtfHandler(mOldWtfHandler);
    }

    private MarkMaskParcel makeMarkMaskParcel(final int mask, final int mark) {