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

Commit 6d269046 authored by Junyu Lai's avatar Junyu Lai Committed by Gerrit Code Review
Browse files

Merge "[SP13.1] Add assert equals function for NetworkStats"

parents 1f67bac3 23a6a569
Loading
Loading
Loading
Loading
+26 −3
Original line number Diff line number Diff line
@@ -17,14 +17,19 @@
package com.android.testutils

import android.net.NetworkStats
import kotlin.test.assertTrue

@JvmOverloads
fun orderInsensitiveEquals(
    leftStats: NetworkStats,
    rightStats: NetworkStats
    rightStats: NetworkStats,
    compareTime: Boolean = false
): Boolean {
    if (leftStats == rightStats) return true
    if (leftStats.getElapsedRealtime() != rightStats.getElapsedRealtime() ||
            leftStats.size() != rightStats.size()) return false
    if (compareTime && leftStats.getElapsedRealtime() != rightStats.getElapsedRealtime()) {
        return false
    }
    if (leftStats.size() != rightStats.size()) return false
    val left = NetworkStats.Entry()
    val right = NetworkStats.Entry()
    // Order insensitive compare.
@@ -32,8 +37,26 @@ fun orderInsensitiveEquals(
        leftStats.getValues(i, left)
        val j: Int = rightStats.findIndexHinted(left.iface, left.uid, left.set, left.tag,
                left.metered, left.roaming, left.defaultNetwork, i)
        if (j == -1) return false
        rightStats.getValues(j, right)
        if (left != right) return false
    }
    return true
}

/**
 * Assert that two {@link NetworkStats} are equals, assuming the order of the records are not
 * necessarily the same.
 *
 * @note {@code elapsedRealtime} is not compared by default, given that in test cases that is not
 *       usually used.
 */
@JvmOverloads
fun assertNetworkStatsEquals(
    expected: NetworkStats,
    actual: NetworkStats,
    compareTime: Boolean = false
) {
    assertTrue(orderInsensitiveEquals(expected, actual, compareTime),
            "expected: " + expected + "but was: " + actual)
}