Commit graph

206 commits

Author SHA1 Message Date
Yifan Hong
c6e3fd118a Fix health.storage test
- fix root
- fix test timeout

Test: adb unroot and atest

Fixes: 149044321

Change-Id: Icc34af149641f7fe5035cee1fe9685b395adc22f
2020-02-07 22:49:07 +00:00
Treehugger Robot
98a05a0bbb Merge "Revert "Update health 2.1 readme for file_contexts"" 2020-02-03 19:18:25 +00:00
Yifan Hong
056ffd93ed Merge changes from topic "health_charger"
* changes:
  Update health 2.1 README for non A/B devices.
  Add default health 2.1 service to class charger
2020-02-03 18:12:23 +00:00
Yifan Hong
aafba97a5a Revert "Update health 2.1 readme for file_contexts"
This reverts commit ca44707aea.

Reason for revert: charger uses hwbinder health HAL now

Bug: 142674987
Test: none

Change-Id: I2be2d393331ad3c377e0b144cfe0c92d3ab59689
2020-02-01 01:33:27 +00:00
Yifan Hong
b9c4082061 Update health 2.1 README for non A/B devices.
Non A/B devices should install the passthrough health impl
to recovery for IsBatteryOk() check during OTA updates.

Test: pass
Change-Id: Ib83518fd5f8f55f693be88a55fa708459a22417f
2020-01-31 17:20:08 -08:00
Yifan Hong
b6f7e58a64 Add default health 2.1 service to class charger
... so that it starts up in charger mode.

Test: boot charger and look at serial log
Bug: 142674987
Change-Id: Ic535b86840df1408b76e556f942aebdd9aaba111
2020-01-31 13:26:55 -08:00
Yifan Hong
8ae16915ac Merge "health 2.1 VTS: fix test on batteryFullCapacityUah" 2020-01-29 20:30:57 +00:00
Yifan Hong
3f91f296ba health 2.1 VTS: fix test on batteryFullCapacityUah
getHealthInfo_2_1 reports batteryFullCapacityUah:
- 0 if value is unknown. In such case, no requirement is enforced.
- positive if value is known. In such case, require it to be 50%~120% of
  batteryFullCharge.

Test: run on cuttlefish
Bug: 144948996

Change-Id: I7856729aafa3a19a3bfcc00e6e0ad5162f22afea
2020-01-28 19:00:53 -08:00
Treehugger Robot
c9d0f25cfa Merge "health 2.0 vts: Allow for battery-less devices" 2020-01-28 21:16:01 +00:00
Yifan Hong
5ac6f5bc99 health 2.0 vts: Allow for battery-less devices
Battery-less devices reports UNKNOWN for getChargeStatus.
Allow it.

Test: on cuttlefish
Change-Id: I06dd2841d43cab9528209d0bfd61969a8f2409c8
2020-01-27 16:22:07 -08:00
Yifan Hong
7474381275 Add health 2.1 to vts-core.
Test: TH
Bug: 144948996
Change-Id: Icc58506841c7a3b754661b36788d2acdae168109
2020-01-27 16:15:48 -08:00
Stephane Lee
8bc403e1e2 Initialize paths for health 2.1
+ batteryCapacityLevelPath
+ batteryChargeTimeToFullNowPath

Bug: 137790244
Test: lshal debug (health service)
Change-Id: I219ecc3dc77be70073761d9da5f5ee39ad76387d
2020-01-17 15:57:33 -08:00
Yifan Hong
ca44707aea Update health 2.1 readme for file_contexts
-impl file needs to be marked as same_process_hal_file
for charger to work.

Test: none
Change-Id: I998493949284362fbd1dcb8e2a1d48958feb1324
2020-01-09 17:20:10 -08:00
nelsonli
4da3ca57ab [vts-core] add VtsHalHealthV2_0TargetTest to vts-core
Convert VtsHalHealthV2_0TargetTest to be parameterized test
and add it to vts-core

Bug: 142397658
Test: $atest VtsHalHealthV2_0TargetTest
Change-Id: I415a494243536f931f168665e1b9196fc83c8de7
2019-12-11 14:32:55 +08:00
Yifan Hong
b808bd7d46 health 1.0: add helper library for -impl
Now that libhealthd is no longer recognized as a HAL_STATIC_LIBRARY,
vendors must define their own android.hardware.health@1.0-impl module.
Add a helper and README.md for them to explain this transition.

Test: builds
Bug: 127677771
Change-Id: I65c162e7b5caed93c39a4a1cb6a2893fbb25724b
2019-12-03 12:51:45 -08:00
Yifan Hong
891220af48 health 1.0 default -> Soong
Now that HAL_STATIC_LIBS are removed, convert to Soong.
Also, avoid using global includes and use libbase_headers instead.

Test: builds
Change-Id: I50ef691e049ed0943de6f384ce7ddba96c0345a5
2019-12-03 12:51:45 -08:00
Yifan Hong
16273aea66 health 1.0 does not use HAL_STATIC_LIBS
BOARD_HAL_STATIC_LIBRARIES is deprecated / obsolete. No devices
in our internal tree uses it. Devices that uses it should build
their own HALs and link to the correct libhealthd.(board) in
that vendor-specific module.

Test: pass
Bug: 127677771

Change-Id: I289d020960331e2dc2225ccbd378a73ccc51a056
2019-12-03 12:51:45 -08:00
Yifan Hong
b68a055c68 Merge "health 2.0: Check health_loop status for passthrough usage" 2019-11-26 00:25:03 +00:00
Hridya Valsaraju
55f1a1f3f6 health 2.0: Check health_loop status for passthrough usage
health HAL is used as passthrough in recovery mode and hence
healthd_main() is not invoked. Add checks in
healthd_battery_update_internal() and healthd_register_event()
to return when health_loop is NULL.

Test: fastboot getvar battery-voltage works in fastbootd.
Bug: 144299329

Change-Id: I0a975a4bfe942813f9c5b3936df91cc3d8fa9674
2019-11-23 02:07:08 +00:00
Treehugger Robot
7a83bc5d27 Merge "[vts-core] add VtsHalHealthStorageV1_0TargetTest to vts-core" 2019-11-13 01:48:21 +00:00
Haibo Huang
83b4c1e3e1 Fix build with new googletest
The new googletest requires prefix to be non-empty.

Change-Id: I3ebd13861c4803b53dbeb4ac5f247984814bef45
2019-11-08 12:17:34 -08:00
nelsonli
d93a6ccf5b [vts-core] add VtsHalHealthStorageV1_0TargetTest to vts-core
Convert VtsHalHealthStorageV1_0TargetTest to be parameterized test
and add it to vts-core

Bug: 142397658
Test: $atest VtsHalHealthStorageV1_0TargetTest
Change-Id: I0e91e0958c2dc351a0e9af03fd977f55f418d1f5
2019-11-07 10:05:34 +08:00
Yifan Hong
e438211a0f health 2.1 implementation.
Test: VTS health 2.1 test
Bug: 137670450

Change-Id: I04ea74facbaa534eee00a51474a013db3b6eb212
2019-10-30 11:15:24 -07:00
Treehugger Robot
c280f899c3 Merge "[vts-core] add VtsHalHealthV1_0TargetTest to vts-core" 2019-10-30 01:55:23 +00:00
Treehugger Robot
d57bd9622a Merge "[REFACTOR] health 2.0: battery monitor returns health info 2.0" 2019-10-29 03:52:54 +00:00
nelsonli
cb460b6dae [vts-core] add VtsHalHealthV1_0TargetTest to vts-core
Convert VtsHalHealthV1_0TargetTest. to be parameterized test
and add it to vts-core

Bug: 142397658
Test: $atest VtsHalHealthV1_0TargetTest.
Change-Id: I3abfbfe0c20a5fe595f32c4793b2c53f6ad13e28
2019-10-28 07:25:51 +00:00
Yifan Hong
a1e654d8f1 Merge changes from topic "health21"
* changes:
  Require health 2.1 on R devices
  health 2.1
2019-10-24 01:03:09 +00:00
Yifan Hong
17fad82187 Merge "[REFACTOR] health 2.0: BatteryMonitor::update split into 3 funcs" 2019-10-22 22:47:40 +00:00
Treehugger Robot
9a41dd7f5a Merge changes from topic "libhealthloop"
* changes:
  [REFACTOR] health 2.0: healthd_common -> libhealthloop
  health 2.0: Move healthd_common.cpp
2019-10-21 20:01:48 +00:00
Yifan Hong
00ebc75aef [REFACTOR] health 2.0: battery monitor returns health info 2.0
BatteryMonitor returns HealthInfo structs directly. Modify
code to adapt to this behavior.

Test: health VTS test 2.0
Bug: 142260281
Change-Id: I5e6605e46bb4f8bb08c1356e5f2233880e6f9d14
2019-10-15 17:38:40 -07:00
Yifan Hong
ed0fead8e4 health 2.1
Test: builds
Bug: 137670450

Change-Id: Ie8ec2733ee5338fef3639ab4deda47c9e5ce2179
2019-10-15 17:38:40 -07:00
Robin Lee
ac5a0d316b health VTS: Status::UNKNOWN is OK if not present
Documentation: https://source.android.com/devices/tech/power/batteryless

If a battery device is not detected, the following battery-related
defaults are used on Android 9 and higher:

* Present:              false
* Status:               unknown
* Remaining capacity:   0
* Health:               unknown
* AC charger online:    not modified

The previous version of the test failed devices if the vendor HAL
reported BatteryStatus::UNKNOWN. However, the tests were skipped if the
default HAL was the one being used, so this has not come up before for
other batteryless devices.

Bug: 142081126
Test: vts-tradefed run vts -m VtsHalHealthV2_0
Change-Id: I8ca758677478b47511e24990fee545fafa6c7f83
2019-10-15 20:44:07 +02:00
Yifan Hong
9521b9d458 [REFACTOR] health 2.0: BatteryMonitor::update split into 3 funcs
BatteryMonitor::update no longer calls healthd_board_battery_update
and callback for us.

Test: VTS health HAL 2.0 test
Change-Id: I05fbf60b7e2c38f82e019d2fec2b5f535defaeae
2019-10-14 15:24:21 -07:00
Yifan Hong
50c9e25251 [REFACTOR] health 2.0: healthd_common -> libhealthloop
This change converts the original healthd_common.cpp to a
C++ class, HealthLoop, that manages the infinite loop in health-related
modules (charger, health HAL, healthd, etc.). By doing so, the global
static variables (including FDs and healthd_mode_ops) are cleaned up.

This helps us implement health HAL 2.1.

In order to support legacy modules (namely, healthd, charger, health HAL
2.0, which all depends on android.hardware.health@2.0-impl), a
healthd_common_adapter.cpp file is added to
android.hardware.health@2.0-impl, so that the following functions
in healthd/healthd.h continues to be implemented using the global
healthd_mode_ops:
    - healthd_register_event
    - healthd_battery_update_internal

Test: boot up the device and run VTS test on health HAL.
Bug: 137670450
Bug: 142260281
Change-Id: Iadcfc1315155404a3600f0e1219b5bc370d96409
2019-10-14 15:24:21 -07:00
Yifan Hong
c04b0a3e20 health 2.0: Move healthd_common.cpp
... so that the next CL has less diff.

Test: see next CL.
Change-Id: I5be187ab859a0b26d615b5ba7af9a26a07880181
2019-10-14 15:24:21 -07:00
Steven Moreland
b3a4d3832e Remove libhwbinder/libhidltransport deps
Since these were combined into libhidlbase.

Bug: 135686713
Test: build only (libhwbinder/libhidltransport are empty)
Change-Id: I075670b64eebbbbd6a6ae0e84ad51bf1c6f5ba36
2019-09-06 01:07:02 +00:00
Peter Kalauskas
0c7812c7f5 Merge "Convert LazyServiceRegistrar usage to singleton"
am: f71728f04b

Change-Id: Ia9c99cc1b986f266f0239aefcd74600d0c3485da
2019-08-16 11:54:24 -07:00
Peter Kalauskas
701e7f6616 Convert LazyServiceRegistrar usage to singleton
Test: lshal
Bug: 139376253
Change-Id: Ib1cbfabec23a488868e807a4a9c2b29cd960cc1e
2019-08-14 13:53:14 -07:00
Yifan Hong
b0673a3b4b Merge "health storage hal vts test: add more tolerance." into qt-dev
am: 5a58efedd8

Change-Id: I0b45e9bf37b70bb6e4b0e00f2a2597d59d04f8bd
2019-06-24 16:35:39 -07:00
Yifan Hong
6eba01f8f4 health storage hal vts test: add more tolerance.
Test: run on blueline
Bug: 135631007
Change-Id: Ie1770a4a152a045e5f40eaf9cd7b551fe391a0b1
Merged-In: Ie1770a4a152a045e5f40eaf9cd7b551fe391a0b1
(cherry picked from commit ae3d61c2c3)
2019-06-21 15:52:43 -07:00
Yifan Hong
ae3d61c2c3 health storage hal vts test: add more tolerance.
Test: run on blueline
Bug: 135631007
Change-Id: Ie1770a4a152a045e5f40eaf9cd7b551fe391a0b1
2019-06-21 15:51:40 -07:00
Steven Moreland
0dc5f389f9 Merge "libhidltransport users user libhidlbase" into qt-dev
am: a27c627f51

Change-Id: I379a04a52e60260e0a73dc7720d3e315038a52ff
2019-06-14 16:18:47 -07:00
Steven Moreland
085a82ecb1 libhidltransport users user libhidlbase
libhidltransport symbols are being moved into libhidlbase in order to
optimize linking/memory usage. libhidltransport will no longer be
required in the future (however removing references to it will come
separately).

Bug: 134961554
Test: boot
Change-Id: Ibcc2db32d3bec1a786b60e11d4820ecd0605f403
2019-06-12 13:49:19 -07:00
Steven Moreland
1ae4615d9f Update hidl makefiles for bpfmt
hidl-generated makefiles are now generated such that bpfmt(file) == file.

Bug: 67417008
Test: enable bpfmt hook
Change-Id: I1f69d292bc23a7cc293a66110cb02d597e1019ad
2019-04-17 09:38:50 -07:00
Yifan Hong
54f20b6256 Update health@1.0 batteryVoltage units.
Both framework BatteryService and all implementations (that uses
BatteryMonitor) uses millivolts for batteryVoltage.

maxChargingVoltage is microvolts and that is correct.

Fixes: 115881119
Test: treehugger

Change-Id: I64044489fe6d56e0d211085d9536fe5cfd95efc4
2019-03-27 16:25:37 -07:00
Yifan Hong
03b2a3477b health vts: implement GTEST_SKIP if not defined.
gtest in Android P tree does not have GTEST_SKIP. Implement
a naive version of it.

Bug: 118852225
Test: manually undefine GTEST_SKIP, test with and without --force
Change-Id: I8df1154d8a94a67ae28e8024de6022fcfe76384d
2019-03-08 15:00:48 -08:00
Treehugger Robot
ace1da7c5b Merge "health: skip VTS on healthd if vendor HAL is present." 2019-03-08 03:18:13 +00:00
Yifan Hong
e6807ddec1 health: skip VTS on healthd if vendor HAL is present.
If vendor HAL is present, healthd is not used by the framework. VTS should
skip testing it when this is the case.

Provide a --force option to the test if one wants to test healthd.

Fixes: 118852225
Test: on walleye, test healthd with and without --force.

Change-Id: I85f792f25406b1c02887a0ac273730e719003e2f
2019-03-07 13:05:11 -08:00
Steven Moreland
a878aee9ab Update makefies: no 'types'
Bug: 123976090
Test: N/A
Change-Id: I30fb04c81889b62775e1b764b965fdb0f893de17
2019-03-04 11:27:17 -08:00
Hridya Valsaraju
bbab8f2a3e Increate testcase timeout for VtsHalHealthStorageV1_0TargetTest
The test is flaky with the current timeout and this CL
increases it to a safe value.

Bug: 120994008
Test: test passes

Change-Id: I63e0e11fcc1eb3bed490cdb21193e2c332cccf80
2019-02-13 17:21:21 -08:00