Loading system/test/run_unit_tests.sh +68 −53 Original line number Diff line number Diff line #!/usr/bin/env bash CR=$'\n' #!/bin/sh known_tests=( net_test_btcore Loading @@ -10,78 +8,53 @@ known_tests=( ) usage() { echo "Usage: $0 --help" echo " $0 [-s <specific device>] [--all] [<test name>[.<filter>] ...] [--<arg> ...]" binary="$(basename "$0")" echo "Usage: ${binary} --help" echo " ${binary} [-i <iterations>] [-s <specific device>] [--all] [<test name>[.<filter>] ...] [--<arg> ...]" echo echo "Unknown long arguments are passed to the test." echo echo "Known test names:" for name in ${known_tests[*]} for name in "${known_tests[@]}" do echo " $name" echo " ${name}" done } run_tests() { adb="adb${1:+ -s $1}" shift test_args=() for arg do shift if [ "$arg" == "--" ]; then break else test_args+=( "$arg" ) fi done failed_tests='' for spec in $* do name="${spec%%.*}" if [ "${name}" != "${spec}" ]; then filter="${spec#*.}" fi echo "--- $name ---" echo "pushing..." $adb push {$ANDROID_PRODUCT_OUT,}/data/nativetest/$name/$name echo "running..." $adb shell data/nativetest/$name/$name${filter:+ "--gtest_filter=${filter}"} ${test_args[*]} if [ $? != 0 ]; then failed_tests="$failed_tests$CR!!! FAILED TEST: $name !!!"; fi done if [ "$failed_tests" != "" ]; then echo "$failed_tests"; return 1 fi return 0 } iterations=1 device= tests=() test_args=() while [ $# -gt 0 ]; do while [ $# -gt 0 ] do case "$1" in -h|--help) usage exit 0 ;; -i) shift if [ $# -eq 0 ]; then echo "error: number of iterations expected" 1>&2 usage exit 2 fi iterations=$(( $1 )) shift ;; -s) shift if [ $# -eq 0 ]; then echo "error: no device specified" 1>&2 usage exit 1 exit 2 fi device="$1" shift ;; --all) tests+=( ${known_tests[*]} ) tests+=( "${known_tests[@]}" ) shift ;; --*) Loading @@ -89,14 +62,56 @@ while [ $# -gt 0 ]; do shift ;; *) tests+=( $1 ) tests+=( "$1" ) shift ;; esac done if [ ${#tests[*]} -eq 0 ]; then tests+=( ${known_tests[*]} ) if [ "${#tests[@]}" -eq 0 ]; then tests+=( "${known_tests[@]}" ) fi adb=( "adb" ) if [ -n "${device}" ]; then adb+=( "-s" "${device}" ) fi failed_tests=() for spec in "${tests[@]}" do name="${spec%%.*}" binary="/data/nativetest/${name}/${name}" push_command=( "${adb[@]}" push {"${ANDROID_PRODUCT_OUT}",}"${binary}" ) test_command=( "${adb[@]}" shell "${binary}" ) if [ "${name}" != "${spec}" ]; then filter="${spec#*.}" test_command+=( "--gtest_filter=${filter}" ) fi test_command+=( "${test_args[@]}" ) echo "--- ${name} ---" echo "pushing..." "${push_command[@]}" echo "running..." failed_count=0 for i in $(seq 1 ${iterations}) do "${test_command[@]}" || failed_count=$(( $failed_count + 1 )) done if [ $failed_count != 0 ]; then failed_tests+=( "${name} ${failed_count}/${iterations}" ) fi done run_tests "$device" ${test_args[*]} -- ${tests[*]} || exit 1 if [ "${#failed_tests[@]}" -ne 0 ]; then for failed_test in "${failed_tests[@]}" do echo "!!! FAILED TEST: ${failed_test} !!!" done exit 1 fi exit 0 Loading
system/test/run_unit_tests.sh +68 −53 Original line number Diff line number Diff line #!/usr/bin/env bash CR=$'\n' #!/bin/sh known_tests=( net_test_btcore Loading @@ -10,78 +8,53 @@ known_tests=( ) usage() { echo "Usage: $0 --help" echo " $0 [-s <specific device>] [--all] [<test name>[.<filter>] ...] [--<arg> ...]" binary="$(basename "$0")" echo "Usage: ${binary} --help" echo " ${binary} [-i <iterations>] [-s <specific device>] [--all] [<test name>[.<filter>] ...] [--<arg> ...]" echo echo "Unknown long arguments are passed to the test." echo echo "Known test names:" for name in ${known_tests[*]} for name in "${known_tests[@]}" do echo " $name" echo " ${name}" done } run_tests() { adb="adb${1:+ -s $1}" shift test_args=() for arg do shift if [ "$arg" == "--" ]; then break else test_args+=( "$arg" ) fi done failed_tests='' for spec in $* do name="${spec%%.*}" if [ "${name}" != "${spec}" ]; then filter="${spec#*.}" fi echo "--- $name ---" echo "pushing..." $adb push {$ANDROID_PRODUCT_OUT,}/data/nativetest/$name/$name echo "running..." $adb shell data/nativetest/$name/$name${filter:+ "--gtest_filter=${filter}"} ${test_args[*]} if [ $? != 0 ]; then failed_tests="$failed_tests$CR!!! FAILED TEST: $name !!!"; fi done if [ "$failed_tests" != "" ]; then echo "$failed_tests"; return 1 fi return 0 } iterations=1 device= tests=() test_args=() while [ $# -gt 0 ]; do while [ $# -gt 0 ] do case "$1" in -h|--help) usage exit 0 ;; -i) shift if [ $# -eq 0 ]; then echo "error: number of iterations expected" 1>&2 usage exit 2 fi iterations=$(( $1 )) shift ;; -s) shift if [ $# -eq 0 ]; then echo "error: no device specified" 1>&2 usage exit 1 exit 2 fi device="$1" shift ;; --all) tests+=( ${known_tests[*]} ) tests+=( "${known_tests[@]}" ) shift ;; --*) Loading @@ -89,14 +62,56 @@ while [ $# -gt 0 ]; do shift ;; *) tests+=( $1 ) tests+=( "$1" ) shift ;; esac done if [ ${#tests[*]} -eq 0 ]; then tests+=( ${known_tests[*]} ) if [ "${#tests[@]}" -eq 0 ]; then tests+=( "${known_tests[@]}" ) fi adb=( "adb" ) if [ -n "${device}" ]; then adb+=( "-s" "${device}" ) fi failed_tests=() for spec in "${tests[@]}" do name="${spec%%.*}" binary="/data/nativetest/${name}/${name}" push_command=( "${adb[@]}" push {"${ANDROID_PRODUCT_OUT}",}"${binary}" ) test_command=( "${adb[@]}" shell "${binary}" ) if [ "${name}" != "${spec}" ]; then filter="${spec#*.}" test_command+=( "--gtest_filter=${filter}" ) fi test_command+=( "${test_args[@]}" ) echo "--- ${name} ---" echo "pushing..." "${push_command[@]}" echo "running..." failed_count=0 for i in $(seq 1 ${iterations}) do "${test_command[@]}" || failed_count=$(( $failed_count + 1 )) done if [ $failed_count != 0 ]; then failed_tests+=( "${name} ${failed_count}/${iterations}" ) fi done run_tests "$device" ${test_args[*]} -- ${tests[*]} || exit 1 if [ "${#failed_tests[@]}" -ne 0 ]; then for failed_test in "${failed_tests[@]}" do echo "!!! FAILED TEST: ${failed_test} !!!" done exit 1 fi exit 0