diff options
Diffstat (limited to 'automated/android/bionic-benchmarks/bionic-benchmarks.sh')
-rwxr-xr-x | automated/android/bionic-benchmarks/bionic-benchmarks.sh | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/automated/android/bionic-benchmarks/bionic-benchmarks.sh b/automated/android/bionic-benchmarks/bionic-benchmarks.sh new file mode 100755 index 0000000..ae6a618 --- /dev/null +++ b/automated/android/bionic-benchmarks/bionic-benchmarks.sh @@ -0,0 +1,79 @@ +#!/bin/sh + +HOST_OUTPUT="$(pwd)/output" +DEVICE_OUTPUT="/data/local/tmp/result_unsorted.txt" +RESULT_FILE="${HOST_OUTPUT}/result.txt" +export RESULT_FILE +LOOPS=1 +TIMEOUT=300 + +usage() { + echo "Usage: $0 [-l <loops count>]" 1>&2 + exit 1 +} + +report_test() { + test_key=$1 sum=$2 loops=$3 units=$4 + + avg=$((sum / loops)) + echo "${test_key} pass ${avg} ${units}" +} + +consolidate_results() { + # Sort timed tests by name + grep _time "${HOST_OUTPUT}/result_unsorted.txt" | sort > "${HOST_OUTPUT}/result_sorted.txt" + + # Count and calculate average for each timed test + while read -r testres; do + test=$(echo "${testres}" | awk '{print $1}') + value=$(echo "${testres}" | awk '{print $3}') + units=$(echo "${testres}" | awk '{print $4}') + + if [ "${test}" != "${curr_test}" ]; then + if [ -n "${curr_test}" ]; then + report_test "${curr_test}" "${sum}" "${LOOPS}" "${units}" >> \ + "${RESULT_FILE}" + fi + curr_test="${test}" + sum=${value} + else + sum=$((sum + value)) + fi + done < "${HOST_OUTPUT}/result_sorted.txt" + # Last test from the loop: + report_test "${curr_test}" "${sum}" "${LOOPS}" "${units}" >> "${RESULT_FILE}" + + # Add non-timed tests to result.txt + grep -v _time "${HOST_OUTPUT}/result_unsorted.txt" | sort -u >> "${RESULT_FILE}" +} + +while getopts "l:" o; do + case "$o" in + # Number of times the benchmarks will run. + l) LOOPS="${OPTARG}" ;; + *) usage ;; + esac +done + +# shellcheck disable=SC1091 +. ../../lib/sh-test-lib +. ../../lib/android-test-lib + +# Test run. +create_out_dir "${HOST_OUTPUT}" + +initialize_adb +wait_boot_completed "${TIMEOUT}" +adb_push "./device-script.sh" "/data/local/tmp/" + +info_msg "About to run bionic-benchmarks on device ${SN}" +adb -s "${SN}" shell /data/local/tmp/device-script.sh "${LOOPS}" 2>&1 \ + | tee "${HOST_OUTPUT}"/device-run.log + +adb_pull "${DEVICE_OUTPUT}" "${HOST_OUTPUT}" + +if [ "${LOOPS}" -gt 1 ]; then + consolidate_results +else + cp -p "${HOST_OUTPUT}/result_unsorted.txt" "${RESULT_FILE}" +fi |