BatteryStatsServTest.java revision abded113bde548734600dc1b6e4ce2e94f48e32e
1/* 2 * Copyright (C) 2016 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17package com.android.internal.os; 18 19import java.io.PrintWriter; 20import java.io.StringWriter; 21import java.util.ArrayList; 22 23import android.os.BatteryStats; 24import android.os.Parcel; 25import android.test.suitebuilder.annotation.SmallTest; 26import android.util.Log; 27 28import junit.framework.Assert; 29import junit.framework.TestCase; 30 31import com.android.internal.os.BatteryStatsImpl; 32 33/** 34 * Provides test cases for android.os.BatteryStats. 35 */ 36public class BatteryStatsServTest extends TestCase { 37 private static final String TAG = "BatteryStatsServTest"; 38 39 public static class TestServ extends BatteryStatsImpl.Uid.Pkg.Serv { 40 TestServ(MockBatteryStatsImpl bsi) { 41 super(bsi); 42 } 43 44 void populate() { 45 mStartTime = 1010; 46 mRunningSince = 2021; 47 mRunning = true; 48 mStarts = 4042; 49 mLaunchedTime = 5053; 50 mLaunchedSince = 6064; 51 mLaunched = true; 52 mLaunches = 8085; 53 mLoadedStartTime = 9096; 54 mLoadedStarts = 10017; 55 mLoadedLaunches = 11118; 56 mLastStartTime = 12219; 57 mLastStarts = 13310; 58 mLastLaunches = 14411; 59 mUnpluggedStartTime = 15512; 60 mUnpluggedStarts = 16613; 61 mUnpluggedLaunches = 17714; 62 } 63 64 long getStartTime() { 65 return mStartTime; 66 } 67 68 long getRunningSince() { 69 return mRunningSince; 70 } 71 72 void setRunning(boolean val) { 73 mRunning = val; 74 } 75 76 boolean getRunning() { 77 return mRunning; 78 } 79 80 int getStarts() { 81 return mStarts; 82 } 83 84 long getLaunchedTime() { 85 return mLaunchedTime; 86 } 87 88 long getLaunchedSince() { 89 return mLaunchedSince; 90 } 91 92 void setLaunched(boolean val) { 93 mLaunched = val; 94 } 95 96 boolean getLaunched() { 97 return mLaunched; 98 } 99 100 int getLaunches() { 101 return mLaunches; 102 } 103 104 long getLoadedStartTime() { 105 return mLoadedStartTime; 106 } 107 108 int getLoadedStarts() { 109 return mLoadedStarts; 110 } 111 112 int getLoadedLaunches() { 113 return mLoadedLaunches; 114 } 115 116 long getLastStartTime() { 117 return mLastStartTime; 118 } 119 120 int getLastStarts() { 121 return mLastStarts; 122 } 123 124 int getLastLaunches() { 125 return mLastLaunches; 126 } 127 128 long getUnpluggedStartTime() { 129 return mUnpluggedStartTime; 130 } 131 132 int getUnpluggedStarts() { 133 return mUnpluggedStarts; 134 } 135 136 int getUnpluggedLaunches() { 137 return mUnpluggedLaunches; 138 } 139 } 140 141 /** 142 * Test that the constructor and detach methods touch the time bast observer list. 143 */ 144 @SmallTest 145 public void testConstructAndDetach() throws Exception { 146 MockBatteryStatsImpl bsi = new MockBatteryStatsImpl(); 147 148 TestServ serv = new TestServ(bsi); 149 Assert.assertTrue(bsi.getOnBatteryTimeBase().hasObserver(serv)); 150 151 serv.detach(); 152 Assert.assertFalse(bsi.getOnBatteryTimeBase().hasObserver(serv)); 153 } 154 155 /** 156 * Test OnTimeStarted 157 */ 158 @SmallTest 159 public void testOnTimeStarted() throws Exception { 160 MockBatteryStatsImpl bsi = new MockBatteryStatsImpl(); 161 TestServ serv = new TestServ(bsi); 162 163 serv.populate(); 164 serv.setRunning(true); 165 serv.onTimeStarted(111111, 20000, 222222); 166 Assert.assertEquals(18989, serv.getUnpluggedStartTime()); 167 Assert.assertEquals(4042, serv.getUnpluggedStarts()); 168 Assert.assertEquals(8085, serv.getUnpluggedLaunches()); 169 170 serv.populate(); 171 serv.setRunning(false); 172 serv.onTimeStarted(111111, 20000, 222222); 173 Assert.assertEquals(1010, serv.getUnpluggedStartTime()); 174 Assert.assertEquals(4042, serv.getUnpluggedStarts()); 175 Assert.assertEquals(8085, serv.getUnpluggedLaunches()); 176 } 177 178 /** 179 * Test parceling and unparceling. 180 */ 181 @SmallTest 182 public void testParceling() throws Exception { 183 MockBatteryStatsImpl bsi = new MockBatteryStatsImpl(); 184 TestServ orig = new TestServ(bsi); 185 orig.populate(); 186 187 Parcel parcel = Parcel.obtain(); 188 orig.writeToParcelLocked(parcel); 189 190 parcel.setDataPosition(0); 191 192 TestServ serv = new TestServ(bsi); 193 serv.readFromParcelLocked(parcel); 194 195 Assert.assertEquals(1010, serv.getStartTime()); 196 Assert.assertEquals(2021, serv.getRunningSince()); 197 Assert.assertTrue(serv.getRunning()); 198 Assert.assertEquals(4042, serv.getStarts()); 199 Assert.assertEquals(5053, serv.getLaunchedTime()); 200 Assert.assertEquals(6064, serv.getLaunchedSince()); 201 Assert.assertTrue(serv.getLaunched()); 202 Assert.assertEquals(8085, serv.getLaunches()); 203 Assert.assertEquals(9096, serv.getLoadedStartTime()); 204 Assert.assertEquals(10017, serv.getLoadedStarts()); 205 Assert.assertEquals(11118, serv.getLoadedLaunches()); 206 Assert.assertEquals(0, serv.getLastStartTime()); 207 Assert.assertEquals(0, serv.getLastStarts()); 208 Assert.assertEquals(0, serv.getLastLaunches()); 209 Assert.assertEquals(15512, serv.getUnpluggedStartTime()); 210 Assert.assertEquals(16613, serv.getUnpluggedStarts()); 211 Assert.assertEquals(17714, serv.getUnpluggedLaunches()); 212 } 213 214 /** 215 * Test getLaunchTimeToNow() 216 */ 217 @SmallTest 218 public void testLaunchTimeToNow() throws Exception { 219 MockBatteryStatsImpl bsi = new MockBatteryStatsImpl(); 220 TestServ serv = new TestServ(bsi); 221 222 serv.populate(); 223 serv.setLaunched(true); 224 Assert.assertEquals(8989, serv.getLaunchTimeToNowLocked(10000)); 225 226 serv.populate(); 227 serv.setLaunched(false); 228 Assert.assertEquals(5053, serv.getLaunchTimeToNowLocked(10000)); 229 230 } 231 232 /** 233 * Test getStartTimeToNow() 234 */ 235 @SmallTest 236 public void testStartTimeToNow() throws Exception { 237 MockBatteryStatsImpl bsi = new MockBatteryStatsImpl(); 238 TestServ serv = new TestServ(bsi); 239 240 serv.populate(); 241 serv.setRunning(true); 242 Assert.assertEquals(18989, serv.getStartTimeToNowLocked(20000)); 243 244 serv.populate(); 245 serv.setRunning(false); 246 Assert.assertEquals(1010, serv.getStartTimeToNowLocked(20000)); 247 } 248 249 /** 250 * Test startLaunchedLocked while not previously launched 251 */ 252 @SmallTest 253 public void testStartLaunchedLockedWhileNotLaunched() throws Exception { 254 MockBatteryStatsImpl bsi = new MockBatteryStatsImpl() { 255 @Override 256 public long getBatteryUptimeLocked() { 257 return 777777L; 258 } 259 }; 260 261 TestServ serv = new TestServ(bsi); 262 263 serv.populate(); 264 serv.setLaunched(true); 265 serv.startLaunchedLocked(); 266 267 // No changes 268 Assert.assertEquals(1010, serv.getStartTime()); 269 Assert.assertEquals(2021, serv.getRunningSince()); 270 Assert.assertTrue(serv.getRunning()); 271 Assert.assertEquals(4042, serv.getStarts()); 272 Assert.assertEquals(5053, serv.getLaunchedTime()); 273 Assert.assertEquals(6064, serv.getLaunchedSince()); 274 Assert.assertTrue(serv.getLaunched()); 275 Assert.assertEquals(8085, serv.getLaunches()); 276 Assert.assertEquals(9096, serv.getLoadedStartTime()); 277 Assert.assertEquals(10017, serv.getLoadedStarts()); 278 Assert.assertEquals(11118, serv.getLoadedLaunches()); 279 Assert.assertEquals(12219, serv.getLastStartTime()); 280 Assert.assertEquals(13310, serv.getLastStarts()); 281 Assert.assertEquals(14411, serv.getLastLaunches()); 282 Assert.assertEquals(15512, serv.getUnpluggedStartTime()); 283 Assert.assertEquals(16613, serv.getUnpluggedStarts()); 284 Assert.assertEquals(17714, serv.getUnpluggedLaunches()); 285 } 286 287 /** 288 * Test startLaunchedLocked while previously launched 289 */ 290 @SmallTest 291 public void testStartLaunchedLockedWhileLaunched() throws Exception { 292 MockBatteryStatsImpl bsi = new MockBatteryStatsImpl() { 293 @Override 294 public long getBatteryUptimeLocked() { 295 return 777777L; 296 } 297 }; 298 299 TestServ serv = new TestServ(bsi); 300 301 serv.populate(); 302 serv.setLaunched(false); 303 serv.startLaunchedLocked(); 304 Assert.assertEquals(1010, serv.getStartTime()); 305 Assert.assertEquals(2021, serv.getRunningSince()); 306 Assert.assertTrue(serv.getRunning()); 307 Assert.assertEquals(4042, serv.getStarts()); 308 Assert.assertEquals(5053, serv.getLaunchedTime()); 309 Assert.assertEquals(777777L, serv.getLaunchedSince()); // <-- changed 310 Assert.assertTrue(serv.getLaunched()); // <-- changed 311 Assert.assertEquals(8086, serv.getLaunches()); // <-- changed 312 Assert.assertEquals(9096, serv.getLoadedStartTime()); 313 Assert.assertEquals(10017, serv.getLoadedStarts()); 314 Assert.assertEquals(11118, serv.getLoadedLaunches()); 315 Assert.assertEquals(12219, serv.getLastStartTime()); 316 Assert.assertEquals(13310, serv.getLastStarts()); 317 Assert.assertEquals(14411, serv.getLastLaunches()); 318 Assert.assertEquals(15512, serv.getUnpluggedStartTime()); 319 Assert.assertEquals(16613, serv.getUnpluggedStarts()); 320 Assert.assertEquals(17714, serv.getUnpluggedLaunches()); 321 } 322 323 /** 324 * Test stopLaunchedLocked when not previously launched. 325 */ 326 @SmallTest 327 public void testStopLaunchedLockedWhileNotLaunched() throws Exception { 328 MockBatteryStatsImpl bsi = new MockBatteryStatsImpl() { 329 @Override 330 public long getBatteryUptimeLocked() { 331 return 777777L; 332 } 333 }; 334 TestServ serv = new TestServ(bsi); 335 336 serv.populate(); 337 serv.setLaunched(false); 338 339 serv.stopLaunchedLocked(); 340 341 // No changes 342 Assert.assertEquals(1010, serv.getStartTime()); 343 Assert.assertEquals(2021, serv.getRunningSince()); 344 Assert.assertTrue(serv.getRunning()); 345 Assert.assertEquals(4042, serv.getStarts()); 346 Assert.assertEquals(5053, serv.getLaunchedTime()); 347 Assert.assertEquals(6064, serv.getLaunchedSince()); 348 Assert.assertFalse(serv.getLaunched()); 349 Assert.assertEquals(8085, serv.getLaunches()); 350 Assert.assertEquals(9096, serv.getLoadedStartTime()); 351 Assert.assertEquals(10017, serv.getLoadedStarts()); 352 Assert.assertEquals(11118, serv.getLoadedLaunches()); 353 Assert.assertEquals(12219, serv.getLastStartTime()); 354 Assert.assertEquals(13310, serv.getLastStarts()); 355 Assert.assertEquals(14411, serv.getLastLaunches()); 356 Assert.assertEquals(15512, serv.getUnpluggedStartTime()); 357 Assert.assertEquals(16613, serv.getUnpluggedStarts()); 358 Assert.assertEquals(17714, serv.getUnpluggedLaunches()); 359 } 360 361 /** 362 * Test stopLaunchedLocked when previously launched, with measurable time between 363 * start and stop. 364 */ 365 @SmallTest 366 public void testStopLaunchedLockedWhileLaunchedNormal() throws Exception { 367 MockBatteryStatsImpl bsi = new MockBatteryStatsImpl() { 368 @Override 369 public long getBatteryUptimeLocked() { 370 return 777777L; 371 } 372 }; 373 TestServ serv = new TestServ(bsi); 374 375 serv.populate(); 376 serv.setLaunched(true); 377 378 serv.stopLaunchedLocked(); 379 380 Assert.assertEquals(1010, serv.getStartTime()); 381 Assert.assertEquals(2021, serv.getRunningSince()); 382 Assert.assertTrue(serv.getRunning()); 383 Assert.assertEquals(4042, serv.getStarts()); 384 Assert.assertEquals(777777L-6064+5053, serv.getLaunchedTime()); // <-- changed 385 Assert.assertEquals(6064, serv.getLaunchedSince()); 386 Assert.assertFalse(serv.getLaunched()); 387 Assert.assertEquals(8085, serv.getLaunches()); 388 Assert.assertEquals(9096, serv.getLoadedStartTime()); 389 Assert.assertEquals(10017, serv.getLoadedStarts()); 390 Assert.assertEquals(11118, serv.getLoadedLaunches()); 391 Assert.assertEquals(12219, serv.getLastStartTime()); 392 Assert.assertEquals(13310, serv.getLastStarts()); 393 Assert.assertEquals(14411, serv.getLastLaunches()); 394 Assert.assertEquals(15512, serv.getUnpluggedStartTime()); 395 Assert.assertEquals(16613, serv.getUnpluggedStarts()); 396 Assert.assertEquals(17714, serv.getUnpluggedLaunches()); 397 } 398 399 /** 400 * Test stopLaunchedLocked when previously launched, with no measurable time between 401 * start and stop. 402 */ 403 @SmallTest 404 public void testStopLaunchedLockedWhileLaunchedTooQuick() throws Exception { 405 MockBatteryStatsImpl bsi = new MockBatteryStatsImpl() { 406 @Override 407 public long getBatteryUptimeLocked() { 408 return 6064L; 409 } 410 }; 411 TestServ serv = new TestServ(bsi); 412 413 serv.populate(); 414 serv.setLaunched(true); 415 416 serv.stopLaunchedLocked(); 417 418 Assert.assertEquals(1010, serv.getStartTime()); 419 Assert.assertEquals(2021, serv.getRunningSince()); 420 Assert.assertTrue(serv.getRunning()); 421 Assert.assertEquals(4042, serv.getStarts()); 422 Assert.assertEquals(5053, serv.getLaunchedTime()); 423 Assert.assertEquals(6064, serv.getLaunchedSince()); 424 Assert.assertFalse(serv.getLaunched()); 425 Assert.assertEquals(8085-1, serv.getLaunches()); // <-- changed 426 Assert.assertEquals(9096, serv.getLoadedStartTime()); 427 Assert.assertEquals(10017, serv.getLoadedStarts()); 428 Assert.assertEquals(11118, serv.getLoadedLaunches()); 429 Assert.assertEquals(12219, serv.getLastStartTime()); 430 Assert.assertEquals(13310, serv.getLastStarts()); 431 Assert.assertEquals(14411, serv.getLastLaunches()); 432 Assert.assertEquals(15512, serv.getUnpluggedStartTime()); 433 Assert.assertEquals(16613, serv.getUnpluggedStarts()); 434 Assert.assertEquals(17714, serv.getUnpluggedLaunches()); 435 } 436 437 /** 438 * Test startRunningLocked while previously running 439 */ 440 @SmallTest 441 public void testStartRunningLockedWhileRunning() throws Exception { 442 MockBatteryStatsImpl bsi = new MockBatteryStatsImpl() { 443 @Override 444 public long getBatteryUptimeLocked() { 445 return 777777L; 446 } 447 }; 448 TestServ serv = new TestServ(bsi); 449 450 serv.populate(); 451 serv.setRunning(true); 452 453 serv.startRunningLocked(); 454 455 // no change 456 Assert.assertEquals(1010, serv.getStartTime()); 457 Assert.assertEquals(2021, serv.getRunningSince()); 458 Assert.assertTrue(serv.getRunning()); 459 Assert.assertEquals(4042, serv.getStarts()); 460 Assert.assertEquals(5053, serv.getLaunchedTime()); 461 Assert.assertEquals(6064, serv.getLaunchedSince()); 462 Assert.assertTrue(serv.getLaunched()); 463 Assert.assertEquals(8085, serv.getLaunches()); 464 Assert.assertEquals(9096, serv.getLoadedStartTime()); 465 Assert.assertEquals(10017, serv.getLoadedStarts()); 466 Assert.assertEquals(11118, serv.getLoadedLaunches()); 467 Assert.assertEquals(12219, serv.getLastStartTime()); 468 Assert.assertEquals(13310, serv.getLastStarts()); 469 Assert.assertEquals(14411, serv.getLastLaunches()); 470 Assert.assertEquals(15512, serv.getUnpluggedStartTime()); 471 Assert.assertEquals(16613, serv.getUnpluggedStarts()); 472 Assert.assertEquals(17714, serv.getUnpluggedLaunches()); 473 } 474 475 /** 476 * Test startRunningLocked while not previously launched 477 */ 478 @SmallTest 479 public void testStartRunningLockedWhileNotRunning() throws Exception { 480 MockBatteryStatsImpl bsi = new MockBatteryStatsImpl() { 481 @Override 482 public long getBatteryUptimeLocked() { 483 return 777777L; 484 } 485 }; 486 TestServ serv = new TestServ(bsi); 487 488 serv.populate(); 489 serv.setRunning(false); 490 491 serv.startRunningLocked(); 492 493 Assert.assertEquals(1010, serv.getStartTime()); 494 Assert.assertEquals(777777L, serv.getRunningSince()); 495 Assert.assertTrue(serv.getRunning()); 496 Assert.assertEquals(4042+1, serv.getStarts()); 497 Assert.assertEquals(5053, serv.getLaunchedTime()); 498 Assert.assertEquals(6064, serv.getLaunchedSince()); 499 Assert.assertTrue(serv.getLaunched()); 500 Assert.assertEquals(8085, serv.getLaunches()); 501 Assert.assertEquals(9096, serv.getLoadedStartTime()); 502 Assert.assertEquals(10017, serv.getLoadedStarts()); 503 Assert.assertEquals(11118, serv.getLoadedLaunches()); 504 Assert.assertEquals(12219, serv.getLastStartTime()); 505 Assert.assertEquals(13310, serv.getLastStarts()); 506 Assert.assertEquals(14411, serv.getLastLaunches()); 507 Assert.assertEquals(15512, serv.getUnpluggedStartTime()); 508 Assert.assertEquals(16613, serv.getUnpluggedStarts()); 509 Assert.assertEquals(17714, serv.getUnpluggedLaunches()); 510 } 511 512 /** 513 * Test stopRunningLocked when previously launched, with measurable time between 514 * start and stop. 515 */ 516 @SmallTest 517 public void testStopRunningLockedWhileRunningNormal() throws Exception { 518 MockBatteryStatsImpl bsi = new MockBatteryStatsImpl() { 519 @Override 520 public long getBatteryUptimeLocked() { 521 return 777777L; 522 } 523 }; 524 TestServ serv = new TestServ(bsi); 525 526 serv.populate(); 527 serv.setRunning(true); 528 529 serv.stopRunningLocked(); 530 531 Assert.assertEquals(777777L-2021+1010, serv.getStartTime()); // <-- changed 532 Assert.assertEquals(2021, serv.getRunningSince()); 533 Assert.assertFalse(serv.getRunning()); // <-- changed 534 Assert.assertEquals(4042, serv.getStarts()); 535 Assert.assertEquals(5053, serv.getLaunchedTime()); 536 Assert.assertEquals(6064, serv.getLaunchedSince()); 537 Assert.assertTrue(serv.getLaunched()); 538 Assert.assertEquals(8085, serv.getLaunches()); 539 Assert.assertEquals(9096, serv.getLoadedStartTime()); 540 Assert.assertEquals(10017, serv.getLoadedStarts()); 541 Assert.assertEquals(11118, serv.getLoadedLaunches()); 542 Assert.assertEquals(12219, serv.getLastStartTime()); 543 Assert.assertEquals(13310, serv.getLastStarts()); 544 Assert.assertEquals(14411, serv.getLastLaunches()); 545 Assert.assertEquals(15512, serv.getUnpluggedStartTime()); 546 Assert.assertEquals(16613, serv.getUnpluggedStarts()); 547 Assert.assertEquals(17714, serv.getUnpluggedLaunches()); 548 } 549 550 /** 551 * Test stopRunningLocked when previously launched, with measurable time between 552 * start and stop. 553 */ 554 @SmallTest 555 public void testStopRunningLockedWhileRunningTooQuick() throws Exception { 556 MockBatteryStatsImpl bsi = new MockBatteryStatsImpl() { 557 @Override 558 public long getBatteryUptimeLocked() { 559 return 2021; 560 } 561 }; 562 TestServ serv = new TestServ(bsi); 563 564 serv.populate(); 565 serv.setRunning(true); 566 567 serv.stopRunningLocked(); 568 569 Assert.assertEquals(1010, serv.getStartTime()); 570 Assert.assertEquals(2021, serv.getRunningSince()); 571 Assert.assertFalse(serv.getRunning()); // <-- changed 572 Assert.assertEquals(4042-1, serv.getStarts()); // <-- changed 573 Assert.assertEquals(5053, serv.getLaunchedTime()); 574 Assert.assertEquals(6064, serv.getLaunchedSince()); 575 Assert.assertTrue(serv.getLaunched()); 576 Assert.assertEquals(8085, serv.getLaunches()); 577 Assert.assertEquals(9096, serv.getLoadedStartTime()); 578 Assert.assertEquals(10017, serv.getLoadedStarts()); 579 Assert.assertEquals(11118, serv.getLoadedLaunches()); 580 Assert.assertEquals(12219, serv.getLastStartTime()); 581 Assert.assertEquals(13310, serv.getLastStarts()); 582 Assert.assertEquals(14411, serv.getLastLaunches()); 583 Assert.assertEquals(15512, serv.getUnpluggedStartTime()); 584 Assert.assertEquals(16613, serv.getUnpluggedStarts()); 585 Assert.assertEquals(17714, serv.getUnpluggedLaunches()); 586 } 587 588 /** 589 * Test that getBatteryStats returns the BatteryStatsImpl passed in to the contstructor. 590 */ 591 @SmallTest 592 public void testGetBatteryStats() throws Exception { 593 MockBatteryStatsImpl bsi = new MockBatteryStatsImpl(); 594 TestServ serv = new TestServ(bsi); 595 596 Assert.assertEquals(bsi, serv.getBatteryStats()); 597 } 598 599 /** 600 * Test getLaunches 601 */ 602 @SmallTest 603 public void testGetLaunches() throws Exception { 604 MockBatteryStatsImpl bsi = new MockBatteryStatsImpl(); 605 TestServ serv = new TestServ(bsi); 606 serv.populate(); 607 608 Assert.assertEquals(8085, serv.getLaunches(BatteryStats.STATS_SINCE_CHARGED)); 609 Assert.assertEquals(8085-11118, serv.getLaunches(BatteryStats.STATS_CURRENT)); 610 Assert.assertEquals(8085-17714, serv.getLaunches(BatteryStats.STATS_SINCE_UNPLUGGED)); 611 612 // No change to fields 613 Assert.assertEquals(1010, serv.getStartTime()); 614 Assert.assertEquals(2021, serv.getRunningSince()); 615 Assert.assertTrue(serv.getRunning()); 616 Assert.assertEquals(4042, serv.getStarts()); 617 Assert.assertEquals(5053, serv.getLaunchedTime()); 618 Assert.assertEquals(6064, serv.getLaunchedSince()); 619 Assert.assertTrue(serv.getLaunched()); 620 Assert.assertEquals(8085, serv.getLaunches()); 621 Assert.assertEquals(9096, serv.getLoadedStartTime()); 622 Assert.assertEquals(10017, serv.getLoadedStarts()); 623 Assert.assertEquals(11118, serv.getLoadedLaunches()); 624 Assert.assertEquals(12219, serv.getLastStartTime()); 625 Assert.assertEquals(13310, serv.getLastStarts()); 626 Assert.assertEquals(14411, serv.getLastLaunches()); 627 Assert.assertEquals(15512, serv.getUnpluggedStartTime()); 628 Assert.assertEquals(16613, serv.getUnpluggedStarts()); 629 Assert.assertEquals(17714, serv.getUnpluggedLaunches()); 630 } 631 632 /** 633 * Test getStartTime while running 634 */ 635 @SmallTest 636 public void testGetStartTimeRunning() throws Exception { 637 MockBatteryStatsImpl bsi = new MockBatteryStatsImpl(); 638 TestServ serv = new TestServ(bsi); 639 serv.populate(); 640 serv.setRunning(true); 641 642 final long startTimeToNow = 1010 + 20000 - 2021; 643 644 Assert.assertEquals(startTimeToNow, 645 serv.getStartTime(20000, BatteryStats.STATS_SINCE_CHARGED)); 646 Assert.assertEquals(startTimeToNow-9096, 647 serv.getStartTime(20000, BatteryStats.STATS_CURRENT)); 648 Assert.assertEquals(startTimeToNow-15512, 649 serv.getStartTime(20000, BatteryStats.STATS_SINCE_UNPLUGGED)); 650 651 // No change to fields 652 Assert.assertEquals(1010, serv.getStartTime()); 653 Assert.assertEquals(2021, serv.getRunningSince()); 654 Assert.assertTrue(serv.getRunning()); 655 Assert.assertEquals(4042, serv.getStarts()); 656 Assert.assertEquals(5053, serv.getLaunchedTime()); 657 Assert.assertEquals(6064, serv.getLaunchedSince()); 658 Assert.assertTrue(serv.getLaunched()); 659 Assert.assertEquals(8085, serv.getLaunches()); 660 Assert.assertEquals(9096, serv.getLoadedStartTime()); 661 Assert.assertEquals(10017, serv.getLoadedStarts()); 662 Assert.assertEquals(11118, serv.getLoadedLaunches()); 663 Assert.assertEquals(12219, serv.getLastStartTime()); 664 Assert.assertEquals(13310, serv.getLastStarts()); 665 Assert.assertEquals(14411, serv.getLastLaunches()); 666 Assert.assertEquals(15512, serv.getUnpluggedStartTime()); 667 Assert.assertEquals(16613, serv.getUnpluggedStarts()); 668 Assert.assertEquals(17714, serv.getUnpluggedLaunches()); 669 } 670 671 /** 672 * Test getStartTime while not running 673 */ 674 @SmallTest 675 public void testGetStartTimeNotRunning() throws Exception { 676 MockBatteryStatsImpl bsi = new MockBatteryStatsImpl(); 677 TestServ serv = new TestServ(bsi); 678 serv.populate(); 679 serv.setRunning(false); 680 681 final long startTimeToNow = 1010; 682 683 Assert.assertEquals(startTimeToNow, 684 serv.getStartTime(20000, BatteryStats.STATS_SINCE_CHARGED)); 685 Assert.assertEquals(startTimeToNow-9096, 686 serv.getStartTime(20000, BatteryStats.STATS_CURRENT)); 687 Assert.assertEquals(startTimeToNow-15512, 688 serv.getStartTime(20000, BatteryStats.STATS_SINCE_UNPLUGGED)); 689 690 // No change to fields 691 Assert.assertEquals(1010, serv.getStartTime()); 692 Assert.assertEquals(2021, serv.getRunningSince()); 693 Assert.assertFalse(serv.getRunning()); 694 Assert.assertEquals(4042, serv.getStarts()); 695 Assert.assertEquals(5053, serv.getLaunchedTime()); 696 Assert.assertEquals(6064, serv.getLaunchedSince()); 697 Assert.assertTrue(serv.getLaunched()); 698 Assert.assertEquals(8085, serv.getLaunches()); 699 Assert.assertEquals(9096, serv.getLoadedStartTime()); 700 Assert.assertEquals(10017, serv.getLoadedStarts()); 701 Assert.assertEquals(11118, serv.getLoadedLaunches()); 702 Assert.assertEquals(12219, serv.getLastStartTime()); 703 Assert.assertEquals(13310, serv.getLastStarts()); 704 Assert.assertEquals(14411, serv.getLastLaunches()); 705 Assert.assertEquals(15512, serv.getUnpluggedStartTime()); 706 Assert.assertEquals(16613, serv.getUnpluggedStarts()); 707 Assert.assertEquals(17714, serv.getUnpluggedLaunches()); 708 } 709 710 711 /** 712 * Test getStarts 713 */ 714 @SmallTest 715 public void testGetStarts() throws Exception { 716 MockBatteryStatsImpl bsi = new MockBatteryStatsImpl(); 717 TestServ serv = new TestServ(bsi); 718 serv.populate(); 719 720 Assert.assertEquals(4042, serv.getStarts(BatteryStats.STATS_SINCE_CHARGED)); 721 Assert.assertEquals(4042-10017, serv.getStarts(BatteryStats.STATS_CURRENT)); 722 Assert.assertEquals(4042-16613, serv.getStarts(BatteryStats.STATS_SINCE_UNPLUGGED)); 723 724 // No change to fields 725 Assert.assertEquals(1010, serv.getStartTime()); 726 Assert.assertEquals(2021, serv.getRunningSince()); 727 Assert.assertTrue(serv.getRunning()); 728 Assert.assertEquals(4042, serv.getStarts()); 729 Assert.assertEquals(5053, serv.getLaunchedTime()); 730 Assert.assertEquals(6064, serv.getLaunchedSince()); 731 Assert.assertTrue(serv.getLaunched()); 732 Assert.assertEquals(8085, serv.getLaunches()); 733 Assert.assertEquals(9096, serv.getLoadedStartTime()); 734 Assert.assertEquals(10017, serv.getLoadedStarts()); 735 Assert.assertEquals(11118, serv.getLoadedLaunches()); 736 Assert.assertEquals(12219, serv.getLastStartTime()); 737 Assert.assertEquals(13310, serv.getLastStarts()); 738 Assert.assertEquals(14411, serv.getLastLaunches()); 739 Assert.assertEquals(15512, serv.getUnpluggedStartTime()); 740 Assert.assertEquals(16613, serv.getUnpluggedStarts()); 741 Assert.assertEquals(17714, serv.getUnpluggedLaunches()); 742 } 743 744} 745 746