Add some tests for packet wakeup logging changes
Cellular networks are now supported for marking wakeup packets. As a result onWakeupEvent now also reports data relevant to the cell transport. These unit tests should add coverage for these new behaviors. Test: atest FrameworksNetTests Bug: 276498460 Change-Id: I0b8a03fff6255e067b736f3dbfb53de56420f90b
This commit is contained in:
@@ -7919,7 +7919,8 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
return captivePortalBuilder.build();
|
return captivePortalBuilder.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
private String makeNflogPrefix(String iface, long networkHandle) {
|
@VisibleForTesting
|
||||||
|
static String makeNflogPrefix(String iface, long networkHandle) {
|
||||||
// This needs to be kept in sync and backwards compatible with the decoding logic in
|
// This needs to be kept in sync and backwards compatible with the decoding logic in
|
||||||
// NetdEventListenerService, which is non-mainline code.
|
// NetdEventListenerService, which is non-mainline code.
|
||||||
return SdkLevel.isAtLeastU() ? (networkHandle + ":" + iface) : ("iface:" + iface);
|
return SdkLevel.isAtLeastU() ? (networkHandle + ":" + iface) : ("iface:" + iface);
|
||||||
|
|||||||
@@ -154,6 +154,7 @@ import static com.android.server.ConnectivityService.PREFERENCE_ORDER_OEM;
|
|||||||
import static com.android.server.ConnectivityService.PREFERENCE_ORDER_PROFILE;
|
import static com.android.server.ConnectivityService.PREFERENCE_ORDER_PROFILE;
|
||||||
import static com.android.server.ConnectivityService.PREFERENCE_ORDER_VPN;
|
import static com.android.server.ConnectivityService.PREFERENCE_ORDER_VPN;
|
||||||
import static com.android.server.ConnectivityService.createDeliveryGroupKeyForConnectivityAction;
|
import static com.android.server.ConnectivityService.createDeliveryGroupKeyForConnectivityAction;
|
||||||
|
import static com.android.server.ConnectivityService.makeNflogPrefix;
|
||||||
import static com.android.server.ConnectivityServiceTestUtils.transportToLegacyType;
|
import static com.android.server.ConnectivityServiceTestUtils.transportToLegacyType;
|
||||||
import static com.android.server.NetworkAgentWrapper.CallbackType.OnQosCallbackRegister;
|
import static com.android.server.NetworkAgentWrapper.CallbackType.OnQosCallbackRegister;
|
||||||
import static com.android.server.NetworkAgentWrapper.CallbackType.OnQosCallbackUnregister;
|
import static com.android.server.NetworkAgentWrapper.CallbackType.OnQosCallbackUnregister;
|
||||||
@@ -533,6 +534,10 @@ public class ConnectivityServiceTest {
|
|||||||
private static final int TEST_PACKAGE_UID = 123;
|
private static final int TEST_PACKAGE_UID = 123;
|
||||||
private static final int TEST_PACKAGE_UID2 = 321;
|
private static final int TEST_PACKAGE_UID2 = 321;
|
||||||
private static final int TEST_PACKAGE_UID3 = 456;
|
private static final int TEST_PACKAGE_UID3 = 456;
|
||||||
|
|
||||||
|
private static final int PACKET_WAKEUP_MASK = 0xffff0000;
|
||||||
|
private static final int PACKET_WAKEUP_MARK = 0x88880000;
|
||||||
|
|
||||||
private static final String ALWAYS_ON_PACKAGE = "com.android.test.alwaysonvpn";
|
private static final String ALWAYS_ON_PACKAGE = "com.android.test.alwaysonvpn";
|
||||||
|
|
||||||
private static final String INTERFACE_NAME = "interface";
|
private static final String INTERFACE_NAME = "interface";
|
||||||
@@ -1910,6 +1915,10 @@ public class ConnectivityServiceTest {
|
|||||||
doReturn(0).when(mResources).getInteger(R.integer.config_activelyPreferBadWifi);
|
doReturn(0).when(mResources).getInteger(R.integer.config_activelyPreferBadWifi);
|
||||||
doReturn(true).when(mResources)
|
doReturn(true).when(mResources)
|
||||||
.getBoolean(R.bool.config_cellular_radio_timesharing_capable);
|
.getBoolean(R.bool.config_cellular_radio_timesharing_capable);
|
||||||
|
doReturn(PACKET_WAKEUP_MASK).when(mResources).getInteger(
|
||||||
|
R.integer.config_networkWakeupPacketMask);
|
||||||
|
doReturn(PACKET_WAKEUP_MARK).when(mResources).getInteger(
|
||||||
|
R.integer.config_networkWakeupPacketMark);
|
||||||
}
|
}
|
||||||
|
|
||||||
// ConnectivityServiceDependencies is public to use Mockito.spy
|
// ConnectivityServiceDependencies is public to use Mockito.spy
|
||||||
@@ -10393,6 +10402,16 @@ public class ConnectivityServiceTest {
|
|||||||
return event;
|
return event;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void verifyWakeupModifyInterface(String iface, boolean add) throws RemoteException {
|
||||||
|
if (add) {
|
||||||
|
verify(mMockNetd).wakeupAddInterface(eq(iface), anyString(), anyInt(),
|
||||||
|
anyInt());
|
||||||
|
} else {
|
||||||
|
verify(mMockNetd).wakeupDelInterface(eq(iface), anyString(), anyInt(),
|
||||||
|
anyInt());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private <T> T verifyWithOrder(@Nullable InOrder inOrder, @NonNull T t) {
|
private <T> T verifyWithOrder(@Nullable InOrder inOrder, @NonNull T t) {
|
||||||
if (inOrder != null) {
|
if (inOrder != null) {
|
||||||
return inOrder.verify(t);
|
return inOrder.verify(t);
|
||||||
@@ -10619,6 +10638,11 @@ public class ConnectivityServiceTest {
|
|||||||
clat.interfaceRemoved(CLAT_MOBILE_IFNAME);
|
clat.interfaceRemoved(CLAT_MOBILE_IFNAME);
|
||||||
networkCallback.assertNoCallback();
|
networkCallback.assertNoCallback();
|
||||||
verify(mMockNetd, times(1)).networkRemoveInterface(cellNetId, CLAT_MOBILE_IFNAME);
|
verify(mMockNetd, times(1)).networkRemoveInterface(cellNetId, CLAT_MOBILE_IFNAME);
|
||||||
|
|
||||||
|
if (SdkLevel.isAtLeastU()) {
|
||||||
|
verifyWakeupModifyInterface(CLAT_MOBILE_IFNAME, false);
|
||||||
|
}
|
||||||
|
|
||||||
verifyNoMoreInteractions(mMockNetd);
|
verifyNoMoreInteractions(mMockNetd);
|
||||||
verifyNoMoreInteractions(mClatCoordinator);
|
verifyNoMoreInteractions(mClatCoordinator);
|
||||||
verifyNoMoreInteractions(mMockDnsResolver);
|
verifyNoMoreInteractions(mMockDnsResolver);
|
||||||
@@ -10655,6 +10679,10 @@ public class ConnectivityServiceTest {
|
|||||||
assertRoutesAdded(cellNetId, stackedDefault);
|
assertRoutesAdded(cellNetId, stackedDefault);
|
||||||
verify(mMockNetd, times(1)).networkAddInterface(cellNetId, CLAT_MOBILE_IFNAME);
|
verify(mMockNetd, times(1)).networkAddInterface(cellNetId, CLAT_MOBILE_IFNAME);
|
||||||
|
|
||||||
|
if (SdkLevel.isAtLeastU()) {
|
||||||
|
verifyWakeupModifyInterface(CLAT_MOBILE_IFNAME, true);
|
||||||
|
}
|
||||||
|
|
||||||
// NAT64 prefix is removed. Expect that clat is stopped.
|
// NAT64 prefix is removed. Expect that clat is stopped.
|
||||||
mService.mResolverUnsolEventCallback.onNat64PrefixEvent(makeNat64PrefixEvent(
|
mService.mResolverUnsolEventCallback.onNat64PrefixEvent(makeNat64PrefixEvent(
|
||||||
cellNetId, PREFIX_OPERATION_REMOVED, kNat64PrefixString, 96));
|
cellNetId, PREFIX_OPERATION_REMOVED, kNat64PrefixString, 96));
|
||||||
@@ -10669,6 +10697,11 @@ public class ConnectivityServiceTest {
|
|||||||
cb -> cb.getLp().getStackedLinks().size() == 0);
|
cb -> cb.getLp().getStackedLinks().size() == 0);
|
||||||
verify(mMockNetd, times(1)).networkRemoveInterface(cellNetId, CLAT_MOBILE_IFNAME);
|
verify(mMockNetd, times(1)).networkRemoveInterface(cellNetId, CLAT_MOBILE_IFNAME);
|
||||||
verify(mMockNetd, times(1)).interfaceGetCfg(CLAT_MOBILE_IFNAME);
|
verify(mMockNetd, times(1)).interfaceGetCfg(CLAT_MOBILE_IFNAME);
|
||||||
|
|
||||||
|
if (SdkLevel.isAtLeastU()) {
|
||||||
|
verifyWakeupModifyInterface(CLAT_MOBILE_IFNAME, false);
|
||||||
|
}
|
||||||
|
|
||||||
// Clean up.
|
// Clean up.
|
||||||
mCellAgent.disconnect();
|
mCellAgent.disconnect();
|
||||||
networkCallback.expect(LOST, mCellAgent);
|
networkCallback.expect(LOST, mCellAgent);
|
||||||
@@ -10681,6 +10714,11 @@ public class ConnectivityServiceTest {
|
|||||||
} else {
|
} else {
|
||||||
verify(mMockNetd, never()).setNetworkAllowlist(any());
|
verify(mMockNetd, never()).setNetworkAllowlist(any());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (SdkLevel.isAtLeastU()) {
|
||||||
|
verifyWakeupModifyInterface(MOBILE_IFNAME, false);
|
||||||
|
}
|
||||||
|
|
||||||
verifyNoMoreInteractions(mMockNetd);
|
verifyNoMoreInteractions(mMockNetd);
|
||||||
verifyNoMoreInteractions(mClatCoordinator);
|
verifyNoMoreInteractions(mClatCoordinator);
|
||||||
reset(mMockNetd);
|
reset(mMockNetd);
|
||||||
@@ -10710,6 +10748,11 @@ public class ConnectivityServiceTest {
|
|||||||
verify(mMockNetd).networkAddInterface(cellNetId, CLAT_MOBILE_IFNAME);
|
verify(mMockNetd).networkAddInterface(cellNetId, CLAT_MOBILE_IFNAME);
|
||||||
// assertRoutesAdded sees all calls since last mMockNetd reset, so expect IPv6 routes again.
|
// assertRoutesAdded sees all calls since last mMockNetd reset, so expect IPv6 routes again.
|
||||||
assertRoutesAdded(cellNetId, ipv6Subnet, ipv6Default, stackedDefault);
|
assertRoutesAdded(cellNetId, ipv6Subnet, ipv6Default, stackedDefault);
|
||||||
|
|
||||||
|
if (SdkLevel.isAtLeastU()) {
|
||||||
|
verifyWakeupModifyInterface(MOBILE_IFNAME, true);
|
||||||
|
}
|
||||||
|
|
||||||
reset(mMockNetd);
|
reset(mMockNetd);
|
||||||
reset(mClatCoordinator);
|
reset(mClatCoordinator);
|
||||||
|
|
||||||
@@ -10718,6 +10761,11 @@ public class ConnectivityServiceTest {
|
|||||||
networkCallback.expect(LOST, mCellAgent);
|
networkCallback.expect(LOST, mCellAgent);
|
||||||
networkCallback.assertNoCallback();
|
networkCallback.assertNoCallback();
|
||||||
verifyClatdStop(null /* inOrder */, MOBILE_IFNAME);
|
verifyClatdStop(null /* inOrder */, MOBILE_IFNAME);
|
||||||
|
|
||||||
|
if (SdkLevel.isAtLeastU()) {
|
||||||
|
verifyWakeupModifyInterface(CLAT_MOBILE_IFNAME, false);
|
||||||
|
}
|
||||||
|
|
||||||
verify(mMockNetd).idletimerRemoveInterface(eq(MOBILE_IFNAME), anyInt(),
|
verify(mMockNetd).idletimerRemoveInterface(eq(MOBILE_IFNAME), anyInt(),
|
||||||
eq(Integer.toString(TRANSPORT_CELLULAR)));
|
eq(Integer.toString(TRANSPORT_CELLULAR)));
|
||||||
verify(mMockNetd).networkDestroy(cellNetId);
|
verify(mMockNetd).networkDestroy(cellNetId);
|
||||||
@@ -10726,6 +10774,11 @@ public class ConnectivityServiceTest {
|
|||||||
} else {
|
} else {
|
||||||
verify(mMockNetd, never()).setNetworkAllowlist(any());
|
verify(mMockNetd, never()).setNetworkAllowlist(any());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (SdkLevel.isAtLeastU()) {
|
||||||
|
verifyWakeupModifyInterface(MOBILE_IFNAME, false);
|
||||||
|
}
|
||||||
|
|
||||||
verifyNoMoreInteractions(mMockNetd);
|
verifyNoMoreInteractions(mMockNetd);
|
||||||
verifyNoMoreInteractions(mClatCoordinator);
|
verifyNoMoreInteractions(mClatCoordinator);
|
||||||
|
|
||||||
@@ -17671,4 +17724,48 @@ public class ConnectivityServiceTest {
|
|||||||
info.setExtraInfo("test_info");
|
info.setExtraInfo("test_info");
|
||||||
assertEquals("0;2;test_info", createDeliveryGroupKeyForConnectivityAction(info));
|
assertEquals("0;2;test_info", createDeliveryGroupKeyForConnectivityAction(info));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testNetdWakeupAddInterfaceForWifiTransport() throws Exception {
|
||||||
|
final LinkProperties wifiLp = new LinkProperties();
|
||||||
|
wifiLp.setInterfaceName(WIFI_IFNAME);
|
||||||
|
mWiFiAgent = new TestNetworkAgentWrapper(TRANSPORT_WIFI, wifiLp);
|
||||||
|
mWiFiAgent.connect(false /* validated */);
|
||||||
|
|
||||||
|
final String expectedPrefix = makeNflogPrefix(WIFI_IFNAME,
|
||||||
|
mWiFiAgent.getNetwork().getNetworkHandle());
|
||||||
|
verify(mMockNetd).wakeupAddInterface(WIFI_IFNAME, expectedPrefix, PACKET_WAKEUP_MARK,
|
||||||
|
PACKET_WAKEUP_MASK);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testNetdWakeupAddInterfaceForCellularTransport() throws Exception {
|
||||||
|
final LinkProperties cellLp = new LinkProperties();
|
||||||
|
cellLp.setInterfaceName(MOBILE_IFNAME);
|
||||||
|
mCellAgent = new TestNetworkAgentWrapper(TRANSPORT_CELLULAR, cellLp);
|
||||||
|
mCellAgent.connect(false /* validated */);
|
||||||
|
|
||||||
|
if (SdkLevel.isAtLeastU()) {
|
||||||
|
final String expectedPrefix = makeNflogPrefix(MOBILE_IFNAME,
|
||||||
|
mCellAgent.getNetwork().getNetworkHandle());
|
||||||
|
verify(mMockNetd).wakeupAddInterface(MOBILE_IFNAME, expectedPrefix, PACKET_WAKEUP_MARK,
|
||||||
|
PACKET_WAKEUP_MASK);
|
||||||
|
} else {
|
||||||
|
verify(mMockNetd, never()).wakeupAddInterface(eq(MOBILE_IFNAME), anyString(), anyInt(),
|
||||||
|
anyInt());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testNetdWakeupAddInterfaceForEthernetTransport() throws Exception {
|
||||||
|
final String ethernetIface = "eth42";
|
||||||
|
|
||||||
|
final LinkProperties ethLp = new LinkProperties();
|
||||||
|
ethLp.setInterfaceName(ethernetIface);
|
||||||
|
mEthernetAgent = new TestNetworkAgentWrapper(TRANSPORT_ETHERNET, ethLp);
|
||||||
|
mEthernetAgent.connect(false /* validated */);
|
||||||
|
|
||||||
|
verify(mMockNetd, never()).wakeupAddInterface(eq(ethernetIface), anyString(), anyInt(),
|
||||||
|
anyInt());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ import static com.android.testutils.MiscAsserts.assertStringContains;
|
|||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
import static org.junit.Assert.fail;
|
import static org.junit.Assert.fail;
|
||||||
import static org.mockito.ArgumentMatchers.any;
|
import static org.mockito.ArgumentMatchers.any;
|
||||||
|
import static org.mockito.Mockito.doReturn;
|
||||||
import static org.mockito.Mockito.mock;
|
import static org.mockito.Mockito.mock;
|
||||||
import static org.mockito.Mockito.verify;
|
import static org.mockito.Mockito.verify;
|
||||||
|
|
||||||
@@ -41,6 +42,8 @@ import com.android.server.connectivity.metrics.nano.IpConnectivityLogClass.IpCon
|
|||||||
import com.android.testutils.DevSdkIgnoreRule;
|
import com.android.testutils.DevSdkIgnoreRule;
|
||||||
import com.android.testutils.DevSdkIgnoreRunner;
|
import com.android.testutils.DevSdkIgnoreRunner;
|
||||||
|
|
||||||
|
import libcore.util.EmptyArray;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
@@ -60,7 +63,8 @@ public class NetdEventListenerServiceTest {
|
|||||||
private static final String EXAMPLE_IPV4 = "192.0.2.1";
|
private static final String EXAMPLE_IPV4 = "192.0.2.1";
|
||||||
private static final String EXAMPLE_IPV6 = "2001:db8:1200::2:1";
|
private static final String EXAMPLE_IPV6 = "2001:db8:1200::2:1";
|
||||||
|
|
||||||
private static final long NET_HANDLE = new Network(5391).getNetworkHandle();
|
private static final Network TEST_WIFI_NETWORK = new Network(5391);
|
||||||
|
private static final Network TEST_CELL_NETWORK = new Network(5832);
|
||||||
|
|
||||||
private static final byte[] MAC_ADDR =
|
private static final byte[] MAC_ADDR =
|
||||||
{(byte)0x84, (byte)0xc9, (byte)0xb2, (byte)0x6a, (byte)0xed, (byte)0x4b};
|
{(byte)0x84, (byte)0xc9, (byte)0xb2, (byte)0x6a, (byte)0xed, (byte)0x4b};
|
||||||
@@ -78,6 +82,8 @@ public class NetdEventListenerServiceTest {
|
|||||||
public void setUp() {
|
public void setUp() {
|
||||||
mCm = mock(ConnectivityManager.class);
|
mCm = mock(ConnectivityManager.class);
|
||||||
mService = new NetdEventListenerService(mCm);
|
mService = new NetdEventListenerService(mCm);
|
||||||
|
doReturn(CAPABILITIES_WIFI).when(mCm).getNetworkCapabilities(TEST_WIFI_NETWORK);
|
||||||
|
doReturn(CAPABILITIES_CELL).when(mCm).getNetworkCapabilities(TEST_CELL_NETWORK);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -111,19 +117,25 @@ public class NetdEventListenerServiceTest {
|
|||||||
wakeupEvent(iface, uids[5], v4, tcp, mac, srcIp, dstIp, sport, dport, now);
|
wakeupEvent(iface, uids[5], v4, tcp, mac, srcIp, dstIp, sport, dport, now);
|
||||||
wakeupEvent(iface, uids[6], v6, udp, mac, srcIp6, dstIp6, sport, dport, now);
|
wakeupEvent(iface, uids[6], v6, udp, mac, srcIp6, dstIp6, sport, dport, now);
|
||||||
wakeupEvent(iface, uids[7], v6, tcp, mac, srcIp6, dstIp6, sport, dport, now);
|
wakeupEvent(iface, uids[7], v6, tcp, mac, srcIp6, dstIp6, sport, dport, now);
|
||||||
wakeupEvent(iface, uids[8], v6, udp, mac, srcIp6, dstIp6, sport, dport, now);
|
wakeupEvent("rmnet0", uids[8], v6, udp, EmptyArray.BYTE, srcIp6, dstIp6, sport, dport, now,
|
||||||
|
TEST_CELL_NETWORK);
|
||||||
|
|
||||||
String[] events2 = remove(listNetdEvent(), baseline);
|
String[] events2 = remove(listNetdEvent(), baseline);
|
||||||
int expectedLength2 = uids.length + 1; // +1 for the WakeupStats line
|
int expectedLength2 = uids.length + 2; // +2 for the WakeupStats headers
|
||||||
assertEquals(expectedLength2, events2.length);
|
assertEquals(expectedLength2, events2.length);
|
||||||
|
|
||||||
assertStringContains(events2[0], "WakeupStats");
|
assertStringContains(events2[0], "WakeupStats");
|
||||||
assertStringContains(events2[0], "wlan0");
|
assertStringContains(events2[0], "rmnet0");
|
||||||
assertStringContains(events2[0], "0x800");
|
|
||||||
assertStringContains(events2[0], "0x86dd");
|
assertStringContains(events2[0], "0x86dd");
|
||||||
|
|
||||||
|
assertStringContains(events2[1], "WakeupStats");
|
||||||
|
assertStringContains(events2[1], "wlan0");
|
||||||
|
assertStringContains(events2[1], "0x800");
|
||||||
|
assertStringContains(events2[1], "0x86dd");
|
||||||
for (int i = 0; i < uids.length; i++) {
|
for (int i = 0; i < uids.length; i++) {
|
||||||
String got = events2[i+1];
|
String got = events2[i + 2];
|
||||||
assertStringContains(got, "WakeupEvent");
|
assertStringContains(got, "WakeupEvent");
|
||||||
assertStringContains(got, "wlan0");
|
assertStringContains(got, ((i == 8) ? "rmnet0" : "wlan0"));
|
||||||
assertStringContains(got, "uid: " + uids[i]);
|
assertStringContains(got, "uid: " + uids[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -134,11 +146,13 @@ public class NetdEventListenerServiceTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
String[] events3 = remove(listNetdEvent(), baseline);
|
String[] events3 = remove(listNetdEvent(), baseline);
|
||||||
int expectedLength3 = BUFFER_LENGTH + 1; // +1 for the WakeupStats line
|
int expectedLength3 = BUFFER_LENGTH + 2; // +2 for the WakeupStats headers
|
||||||
assertEquals(expectedLength3, events3.length);
|
assertEquals(expectedLength3, events3.length);
|
||||||
assertStringContains(events2[0], "WakeupStats");
|
assertStringContains(events3[0], "WakeupStats");
|
||||||
assertStringContains(events2[0], "wlan0");
|
assertStringContains(events3[0], "rmnet0");
|
||||||
for (int i = 1; i < expectedLength3; i++) {
|
assertStringContains(events3[1], "WakeupStats");
|
||||||
|
assertStringContains(events3[1], "wlan0");
|
||||||
|
for (int i = 2; i < expectedLength3; i++) {
|
||||||
String got = events3[i];
|
String got = events3[i];
|
||||||
assertStringContains(got, "WakeupEvent");
|
assertStringContains(got, "WakeupEvent");
|
||||||
assertStringContains(got, "wlan0");
|
assertStringContains(got, "wlan0");
|
||||||
@@ -173,19 +187,24 @@ public class NetdEventListenerServiceTest {
|
|||||||
final int icmp6 = 58;
|
final int icmp6 = 58;
|
||||||
|
|
||||||
wakeupEvent("wlan0", 1000, v4, tcp, mac, srcIp, dstIp, sport, dport, now);
|
wakeupEvent("wlan0", 1000, v4, tcp, mac, srcIp, dstIp, sport, dport, now);
|
||||||
wakeupEvent("rmnet0", 10123, v4, tcp, mac, srcIp, dstIp, sport, dport, now);
|
wakeupEvent("rmnet0", 10123, v4, tcp, mac, srcIp, dstIp, sport, dport, now,
|
||||||
|
TEST_CELL_NETWORK);
|
||||||
wakeupEvent("wlan0", 1000, v4, udp, mac, srcIp, dstIp, sport, dport, now);
|
wakeupEvent("wlan0", 1000, v4, udp, mac, srcIp, dstIp, sport, dport, now);
|
||||||
wakeupEvent("rmnet0", 10008, v4, tcp, mac, srcIp, dstIp, sport, dport, now);
|
wakeupEvent("rmnet0", 10008, v4, tcp, EmptyArray.BYTE, srcIp, dstIp, sport, dport, now,
|
||||||
|
TEST_CELL_NETWORK);
|
||||||
wakeupEvent("wlan0", -1, v6, icmp6, mac, srcIp6, dstIp6, sport, dport, now);
|
wakeupEvent("wlan0", -1, v6, icmp6, mac, srcIp6, dstIp6, sport, dport, now);
|
||||||
wakeupEvent("wlan0", 10008, v4, tcp, mac, srcIp, dstIp, sport, dport, now);
|
wakeupEvent("wlan0", 10008, v4, tcp, mac, srcIp, dstIp, sport, dport, now);
|
||||||
wakeupEvent("rmnet0", 1000, v4, tcp, mac, srcIp, dstIp, sport, dport, now);
|
wakeupEvent("rmnet0", 1000, v4, tcp, mac, srcIp, dstIp, sport, dport, now,
|
||||||
|
TEST_CELL_NETWORK);
|
||||||
wakeupEvent("wlan0", 10004, v4, udp, mac, srcIp, dstIp, sport, dport, now);
|
wakeupEvent("wlan0", 10004, v4, udp, mac, srcIp, dstIp, sport, dport, now);
|
||||||
wakeupEvent("wlan0", 1000, v6, tcp, mac, srcIp6, dstIp6, sport, dport, now);
|
wakeupEvent("wlan0", 1000, v6, tcp, mac, srcIp6, dstIp6, sport, dport, now);
|
||||||
wakeupEvent("wlan0", 0, v6, udp, mac, srcIp6, dstIp6, sport, dport, now);
|
wakeupEvent("wlan0", 0, v6, udp, mac, srcIp6, dstIp6, sport, dport, now);
|
||||||
wakeupEvent("wlan0", -1, v6, icmp6, mac, srcIp6, dstIp6, sport, dport, now);
|
wakeupEvent("wlan0", -1, v6, icmp6, mac, srcIp6, dstIp6, sport, dport, now);
|
||||||
wakeupEvent("rmnet0", 10052, v4, tcp, mac, srcIp, dstIp, sport, dport, now);
|
wakeupEvent("rmnet0", 10052, v4, tcp, mac, srcIp, dstIp, sport, dport, now,
|
||||||
|
TEST_CELL_NETWORK);
|
||||||
wakeupEvent("wlan0", 0, v6, udp, mac, srcIp6, dstIp6, sport, dport, now);
|
wakeupEvent("wlan0", 0, v6, udp, mac, srcIp6, dstIp6, sport, dport, now);
|
||||||
wakeupEvent("rmnet0", 1000, v6, tcp, mac, srcIp6, dstIp6, sport, dport, now);
|
wakeupEvent("rmnet0", 1000, v6, tcp, null, srcIp6, dstIp6, sport, dport, now,
|
||||||
|
TEST_CELL_NETWORK);
|
||||||
wakeupEvent("wlan0", 1010, v4, udp, mac, srcIp, dstIp, sport, dport, now);
|
wakeupEvent("wlan0", 1010, v4, udp, mac, srcIp, dstIp, sport, dport, now);
|
||||||
|
|
||||||
String got = flushStatistics();
|
String got = flushStatistics();
|
||||||
@@ -214,7 +233,7 @@ public class NetdEventListenerServiceTest {
|
|||||||
" >",
|
" >",
|
||||||
" l2_broadcast_count: 0",
|
" l2_broadcast_count: 0",
|
||||||
" l2_multicast_count: 0",
|
" l2_multicast_count: 0",
|
||||||
" l2_unicast_count: 5",
|
" l2_unicast_count: 3",
|
||||||
" no_uid_wakeups: 0",
|
" no_uid_wakeups: 0",
|
||||||
" non_application_wakeups: 0",
|
" non_application_wakeups: 0",
|
||||||
" root_wakeups: 0",
|
" root_wakeups: 0",
|
||||||
@@ -499,8 +518,13 @@ public class NetdEventListenerServiceTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void wakeupEvent(String iface, int uid, int ether, int ip, byte[] mac, String srcIp,
|
void wakeupEvent(String iface, int uid, int ether, int ip, byte[] mac, String srcIp,
|
||||||
String dstIp, int sport, int dport, long now) throws Exception {
|
String dstIp, int sport, int dport, long now) {
|
||||||
String prefix = NET_HANDLE + ":" + iface;
|
wakeupEvent(iface, uid, ether, ip, mac, srcIp, dstIp, sport, dport, now, TEST_WIFI_NETWORK);
|
||||||
|
}
|
||||||
|
|
||||||
|
void wakeupEvent(String iface, int uid, int ether, int ip, byte[] mac, String srcIp,
|
||||||
|
String dstIp, int sport, int dport, long now, Network network) {
|
||||||
|
String prefix = network.getNetworkHandle() + ":" + iface;
|
||||||
mService.onWakeupEvent(prefix, uid, ether, ip, mac, srcIp, dstIp, sport, dport, now);
|
mService.onWakeupEvent(prefix, uid, ether, ip, mac, srcIp, dstIp, sport, dport, now);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user