blob: 9198cbba9b3b569483a2eb1a6be709d3a35d314d [file] [log] [blame]
Scott James Remnant0f61cf72015-11-19 14:58:42 -08001#!/bin/sh
Andre Eisenbach7ab59092015-11-10 14:17:20 -08002
Zach Johnsonf73a2072014-12-24 21:07:38 -08003known_tests=(
Scott James Remnant092cf9e2015-11-11 12:41:08 -08004 bluetoothtbd_test
Pavlin Radoslavov304ceeb2017-04-05 16:18:26 -07005 net_test_audio_a2dp_hw
Scott James Remnant092cf9e2015-11-11 12:41:08 -08006 net_test_bluetooth
Zach Johnsonf73a2072014-12-24 21:07:38 -08007 net_test_btcore
Jakub Pawlowskie5c78952016-08-10 09:07:44 -07008 net_test_bta
Ajay Panickerfa717c02015-12-07 14:18:16 -08009 net_test_btif
Zach Johnson22349292014-11-04 21:43:33 -080010 net_test_device
Zach Johnsonf73a2072014-12-24 21:07:38 -080011 net_test_hci
Pavlin Radoslavov7e586262016-08-28 16:59:51 -070012 net_test_stack
Jakub Pawlowskie47b7692016-09-28 07:36:54 -070013 net_test_stack_multi_adv
Jakub Pawlowski103b2c42017-04-28 14:59:46 -070014 net_test_stack_ad_parser
Jack He2ec87462016-12-15 02:48:33 -080015 net_test_stack_smp
Jakub Pawlowskib707f442017-07-03 15:39:36 -070016 net_test_types
Ajay Panicker2b7e9052017-03-01 10:00:30 -080017 net_test_btu_message_loop
Zach Johnsonf73a2072014-12-24 21:07:38 -080018 net_test_osi
Ajay Panicker2b7e9052017-03-01 10:00:30 -080019 performance_test
Zach Johnsonf73a2072014-12-24 21:07:38 -080020)
21
Ajay Panickerfa717c02015-12-07 14:18:16 -080022known_remote_tests=(
23 net_test_rfcomm
24)
25
26
Zach Johnsonf73a2072014-12-24 21:07:38 -080027usage() {
Scott James Remnant0f61cf72015-11-19 14:58:42 -080028 binary="$(basename "$0")"
29 echo "Usage: ${binary} --help"
30 echo " ${binary} [-i <iterations>] [-s <specific device>] [--all] [<test name>[.<filter>] ...] [--<arg> ...]"
Scott James Remnant6babef02015-11-18 11:18:02 -080031 echo
32 echo "Unknown long arguments are passed to the test."
33 echo
Zach Johnsonf73a2072014-12-24 21:07:38 -080034 echo "Known test names:"
35
Scott James Remnant0f61cf72015-11-19 14:58:42 -080036 for name in "${known_tests[@]}"
Zach Johnsonf73a2072014-12-24 21:07:38 -080037 do
Scott James Remnant0f61cf72015-11-19 14:58:42 -080038 echo " ${name}"
Zach Johnsonf73a2072014-12-24 21:07:38 -080039 done
Ajay Panickerfa717c02015-12-07 14:18:16 -080040
41 echo
42 echo "Known tests that need a remote device:"
43 for name in "${known_remote_tests[@]}"
44 do
45 echo " ${name}"
46 done
Zach Johnsonf73a2072014-12-24 21:07:38 -080047}
48
Scott James Remnanta05d9362015-11-19 14:04:15 -080049iterations=1
Scott James Remnant707fc0c2015-11-19 14:03:27 -080050device=
Scott James Remnant03e8be82015-11-17 15:09:43 -080051tests=()
Scott James Remnant6babef02015-11-18 11:18:02 -080052test_args=()
Scott James Remnant0f61cf72015-11-19 14:58:42 -080053while [ $# -gt 0 ]
54do
Scott James Remnant03e8be82015-11-17 15:09:43 -080055 case "$1" in
56 -h|--help)
57 usage
58 exit 0
59 ;;
Scott James Remnanta05d9362015-11-19 14:04:15 -080060 -i)
61 shift
62 if [ $# -eq 0 ]; then
63 echo "error: number of iterations expected" 1>&2
64 usage
Scott James Remnant0f61cf72015-11-19 14:58:42 -080065 exit 2
Scott James Remnanta05d9362015-11-19 14:04:15 -080066 fi
67 iterations=$(( $1 ))
68 shift
69 ;;
Scott James Remnant03e8be82015-11-17 15:09:43 -080070 -s)
71 shift
72 if [ $# -eq 0 ]; then
73 echo "error: no device specified" 1>&2
74 usage
Scott James Remnant0f61cf72015-11-19 14:58:42 -080075 exit 2
Scott James Remnant03e8be82015-11-17 15:09:43 -080076 fi
77 device="$1"
78 shift
79 ;;
80 --all)
Scott James Remnant0f61cf72015-11-19 14:58:42 -080081 tests+=( "${known_tests[@]}" )
Scott James Remnant03e8be82015-11-17 15:09:43 -080082 shift
83 ;;
Scott James Remnant6babef02015-11-18 11:18:02 -080084 --*)
85 test_args+=( "$1" )
86 shift
87 ;;
Scott James Remnant03e8be82015-11-17 15:09:43 -080088 *)
Scott James Remnant0f61cf72015-11-19 14:58:42 -080089 tests+=( "$1" )
Scott James Remnant03e8be82015-11-17 15:09:43 -080090 shift
91 ;;
92 esac
93done
Zach Johnsonf73a2072014-12-24 21:07:38 -080094
Scott James Remnant0f61cf72015-11-19 14:58:42 -080095if [ "${#tests[@]}" -eq 0 ]; then
96 tests+=( "${known_tests[@]}" )
Scott James Remnant03e8be82015-11-17 15:09:43 -080097fi
Scott James Remnant6babef02015-11-18 11:18:02 -080098
Scott James Remnant0f61cf72015-11-19 14:58:42 -080099adb=( "adb" )
100if [ -n "${device}" ]; then
101 adb+=( "-s" "${device}" )
102fi
Scott James Remnant707fc0c2015-11-19 14:03:27 -0800103
Scott James Remnant0f61cf72015-11-19 14:58:42 -0800104failed_tests=()
105for spec in "${tests[@]}"
Scott James Remnant707fc0c2015-11-19 14:03:27 -0800106do
107 name="${spec%%.*}"
Scott James Remnant0f61cf72015-11-19 14:58:42 -0800108 binary="/data/nativetest/${name}/${name}"
109
110 push_command=( "${adb[@]}" push {"${ANDROID_PRODUCT_OUT}",}"${binary}" )
111 test_command=( "${adb[@]}" shell "${binary}" )
Scott James Remnant707fc0c2015-11-19 14:03:27 -0800112 if [ "${name}" != "${spec}" ]; then
113 filter="${spec#*.}"
Scott James Remnant0f61cf72015-11-19 14:58:42 -0800114 test_command+=( "--gtest_filter=${filter}" )
Scott James Remnant707fc0c2015-11-19 14:03:27 -0800115 fi
Scott James Remnant0f61cf72015-11-19 14:58:42 -0800116 test_command+=( "${test_args[@]}" )
117
118 echo "--- ${name} ---"
Scott James Remnant707fc0c2015-11-19 14:03:27 -0800119 echo "pushing..."
Scott James Remnant0f61cf72015-11-19 14:58:42 -0800120 "${push_command[@]}"
Scott James Remnant707fc0c2015-11-19 14:03:27 -0800121 echo "running..."
Scott James Remnanta05d9362015-11-19 14:04:15 -0800122 failed_count=0
123 for i in $(seq 1 ${iterations})
124 do
Scott James Remnant0f61cf72015-11-19 14:58:42 -0800125 "${test_command[@]}" || failed_count=$(( $failed_count + 1 ))
Scott James Remnanta05d9362015-11-19 14:04:15 -0800126 done
127
128 if [ $failed_count != 0 ]; then
Scott James Remnant0f61cf72015-11-19 14:58:42 -0800129 failed_tests+=( "${name} ${failed_count}/${iterations}" )
Scott James Remnant707fc0c2015-11-19 14:03:27 -0800130 fi
131done
132
Scott James Remnant0f61cf72015-11-19 14:58:42 -0800133if [ "${#failed_tests[@]}" -ne 0 ]; then
134 for failed_test in "${failed_tests[@]}"
135 do
136 echo "!!! FAILED TEST: ${failed_test} !!!"
137 done
Scott James Remnant707fc0c2015-11-19 14:03:27 -0800138 exit 1
139fi
140
141exit 0