blob: fbcac41a9e1c17f9350c070f54ee51344030f02d [file] [log] [blame]
/*
* Copyright (C) 2018 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.powermodel;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
import java.util.List;
import org.junit.Test;
import org.junit.Assert;
/**
* Tests {@link RawBatteryStats}.
*/
public class RawBatteryStatsTest {
private static final int BS_VERSION = 32;
private static InputStream makeCsv(String... lines) {
return makeCsv(BS_VERSION, lines);
}
private static InputStream makeCsv(int version, String... lines) {
final StringBuilder result = new StringBuilder("9,0,i,vers,");
result.append(version);
result.append(",177,PPR1.180326.002,PQ1A.181105.015\n");
for (String line: lines) {
result.append(line);
result.append('\n');
}
return new ByteArrayInputStream(result.toString().getBytes(StandardCharsets.UTF_8));
}
@Test public void testVersion() throws Exception {
final InputStream is = makeCsv();
final RawBatteryStats bs = RawBatteryStats.parse(is);
final List<RawBatteryStats.Record> records = bs.getRecords();
final RawBatteryStats.Version line = (RawBatteryStats.Version)records.get(0);
Assert.assertEquals(0, bs.getWarnings().size());
Assert.assertEquals(true, line.complete);
Assert.assertEquals(9, line.lineVersion);
Assert.assertEquals(0, line.uid);
Assert.assertEquals(RawBatteryStats.Category.INFO, line.category);
Assert.assertEquals("vers", line.lineType);
Assert.assertEquals(BS_VERSION, line.dumpsysVersion);
Assert.assertEquals(177, line.parcelVersion);
Assert.assertEquals("PPR1.180326.002", line.startPlatformVersion);
Assert.assertEquals("PQ1A.181105.015", line.endPlatformVersion);
}
@Test public void testUid() throws Exception {
final InputStream is = makeCsv("9,0,i,uid,1000,com.example.app");
final RawBatteryStats bs = RawBatteryStats.parse(is);
final List<RawBatteryStats.Record> records = bs.getRecords();
final RawBatteryStats.Uid line = (RawBatteryStats.Uid)records.get(1);
Assert.assertEquals(1000, line.uidKey);
Assert.assertEquals("com.example.app", line.pkg);
}
@Test public void testVarargs() throws Exception {
final InputStream is = makeCsv("9,0,i,gmcd,1,2,3,4,5,6,7");
final RawBatteryStats bs = RawBatteryStats.parse(is);
final List<RawBatteryStats.Record> records = bs.getRecords();
final RawBatteryStats.GlobalModemController line
= (RawBatteryStats.GlobalModemController)records.get(1);
Assert.assertEquals(1, line.idleMs);
Assert.assertEquals(2, line.rxTimeMs);
Assert.assertEquals(3, line.powerMaMs);
Assert.assertEquals(4, line.txTimeMs.length);
Assert.assertEquals(4, line.txTimeMs[0]);
Assert.assertEquals(5, line.txTimeMs[1]);
Assert.assertEquals(6, line.txTimeMs[2]);
Assert.assertEquals(7, line.txTimeMs[3]);
}
}