Add a repohook to clang-format changes.

It would clang-format according to the local style file in
.clang-format, unless explicitly skipped with --no-verify.

An example output is as follows:

[COMMIT dda6b1ee4247] test
[FAILED] clang_format
    The following files have formatting errors:
    You can run `/mnt/aosp/aosp-master/tools/repohooks/tools/ --fix --clang-format /mnt/aosp/aosp-master/prebuilts/clang/host/linux-x86/clang-stable/bin/clang-format --git-clang-format /mnt/aosp/aosp-master/prebuilts/clang/host/linux-x86/clang-stable/bin/git-clang-format --style file --commit dda6b1ee424710760bbab4421e95239fa6a2b40d` to fix this
[COMMIT be69a2c4ba16] Add a repohook to clang-format the change.
[RUNNING 2/2] clang_format
An automatic fix can be attempted for the "clang_format" hook. Do you want to run it? (Yes/no)?
Fix successfully applied. Amend the current commit before attempting to upload again.

More details about repohooks can be found at:

Test: `repo upload` a CL.
Change-Id: Ie8203a317eb3be7acd5592e03374873997647aa0
1 file changed
tree: c4eb62412169843499b196496e8d0ae0a349eb39
  1. applypatch/
  2. boot_control/
  3. bootloader_message/
  4. edify/
  5. etc/
  6. fonts/
  7. minadbd/
  8. minui/
  9. otafault/
  10. otautil/
  11. private/
  12. res-hdpi/
  13. res-mdpi/
  14. res-xhdpi/
  15. res-xxhdpi/
  16. res-xxxhdpi/
  17. tests/
  18. tools/
  19. uncrypt/
  20. update_verifier/
  21. updater/
  22. .clang-format
  23. adb_install.cpp
  24. adb_install.h
  25. Android.bp
  27. asn1_decoder.cpp
  28. asn1_decoder.h
  29. bootloader.h
  31. common.h
  32. default_device.cpp
  33. device.cpp
  34. device.h
  35. fuse_sdcard_provider.cpp
  36. fuse_sdcard_provider.h
  37. fuse_sideload.cpp
  38. fuse_sideload.h
  39. install.cpp
  40. install.h
  42. mounts.cpp
  43. mounts.h
  44. NOTICE
  45. OWNERS
  46. PREUPLOAD.cfg
  48. recovery-persist.cpp
  49. recovery-persist.rc
  50. recovery-refresh.cpp
  51. recovery-refresh.rc
  52. recovery.cpp
  53. roots.cpp
  54. roots.h
  55. rotate_logs.cpp
  56. rotate_logs.h
  57. screen_ui.cpp
  58. screen_ui.h
  59. stub_ui.h
  60. ui.cpp
  61. ui.h
  62. verifier.cpp
  63. verifier.h
  64. vr_device.cpp
  65. vr_ui.cpp
  66. vr_ui.h
  67. wear_device.cpp
  68. wear_ui.cpp
  69. wear_ui.h

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.