You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
117 lines
3.2 KiB
117 lines
3.2 KiB
#!/bin/bash
|
|
|
|
# Copyright 2020, 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.
|
|
|
|
# Tails android system logs releven for crash tests
|
|
|
|
show_usage_and_exit() {
|
|
echo "Tail logcat for NNAPI Crash Test logs, driver error logs and failures. Options:"
|
|
echo " -e | --show_driver_errors : to enable error log for drivers"
|
|
echo " -d | --driver_log_tag TAG : to use in conjunction with -e specify the LOG tags used by the target driver."
|
|
echo " To specify multiple tags just quote them and separate them with a space char."
|
|
echo " If this option is omitted, a list of known tags is used."
|
|
echo " -o | --save_output_to FILE : to save logcat output to the given file"
|
|
echo " -s DEVICE_SERIAL_NUMBER : to specify the serial number of the device to connect to"
|
|
echo " -h : show this message and exit"
|
|
exit 1
|
|
}
|
|
|
|
OPTS="$(getopt -o heo:s:d: -l show_driver_errors,save_output_to:driver_log_tag: -- "$@")"
|
|
eval set -- "$OPTS"
|
|
|
|
SHOW_DRIVERS_ERRORS=false
|
|
OUTPUT_FILE=""
|
|
DEVICE_ID_OPT=""
|
|
DRIVER_LOG_TAGS=()
|
|
while [ $# -gt 0 ] ; do
|
|
case "$1" in
|
|
-h)
|
|
shift
|
|
show_usage_and_exit
|
|
;;
|
|
-e|--show_driver_errors)
|
|
SHOW_DRIVERS_ERRORS=true
|
|
shift
|
|
;;
|
|
-o|--save_output_to)
|
|
OUTPUT_FILE="$2"
|
|
shift 2
|
|
;;
|
|
-s)
|
|
DEVICE_ID_OPT="-s $2"
|
|
shift 2
|
|
;;
|
|
-d|--driver_log_tag)
|
|
read -a DRIVER_LOG_TAGS <<< "$2"
|
|
shift 2
|
|
;;
|
|
-- )
|
|
shift
|
|
break
|
|
;;
|
|
* )
|
|
echo "Invalid argument: $1"
|
|
show_usage_and_exit
|
|
;;
|
|
esac
|
|
done
|
|
|
|
CRASH_TEST_LOG_TAGS+=("NN_BENCHMARK")
|
|
while IFS='' read -r tag; do
|
|
CRASH_TEST_LOG_TAGS+=("$tag");
|
|
done <<< $(find src/com/android/nn/crashtest -name '*.java' -exec grep "TAG =" {} \; \
|
|
| grep -Po '(?<=")(.+)(?=")')
|
|
|
|
LOG_TAG_FILTER=""
|
|
|
|
# Info level from crash tests source
|
|
for tag in "${CRASH_TEST_LOG_TAGS[@]}"; do
|
|
LOG_TAG_FILTER="${LOG_TAG_FILTER} ${tag}:I"
|
|
done
|
|
|
|
if [[ "$SHOW_DRIVERS_ERRORS" = true ]]; then
|
|
if [ ${#DRIVER_LOG_TAGS[@]} -eq 0 ]; then
|
|
# Qualcomm (drivers for NNAPI1.2)
|
|
# Google
|
|
# SLSI
|
|
DRIVER_LOG_TAGS=(\
|
|
"android.hardware.neuralnetworks@1.2-service"\
|
|
"Darwinn"\
|
|
"Eden"\
|
|
)
|
|
fi
|
|
|
|
# Error level for listed driver processes
|
|
for tag in "${DRIVER_LOG_TAGS[@]}"; do
|
|
LOG_TAG_FILTER="${LOG_TAG_FILTER} ${tag}:E"
|
|
done
|
|
elif [ ${#DRIVER_LOG_TAGS[@]} -ne 0 ]; then
|
|
show_usage_and_exit
|
|
fi
|
|
|
|
# Fatal message for everything else to show crash dumps
|
|
LOG_TAG_FILTER="${LOG_TAG_FILTER} *:F"
|
|
|
|
export ANDROID_LOG_TAGS="${LOG_TAG_FILTER}"
|
|
|
|
if [[ -z "$OUTPUT_FILE" ]]; then
|
|
adb ${DEVICE_ID_OPT:+"$DEVICE_ID_OPT"} logcat -v color
|
|
else
|
|
adb ${DEVICE_ID_OPT:+"$DEVICE_ID_OPT"} logcat -v color | tee "$OUTPUT_FILE"
|
|
fi
|
|
|
|
|
|
|