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

Commit 9254c106 authored by Etienne Ruffieux's avatar Etienne Ruffieux Committed by Android (Google) Code Review
Browse files

Merge "Remove BT hidden APIs calls from power tests"

parents 46a0f35c 577319e1
Loading
Loading
Loading
Loading
+37 −5
Original line number Diff line number Diff line
@@ -41,6 +41,7 @@ import android.bluetooth.BluetoothActivityEnergyInfo;
import android.bluetooth.UidTraffic;
import android.os.BatteryStats;
import android.os.BluetoothBatteryStats;
import android.os.Parcel;
import android.os.WakeLockStats;
import android.os.WorkSource;
import android.util.SparseArray;
@@ -583,11 +584,42 @@ public class BatteryStatsImplTest {
        mBatteryStatsImpl.noteBluetoothScanStoppedFromSourceLocked(ws, true, 9000, 9000);
        mBatteryStatsImpl.noteBluetoothScanResultsFromSourceLocked(ws, 42, 9000, 9000);

        BluetoothActivityEnergyInfo info = new BluetoothActivityEnergyInfo(1000,
                BluetoothActivityEnergyInfo.BT_STACK_STATE_STATE_ACTIVE, 9000, 8000, 12000, 0);
        info.setUidTraffic(ImmutableList.of(
                new UidTraffic(10042, 3000, 4000),
                new UidTraffic(10043, 5000, 8000)));


        final Parcel uidTrafficParcel1 = Parcel.obtain();
        final Parcel uidTrafficParcel2 = Parcel.obtain();

        uidTrafficParcel1.writeInt(10042);
        uidTrafficParcel1.writeLong(3000);
        uidTrafficParcel1.writeLong(4000);
        uidTrafficParcel1.setDataPosition(0);
        uidTrafficParcel2.writeInt(10043);
        uidTrafficParcel2.writeLong(5000);
        uidTrafficParcel2.writeLong(8000);
        uidTrafficParcel2.setDataPosition(0);

        List<UidTraffic> uidTrafficList = ImmutableList.of(
                UidTraffic.CREATOR.createFromParcel(uidTrafficParcel1),
                UidTraffic.CREATOR.createFromParcel(uidTrafficParcel2));

        final Parcel btActivityEnergyInfoParcel = Parcel.obtain();
        btActivityEnergyInfoParcel.writeLong(1000);
        btActivityEnergyInfoParcel.writeInt(
                BluetoothActivityEnergyInfo.BT_STACK_STATE_STATE_ACTIVE);
        btActivityEnergyInfoParcel.writeLong(9000);
        btActivityEnergyInfoParcel.writeLong(8000);
        btActivityEnergyInfoParcel.writeLong(12000);
        btActivityEnergyInfoParcel.writeLong(0);
        btActivityEnergyInfoParcel.writeTypedList(uidTrafficList);
        btActivityEnergyInfoParcel.setDataPosition(0);

        BluetoothActivityEnergyInfo info = BluetoothActivityEnergyInfo.CREATOR
                .createFromParcel(btActivityEnergyInfoParcel);

        uidTrafficParcel1.recycle();
        uidTrafficParcel2.recycle();
        btActivityEnergyInfoParcel.recycle();

        mBatteryStatsImpl.updateBluetoothStateLocked(info, -1, 1000, 1000);

        BluetoothBatteryStats stats =
+71 −25
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ import android.bluetooth.UidTraffic;
import android.os.BatteryConsumer;
import android.os.BatteryStats;
import android.os.BatteryUsageStatsQuery;
import android.os.Parcel;
import android.os.Process;
import android.os.UidBatteryConsumer;
import android.os.WorkSource;
@@ -37,6 +38,8 @@ import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;

import java.util.List;

@RunWith(AndroidJUnit4.class)
@SmallTest
@SuppressWarnings("GuardedBy")
@@ -90,11 +93,13 @@ public class BluetoothPowerCalculatorTest {
        uid.setProcessStateForTest(
                BatteryStats.Uid.PROCESS_STATE_FOREGROUND, 1000);

        BluetoothActivityEnergyInfo info1 = new BluetoothActivityEnergyInfo(2000,
                BluetoothActivityEnergyInfo.BT_STACK_STATE_STATE_ACTIVE, 1000, 2000, 3000, 4000);
        info1.setUidTraffic(ImmutableList.of(
                new UidTraffic(Process.BLUETOOTH_UID, 1000, 2000),
                new UidTraffic(APP_UID, 3000, 4000)));

        List<UidTraffic> trafficList1 = ImmutableList.of(
                createUidTraffic(Process.BLUETOOTH_UID, 1000, 2000),
                createUidTraffic(APP_UID, 3000, 4000));
        BluetoothActivityEnergyInfo info1 = createBtEnergyInfo(2000,
                BluetoothActivityEnergyInfo.BT_STACK_STATE_STATE_ACTIVE, 1000, 2000, 3000, 4000,
                trafficList1);

        batteryStats.updateBluetoothStateLocked(info1,
                0/*1_000_000*/, 2000, 2000);
@@ -102,11 +107,14 @@ public class BluetoothPowerCalculatorTest {
        uid.setProcessStateForTest(
                BatteryStats.Uid.PROCESS_STATE_BACKGROUND, 3000);

        BluetoothActivityEnergyInfo info2 = new BluetoothActivityEnergyInfo(4000,
                BluetoothActivityEnergyInfo.BT_STACK_STATE_STATE_ACTIVE, 5000, 6000, 7000, 8000);
        info2.setUidTraffic(ImmutableList.of(
                new UidTraffic(Process.BLUETOOTH_UID, 5000, 6000),
                new UidTraffic(APP_UID, 7000, 8000)));

        List<UidTraffic> trafficList2 = ImmutableList.of(
                createUidTraffic(Process.BLUETOOTH_UID, 5000, 6000),
                createUidTraffic(APP_UID, 7000, 8000));
        BluetoothActivityEnergyInfo info2 = createBtEnergyInfo(4000,
                BluetoothActivityEnergyInfo.BT_STACK_STATE_STATE_ACTIVE, 5000, 6000, 7000, 8000,
                trafficList2);


        batteryStats.updateBluetoothStateLocked(info2,
                0 /*5_000_000 */, 4000, 4000);
@@ -202,11 +210,14 @@ public class BluetoothPowerCalculatorTest {
        uid.setProcessStateForTest(
                BatteryStats.Uid.PROCESS_STATE_FOREGROUND, 1000);

        BluetoothActivityEnergyInfo info1 = new BluetoothActivityEnergyInfo(2000,
                BluetoothActivityEnergyInfo.BT_STACK_STATE_STATE_ACTIVE, 1000, 2000, 3000, 4000);
        info1.setUidTraffic(ImmutableList.of(
                new UidTraffic(Process.BLUETOOTH_UID, 1000, 2000),
                new UidTraffic(APP_UID, 3000, 4000)));

        List<UidTraffic> trafficList1 = ImmutableList.of(
                createUidTraffic(Process.BLUETOOTH_UID, 1000, 2000),
                createUidTraffic(APP_UID, 3000, 4000));
        BluetoothActivityEnergyInfo info1 = createBtEnergyInfo(2000,
                BluetoothActivityEnergyInfo.BT_STACK_STATE_STATE_ACTIVE, 1000, 2000, 3000, 4000,
                trafficList1);


        batteryStats.updateBluetoothStateLocked(info1,
                1_000_000, 2000, 2000);
@@ -214,11 +225,13 @@ public class BluetoothPowerCalculatorTest {
        uid.setProcessStateForTest(
                BatteryStats.Uid.PROCESS_STATE_BACKGROUND, 3000);

        BluetoothActivityEnergyInfo info2 = new BluetoothActivityEnergyInfo(4000,
                BluetoothActivityEnergyInfo.BT_STACK_STATE_STATE_ACTIVE, 5000, 6000, 7000, 8000);
        info2.setUidTraffic(ImmutableList.of(
                new UidTraffic(Process.BLUETOOTH_UID, 5000, 6000),
                new UidTraffic(APP_UID, 7000, 8000)));
        List<UidTraffic> trafficList2 = ImmutableList.of(
                createUidTraffic(Process.BLUETOOTH_UID, 5000, 6000),
                createUidTraffic(APP_UID, 7000, 8000));
        BluetoothActivityEnergyInfo info2 = createBtEnergyInfo(4000,
                BluetoothActivityEnergyInfo.BT_STACK_STATE_STATE_ACTIVE, 5000, 6000, 7000, 8000,
                trafficList2);


        batteryStats.updateBluetoothStateLocked(info2,
                5_000_000, 4000, 4000);
@@ -280,12 +293,15 @@ public class BluetoothPowerCalculatorTest {
    }

    private void setupBluetoothEnergyInfo(long reportedEnergyUc, long consumedEnergyUc) {
        final BluetoothActivityEnergyInfo info = new BluetoothActivityEnergyInfo(1000,
        List<UidTraffic> trafficList = ImmutableList.of(
                createUidTraffic(Process.BLUETOOTH_UID, 1000, 2000),
                createUidTraffic(APP_UID, 3000, 4000));


        final BluetoothActivityEnergyInfo info = createBtEnergyInfo(1000,
                BluetoothActivityEnergyInfo.BT_STACK_STATE_STATE_ACTIVE, 7000, 5000, 0,
                reportedEnergyUc);
        info.setUidTraffic(ImmutableList.of(
                new UidTraffic(Process.BLUETOOTH_UID, 1000, 2000),
                new UidTraffic(APP_UID, 3000, 4000)));
                reportedEnergyUc, trafficList);

        mStatsRule.getBatteryStats().updateBluetoothStateLocked(info,
                consumedEnergyUc, 1000, 1000);
    }
@@ -304,4 +320,34 @@ public class BluetoothPowerCalculatorTest {
                BatteryConsumer.POWER_COMPONENT_BLUETOOTH);
        assertThat(usageDurationMillis).isEqualTo(durationMs);
    }

    private UidTraffic createUidTraffic(int uid, long traffic1, long traffic2) {
        final Parcel uidTrafficParcel = Parcel.obtain();
        uidTrafficParcel.writeInt(uid);
        uidTrafficParcel.writeLong(traffic1);
        uidTrafficParcel.writeLong(traffic2);
        uidTrafficParcel.setDataPosition(0);

        UidTraffic traffic = UidTraffic.CREATOR.createFromParcel(uidTrafficParcel);
        uidTrafficParcel.recycle();
        return traffic;
    }

    private BluetoothActivityEnergyInfo createBtEnergyInfo(long timestamp, int stackState,
            long txTime, long rxTime, long idleTime, long energyUsed, List<UidTraffic> traffic) {
        final Parcel btActivityEnergyInfoParcel = Parcel.obtain();
        btActivityEnergyInfoParcel.writeLong(timestamp);
        btActivityEnergyInfoParcel.writeInt(stackState);
        btActivityEnergyInfoParcel.writeLong(txTime);
        btActivityEnergyInfoParcel.writeLong(rxTime);
        btActivityEnergyInfoParcel.writeLong(idleTime);
        btActivityEnergyInfoParcel.writeLong(energyUsed);
        btActivityEnergyInfoParcel.writeTypedList(traffic);
        btActivityEnergyInfoParcel.setDataPosition(0);

        BluetoothActivityEnergyInfo info = BluetoothActivityEnergyInfo.CREATOR
                .createFromParcel(btActivityEnergyInfoParcel);
        btActivityEnergyInfoParcel.recycle();
        return info;
    }
}