diff --git a/bootstat/boot_reason_test.sh b/bootstat/boot_reason_test.sh index af65135df..e69db12d8 100755 --- a/bootstat/boot_reason_test.sh +++ b/bootstat/boot_reason_test.sh @@ -873,17 +873,30 @@ Its Just So Hard reboot test: - NB: should report reboot,its_just_so_hard - NB: expect log \"... I bootstat: Unknown boot reason: reboot,its_just_so_hard\"" ] test_Its_Just_So_Hard_reboot() { - duration_test + if isDebuggable; then # see below + duration_test + else + duration_test `expr ${DURATION_DEFAULT} + ${DURATION_DEFAULT}` + fi adb shell 'reboot "Its Just So Hard"' wait_for_screen EXPECT_PROPERTY sys.boot.reason reboot,its_just_so_hard EXPECT_PROPERTY persist.sys.boot.reason "reboot,Its Just So Hard" - adb shell su root setprop persist.sys.boot.reason reboot,its_just_so_hard - if checkDebugBuild; then - flag="" + # Do not leave this test with an illegal value in persist.sys.boot.reason + save_ret=${?} # hold on to error code from above two lines + if isDebuggable; then # can do this easy, or we can do this hard. + adb shell su root setprop persist.sys.boot.reason reboot,its_just_so_hard + ( exit ${save_ret} ) # because one can not just do ?=${save_ret} else - flag="--allow_failure" + report_bootstat_logs reboot,its_just_so_hard # report what we have so far + # user build mitigation + adb shell reboot its_just_so_hard + wait_for_screen + ( exit ${save_ret} ) # because one can not just do ?=${save_ret} + EXPECT_PROPERTY sys.boot.reason reboot,its_just_so_hard fi + # Ensure persist.sys.boot.reason now valid, failure here acts as a signal + # that we could choke up following tests. For example test_properties. EXPECT_PROPERTY persist.sys.boot.reason reboot,its_just_so_hard ${flag} report_bootstat_logs reboot,its_just_so_hard } diff --git a/bootstat/bootstat.cpp b/bootstat/bootstat.cpp index c1d799e51..2f9e7a788 100644 --- a/bootstat/bootstat.cpp +++ b/bootstat/bootstat.cpp @@ -225,6 +225,8 @@ const std::map kBootReasonMap = { {"reboot,longkey", 85}, {"reboot,2sec", 86}, {"shutdown,thermal,battery", 87}, + {"reboot,its_just_so_hard", 88}, // produced by boot_reason_test + {"reboot,Its Just So Hard", 89}, // produced by boot_reason_test }; // Converts a string value representing the reason the system booted to an