No description
Find a file
Tianjie Xu a88cc5440e Switch to bionic gtest in bootable/recovery
We encountered segfaults in Imgdiff host tests due to the failure to
reset states of getopt. The problem can be solved by switching to use
bionic's gtest where a new process is forked for each test.

Also modify the recovery_component_test to make sure it runs in parallel.
Changes include:
  1. Merge the writes to misc partition into one single test.
  2. Change the hard coded location "/cache/saved.file" into a configurable
  variable.

Bug: 67849209
Test: recovery tests pass

Change-Id: I165d313f32b83393fb7922c5078636ac40b50bc2
2017-11-03 14:09:11 -07:00
applypatch Switch to bionic gtest in bootable/recovery 2017-11-03 14:09:11 -07:00
boot_control Drop -Wno-unused-parameter. 2017-10-11 16:56:12 -07:00
bootloader_message Switch to bionic gtest in bootable/recovery 2017-11-03 14:09:11 -07:00
edify edify: Export the header and move to Soong. 2017-10-09 14:08:00 -07:00
etc Merge "init.rc: Remove sys.powerctl action" am: 9848209088 am: 9fcc7c8253 2017-04-18 18:33:09 +00:00
fonts more font improvements and cleanup 2013-03-07 13:34:24 -08:00
minadbd Switch to bionic gtest in bootable/recovery 2017-11-03 14:09:11 -07:00
minui libdrm_platform is now libdrm 2017-10-19 22:30:57 -07:00
otafault otafault: Add the missing #include <string>. 2017-10-11 12:21:17 -07:00
otautil otautil: Move RangeSet implementation into rangeset.cpp. 2017-10-16 11:28:18 -07:00
private Add a binary path param to update_binary_command(). 2017-05-08 12:16:45 -07:00
res-hdpi/images update the recovery background image with new translation 2017-09-19 23:36:28 -07:00
res-mdpi/images update the recovery background image with new translation 2017-09-19 23:36:28 -07:00
res-xhdpi/images update the recovery background image with new translation 2017-09-19 23:36:28 -07:00
res-xxhdpi/images update the recovery background image with new translation 2017-09-19 23:36:28 -07:00
res-xxxhdpi/images update the recovery background image with new translation 2017-09-19 23:36:28 -07:00
tests Switch to bionic gtest in bootable/recovery 2017-11-03 14:09:11 -07:00
tools Import translations. DO NOT MERGE 2017-10-20 01:50:04 -07:00
uncrypt Revert "Revert "Move error_code.h into otautil."" 2017-10-09 14:07:54 -07:00
update_verifier update_verifier: Fix the wrong computation with group_range_count. 2017-10-29 14:51:25 -07:00
updater Finish the new data receiver when update fails 2017-10-20 11:14:56 -07:00
.clang-format clang-format: Remove the override of PenaltyExcessCharacter. 2017-09-26 15:07:45 -07:00
adb_install.cpp Don't write to /sys/class/android_usb/android0/enable with configfs. 2017-05-11 14:50:20 -07:00
adb_install.h adb_install: Stop passing RecoveryUI as a parameter. 2017-05-01 11:47:43 -07:00
Android.bp applypatch: Move to Soong. 2017-10-11 16:26:06 -07:00
Android.mk Merge "applypatch: Move to Soong." 2017-10-12 16:12:48 +00:00
asn1_decoder.cpp Checking unsigned variable less than zero 2017-03-23 17:07:39 +01:00
asn1_decoder.h Refactor asn1_decoder functions into a class. 2017-03-21 15:17:43 -07:00
bootloader.h Create bootloader_message static library. 2016-10-18 11:37:05 -07:00
CleanSpec.mk recovery: minui: add adf backend 2014-04-25 15:47:34 -07:00
common.h Remove EXPAND/STRINGIFY macros. 2017-09-13 10:51:09 -07:00
default_device.cpp Auto-detect whether to use the long-press UI. 2015-04-10 15:14:35 -07:00
device.cpp Add a new option in recovery menu to test the background texts 2017-09-27 00:27:38 -07:00
device.h Add a new option in recovery menu to test the background texts 2017-09-27 00:27:38 -07:00
fuse_sdcard_provider.cpp Check an edge case when read(2) returns 0 2016-08-31 19:11:41 -07:00
fuse_sdcard_provider.h recovery: Fork a process for fuse when sideloading from SD card. 2016-01-13 21:29:20 -08:00
fuse_sideload.cpp fuse_sideload: Change the minimal block size to 4096. 2017-05-02 15:56:22 -07:00
fuse_sideload.h recovery: Switch fuse_* to C++. 2015-07-24 11:22:05 -07:00
install.cpp Revert "Revert "Move error_code.h into otautil."" 2017-10-09 14:07:54 -07:00
install.h recovery: Change install_package() to take std::string. 2017-05-01 12:31:48 -07:00
interlace-frames.py Go back to the old ear-wiggling Android animation. 2016-04-21 14:26:14 -07:00
mounts.cpp libmounts: Remove two dead functions. 2017-04-16 15:53:47 -07:00
mounts.h libmounts: Remove two dead functions. 2017-04-16 15:53:47 -07:00
NOTICE Automated import from //branches/master/...@140824,140824 2009-03-24 18:36:42 -07:00
OWNERS Fix owner email address. 2017-10-12 10:45:04 -07:00
README.md Add checkers and tests for empty locale in PNG file 2017-01-18 19:37:06 -08:00
recovery-persist.cpp Fix the android-cloexec-* warnings in bootable/recovery 2017-07-19 12:17:41 -07:00
recovery-persist.rc recovery: reduce overall boot time 2017-09-18 13:55:32 -07:00
recovery-refresh.cpp Cleanup the duplicates of logs rotation functions 2016-11-03 18:16:33 -07:00
recovery-refresh.rc recovery: reduce overall boot time 2017-09-18 13:55:32 -07:00
recovery.cpp Drop -Wno-unused-parameter. 2017-10-11 16:56:12 -07:00
res-560dpi Make text for recovery larger on angler 2016-05-02 12:20:04 -07:00
roots.cpp roots: Fix an issue with volume_for_path(). 2017-10-02 11:18:13 -07:00
roots.h roots: Fix an issue with volume_for_path(). 2017-10-02 11:18:13 -07:00
rotate_logs.cpp rotate_logs: Clean up the header includes. 2017-10-18 11:08:37 -07:00
rotate_logs.h rotate_logs: Clean up the header includes. 2017-10-18 11:08:37 -07:00
screen_ui.cpp vr_ui: drawing changes 2017-10-05 12:02:13 -07:00
screen_ui.h vr_ui: drawing changes 2017-10-05 12:02:13 -07:00
stub_ui.h Drop -Wno-unused-parameter. 2017-10-11 16:56:12 -07:00
ui.cpp ui: Move locale and friends into ScreenRecoveryUI class. 2017-09-11 12:19:32 -07:00
ui.h ui: Move locale and friends into ScreenRecoveryUI class. 2017-09-11 12:19:32 -07:00
verifier.cpp Move rangeset.h and print_sha1.h into otautil. 2017-10-10 15:52:11 -07:00
verifier.h Const modifiers 2017-03-23 21:52:30 +01:00
vr_device.cpp Introduce VR recovery ui 2017-06-16 15:33:02 -07:00
vr_ui.cpp Drop -Wno-unused-parameter. 2017-10-11 16:56:12 -07:00
vr_ui.h vr_ui: drawing changes 2017-10-05 12:02:13 -07:00
wear_device.cpp Allow customizing WearRecoveryUI via Makefile variables. 2017-08-10 09:31:17 -07:00
wear_ui.cpp Drop -Wno-unused-parameter. 2017-10-11 16:56:12 -07:00
wear_ui.h wear_ui: Remove Print()/ShowFile()/PutChar(). 2017-09-08 12:22:43 -07:00

The Recovery Image

Quick turn-around testing

mm -j && m ramdisk-nodeps && m recoveryimage-nodeps

# To boot into the new recovery image
# without flashing the recovery partition:
adb reboot bootloader
fastboot boot $ANDROID_PRODUCT_OUT/recovery.img

Running the tests

# After setting up environment and lunch.
mmma -j bootable/recovery

# Running the tests on device.
adb root
adb sync data

# 32-bit device
adb shell /data/nativetest/recovery_unit_test/recovery_unit_test
adb shell /data/nativetest/recovery_component_test/recovery_component_test

# Or 64-bit device
adb shell /data/nativetest64/recovery_unit_test/recovery_unit_test
adb shell /data/nativetest64/recovery_component_test/recovery_component_test

Running the manual tests

recovery-refresh and recovery-persist executables exist only on systems without /cache partition. And we need to follow special steps to run tests for them.

  • Execute the test on an A/B device first. The test should fail but it will log some contents to pmsg.

  • Reboot the device immediately and run the test again. The test should save the contents of pmsg buffer into /data/misc/recovery/inject.txt. Test will pass if this file has expected contents.

ResourceTest validates whether the png files are qualified as background text image under recovery.

1. `adb sync data` to make sure the test-dir has the images to test.
2. The test will automatically pickup and verify all `_text.png` files in
   the test dir.