Merge "Fix tests in TrafficStatsTest that are affected by adb over network"

This commit is contained in:
Junyu Lai
2019-04-02 02:00:25 +00:00
committed by Gerrit Code Review

View File

@@ -16,15 +16,14 @@
package android.net.cts;
import android.content.pm.PackageManager;
import android.net.NetworkStats;
import android.net.TrafficStats;
import android.os.Process;
import android.os.SystemProperties;
import android.test.AndroidTestCase;
import android.util.Log;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
@@ -237,19 +236,37 @@ public class TrafficStatsTest extends AndroidTestCase {
uidRxDeltaBytes <= tcpPacketToIpBytes(packetCount, byteCount) + tcpPacketToIpBytes(packetCount + maxExpectedExtraPackets + deltaRxOtherPackets, 0));
// Localhost traffic *does* count against total stats.
// Fudge by 132 packets of 1500 bytes not related to the test.
// Check the total stats increased after test data transfer over localhost has been made.
assertTrue("ttxp: " + totalTxPacketsBefore + " -> " + totalTxPacketsAfter,
totalTxPacketsAfter >= totalTxPacketsBefore + uidTxDeltaPackets &&
totalTxPacketsAfter <= totalTxPacketsBefore + uidTxDeltaPackets + 132);
totalTxPacketsAfter >= totalTxPacketsBefore + uidTxDeltaPackets);
assertTrue("trxp: " + totalRxPacketsBefore + " -> " + totalRxPacketsAfter,
totalRxPacketsAfter >= totalRxPacketsBefore + uidRxDeltaPackets &&
totalRxPacketsAfter <= totalRxPacketsBefore + uidRxDeltaPackets + 132);
totalRxPacketsAfter >= totalRxPacketsBefore + uidRxDeltaPackets);
assertTrue("ttxb: " + totalTxBytesBefore + " -> " + totalTxBytesAfter,
totalTxBytesAfter >= totalTxBytesBefore + uidTxDeltaBytes &&
totalTxBytesAfter <= totalTxBytesBefore + uidTxDeltaBytes + 132 * 1500);
totalTxBytesAfter >= totalTxBytesBefore + uidTxDeltaBytes);
assertTrue("trxb: " + totalRxBytesBefore + " -> " + totalRxBytesAfter,
totalRxBytesAfter >= totalRxBytesBefore + uidRxDeltaBytes &&
totalRxBytesAfter <= totalRxBytesBefore + uidRxDeltaBytes + 132 * 1500);
totalRxBytesAfter >= totalRxBytesBefore + uidRxDeltaBytes);
// If the adb TCP port is opened, this test may be run by adb over network.
// Huge amount of data traffic might go through the network and accounted into total packets
// stats. The upper bound check would be meaningless.
// TODO: Consider precisely calculate the traffic accounted due to adb over network and
// subtract it when checking upper bound instead of skip checking.
final PackageManager pm = mContext.getPackageManager();
if (SystemProperties.getInt("persist.adb.tcp.port", -1) > -1
|| SystemProperties.getInt("service.adb.tcp.port", -1) > -1
|| !pm.hasSystemFeature(PackageManager.FEATURE_USB_ACCESSORY)) {
Log.i(LOG_TAG, "adb is running over the network, skip the upper bound check");
} else {
// Fudge by 132 packets of 1500 bytes not related to the test.
assertTrue("ttxp: " + totalTxPacketsBefore + " -> " + totalTxPacketsAfter,
totalTxPacketsAfter <= totalTxPacketsBefore + uidTxDeltaPackets + 132);
assertTrue("trxp: " + totalRxPacketsBefore + " -> " + totalRxPacketsAfter,
totalRxPacketsAfter <= totalRxPacketsBefore + uidRxDeltaPackets + 132);
assertTrue("ttxb: " + totalTxBytesBefore + " -> " + totalTxBytesAfter,
totalTxBytesAfter <= totalTxBytesBefore + uidTxDeltaBytes + 132 * 1500);
assertTrue("trxb: " + totalRxBytesBefore + " -> " + totalRxBytesAfter,
totalRxBytesAfter <= totalRxBytesBefore + uidRxDeltaBytes + 132 * 1500);
}
// Localhost traffic should *not* count against mobile stats,
// There might be some other traffic, but nowhere near 1MB.
@@ -265,6 +282,5 @@ public class TrafficStatsTest extends AndroidTestCase {
assertTrue("mrxb: " + mobileRxBytesBefore + " -> " + mobileRxBytesAfter,
mobileRxBytesAfter >= mobileRxBytesBefore &&
mobileRxBytesAfter <= mobileRxBytesBefore + 200000);
}
}