Tianjie Xu 284752e2bc Log the last command to cache
When performing an update, save the index and cmdline of the current
command into the last command file if this command writes to the stash
either explicitly of implicitly. This mitigates the overhead to update
the last command file for every command. I ran a simple test on angler
and the time to update 1000 times is ~2.3 seconds.

Upon resuming an update, read the saved index first; then
  1. In verification mode, check if all commands before the saved index
     have already produced the expected target blocks. If not, delete the
     last command file so that we will later resume the update from the
     start of the transfer list.
  2. In update mode, skip all commands before the saved index. Therefore,
     we can avoid deleting stashes with duplicate id unintentionally;
     and also speed up the update.

If an update succeeds or is unresumable, delete the last command file.
Bug: 69858743
Test: Unittest passed, apply a failed update with invalid cmd on angler
and check the last_command content, apply a failed update with invalid
source hash and last_command is deleted.
Change-Id: Ib60ba1e3c6d111d9f33097759b17dbcef97a37bf
2018-02-06 16:16:49 -08:00
2017-10-11 16:56:12 -07:00
2017-12-06 08:41:50 -08:00
2013-03-07 13:34:24 -08:00
2018-02-06 16:16:49 -08:00
2017-10-20 01:50:04 -07:00
2017-11-09 12:34:00 -08:00
2018-02-06 16:16:49 -08:00
2017-11-09 12:34:00 -08:00
2017-12-04 20:27:49 -08:00
2014-04-25 15:47:34 -07:00
2017-09-13 10:51:09 -07:00
2017-04-16 15:53:47 -07:00
2017-10-12 10:45:04 -07:00
2017-12-04 20:27:49 -08:00
2017-10-05 12:02:13 -07:00
2017-10-05 12:02:13 -07:00
2017-10-11 16:56:12 -07:00
2017-03-23 21:52:30 +01:00
2017-06-16 15:33:02 -07:00
2017-10-11 16:56:12 -07:00
2017-10-05 12:02:13 -07:00
2017-10-11 16:56:12 -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.
Description
No description provided
Readme 102 MiB
Languages
C++ 50.2%
C 43.6%
Makefile 1.9%
Java 1.8%
Roff 1%
Other 1.4%