#!/bin/bash # Copyright (C) 2019 The Android Open Source Project # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # Script to run bugreport unitests # Must run on a rooted device. # Must run lunch before running the script # Usage: ${ANDROID_BUILD_TOP}/frameworks/base/core/tests/bugreports/run.sh # NOTE: This script replaces the framework-sysconfig.xml on your device, so use with caution. # It tries to replace it when done, but if the script does not finish cleanly # (for e.g. force stopped mid-way) your device will be left in an inconsistent state. # Reflashing will restore the right config. TMP_SYS_CONFIG=/var/tmp/framework-sysconfig.xml if [[ -z $ANDROID_PRODUCT_OUT ]]; then echo "Please lunch before running this test." exit 0 fi # Print every command to console. set -x make -j BugreportManagerTestCases && adb root && adb remount && adb wait-for-device && # Save the sysconfig file in a tmp location and push the test config in adb pull /system/etc/sysconfig/framework-sysconfig.xml "${TMP_SYS_CONFIG}" && adb push $ANDROID_BUILD_TOP/frameworks/base/core/tests/bugreports/config/test-sysconfig.xml /system/etc/sysconfig/framework-sysconfig.xml && # The test app needs to be a priv-app. adb push $OUT/testcases/BugreportManagerTestCases/*/BugreportManagerTestCases.apk /system/priv-app || exit 1 adb reboot && adb wait-for-device && atest BugreportManagerTest || echo "Tests FAILED!" # Restore the saved config file if [ -f "${TMP_SYS_CONFIG}" ]; then SIZE=$(stat --printf="%s" "${TMP_SYS_CONFIG}") if [ SIZE > 0 ]; then adb remount && adb wait-for-device && adb push "${TMP_SYS_CONFIG}" /system/etc/sysconfig/framework-sysconfig.xml && rm "${TMP_SYS_CONFIG}" fi fi