Fix EthernetTetheringTest failure if tethering is not supported

Do not run ethernet tethering tests if tethering is not supported
because Tethering APIs would fail. Also skip the test if
EthernetManager is not avaliable. EthernetManager would be null if
there are no FEATURE_ETHERNET and FEATURE_USB_HOST.

Bug: 159869957
Test: atest CtsTetheringTest
Change-Id: I2b9be6799c6edeefc8cd74897a8704dbe80dd061
This commit is contained in:
markchien
2020-07-10 16:57:50 +08:00
parent cdf6b4202c
commit 45fb1aae66

View File

@@ -101,17 +101,21 @@ public class EthernetTetheringTest {
private UiAutomation mUiAutomation = private UiAutomation mUiAutomation =
InstrumentationRegistry.getInstrumentation().getUiAutomation(); InstrumentationRegistry.getInstrumentation().getUiAutomation();
private boolean mRunTests;
@Before @Before
public void setUp() throws Exception { public void setUp() throws Exception {
mHandlerThread = new HandlerThread(getClass().getSimpleName());
mHandlerThread.start();
mHandler = new Handler(mHandlerThread.getLooper());
mTetheredInterfaceRequester = new TetheredInterfaceRequester(mHandler, mEm);
// Needed to create a TestNetworkInterface, to call requestTetheredInterface, and to receive // Needed to create a TestNetworkInterface, to call requestTetheredInterface, and to receive
// tethered client callbacks. // tethered client callbacks.
mUiAutomation.adoptShellPermissionIdentity( mUiAutomation.adoptShellPermissionIdentity(
MANAGE_TEST_NETWORKS, NETWORK_SETTINGS, TETHER_PRIVILEGED); MANAGE_TEST_NETWORKS, NETWORK_SETTINGS, TETHER_PRIVILEGED);
mRunTests = mTm.isTetheringSupported() && mEm != null;
assumeTrue(mRunTests);
mHandlerThread = new HandlerThread(getClass().getSimpleName());
mHandlerThread.start();
mHandler = new Handler(mHandlerThread.getLooper());
mTetheredInterfaceRequester = new TetheredInterfaceRequester(mHandler, mEm);
} }
private void cleanUp() throws Exception { private void cleanUp() throws Exception {
@@ -135,7 +139,7 @@ public class EthernetTetheringTest {
@After @After
public void tearDown() throws Exception { public void tearDown() throws Exception {
try { try {
cleanUp(); if (mRunTests) cleanUp();
} finally { } finally {
mUiAutomation.dropShellPermissionIdentity(); mUiAutomation.dropShellPermissionIdentity();
} }