Scott James Remnant | 0f61cf7 | 2015-11-19 14:58:42 -0800 | [diff] [blame] | 1 | #!/bin/sh |
Andre Eisenbach | 7ab5909 | 2015-11-10 14:17:20 -0800 | [diff] [blame] | 2 | |
Zach Johnson | f73a207 | 2014-12-24 21:07:38 -0800 | [diff] [blame] | 3 | known_tests=( |
Cheney Ni | aef115f | 2018-11-07 08:41:55 +0800 | [diff] [blame] | 4 | audio_bluetooth_hw_test |
Cheney Ni | ad05f3e | 2018-11-08 16:41:02 +0800 | [diff] [blame] | 5 | bluetooth-test-audio-hal-interface |
Jack He | c27d257 | 2018-07-25 12:02:22 -0700 | [diff] [blame] | 6 | bluetooth_test_common |
Scott James Remnant | 092cf9e | 2015-11-11 12:41:08 -0800 | [diff] [blame] | 7 | bluetoothtbd_test |
Pavlin Radoslavov | 304ceeb | 2017-04-05 16:18:26 -0700 | [diff] [blame] | 8 | net_test_audio_a2dp_hw |
Ajay Panicker | 2c822c9 | 2018-02-21 21:04:24 -0800 | [diff] [blame] | 9 | net_test_avrcp |
Scott James Remnant | 092cf9e | 2015-11-11 12:41:08 -0800 | [diff] [blame] | 10 | net_test_bluetooth |
Zach Johnson | f73a207 | 2014-12-24 21:07:38 -0800 | [diff] [blame] | 11 | net_test_btcore |
Jakub Pawlowski | e5c7895 | 2016-08-10 09:07:44 -0700 | [diff] [blame] | 12 | net_test_bta |
Ajay Panicker | fa717c0 | 2015-12-07 14:18:16 -0800 | [diff] [blame] | 13 | net_test_btif |
Jack He | d366807 | 2017-09-14 17:13:19 -0700 | [diff] [blame] | 14 | net_test_btif_profile_queue |
Zach Johnson | 2234929 | 2014-11-04 21:43:33 -0800 | [diff] [blame] | 15 | net_test_device |
Zach Johnson | f73a207 | 2014-12-24 21:07:38 -0800 | [diff] [blame] | 16 | net_test_hci |
Pavlin Radoslavov | 7e58626 | 2016-08-28 16:59:51 -0700 | [diff] [blame] | 17 | net_test_stack |
Jakub Pawlowski | e47b769 | 2016-09-28 07:36:54 -0700 | [diff] [blame] | 18 | net_test_stack_multi_adv |
Jakub Pawlowski | 103b2c4 | 2017-04-28 14:59:46 -0700 | [diff] [blame] | 19 | net_test_stack_ad_parser |
Jack He | 2ec8746 | 2016-12-15 02:48:33 -0800 | [diff] [blame] | 20 | net_test_stack_smp |
Jakub Pawlowski | b707f44 | 2017-07-03 15:39:36 -0700 | [diff] [blame] | 21 | net_test_types |
Ajay Panicker | 2b7e905 | 2017-03-01 10:00:30 -0800 | [diff] [blame] | 22 | net_test_btu_message_loop |
Zach Johnson | f73a207 | 2014-12-24 21:07:38 -0800 | [diff] [blame] | 23 | net_test_osi |
Jack He | 297cca4 | 2017-10-19 14:25:26 -0700 | [diff] [blame] | 24 | net_test_performance |
Jack He | 9b423ec | 2018-04-20 22:04:21 -0700 | [diff] [blame] | 25 | net_test_stack_rfcomm |
Jakub Pawlowski | e85bc52 | 2018-11-09 14:41:01 +0100 | [diff] [blame] | 26 | net_test_gatt_conn_multiplexing |
Zach Johnson | f73a207 | 2014-12-24 21:07:38 -0800 | [diff] [blame] | 27 | ) |
28 | |||||
Ajay Panicker | fa717c0 | 2015-12-07 14:18:16 -0800 | [diff] [blame] | 29 | known_remote_tests=( |
Jack He | 9b423ec | 2018-04-20 22:04:21 -0700 | [diff] [blame] | 30 | net_test_rfcomm_suite |
Ajay Panicker | fa717c0 | 2015-12-07 14:18:16 -0800 | [diff] [blame] | 31 | ) |
32 | |||||
33 | |||||
Zach Johnson | f73a207 | 2014-12-24 21:07:38 -0800 | [diff] [blame] | 34 | usage() { |
Scott James Remnant | 0f61cf7 | 2015-11-19 14:58:42 -0800 | [diff] [blame] | 35 | binary="$(basename "$0")" |
36 | echo "Usage: ${binary} --help" | ||||
37 | echo " ${binary} [-i <iterations>] [-s <specific device>] [--all] [<test name>[.<filter>] ...] [--<arg> ...]" | ||||
Scott James Remnant | 6babef0 | 2015-11-18 11:18:02 -0800 | [diff] [blame] | 38 | echo |
39 | echo "Unknown long arguments are passed to the test." | ||||
40 | echo | ||||
Zach Johnson | f73a207 | 2014-12-24 21:07:38 -0800 | [diff] [blame] | 41 | echo "Known test names:" |
42 | |||||
Scott James Remnant | 0f61cf7 | 2015-11-19 14:58:42 -0800 | [diff] [blame] | 43 | for name in "${known_tests[@]}" |
Zach Johnson | f73a207 | 2014-12-24 21:07:38 -0800 | [diff] [blame] | 44 | do |
Scott James Remnant | 0f61cf7 | 2015-11-19 14:58:42 -0800 | [diff] [blame] | 45 | echo " ${name}" |
Zach Johnson | f73a207 | 2014-12-24 21:07:38 -0800 | [diff] [blame] | 46 | done |
Ajay Panicker | fa717c0 | 2015-12-07 14:18:16 -0800 | [diff] [blame] | 47 | |
48 | echo | ||||
49 | echo "Known tests that need a remote device:" | ||||
50 | for name in "${known_remote_tests[@]}" | ||||
51 | do | ||||
52 | echo " ${name}" | ||||
53 | done | ||||
Zach Johnson | f73a207 | 2014-12-24 21:07:38 -0800 | [diff] [blame] | 54 | } |
55 | |||||
Scott James Remnant | a05d936 | 2015-11-19 14:04:15 -0800 | [diff] [blame] | 56 | iterations=1 |
Scott James Remnant | 707fc0c | 2015-11-19 14:03:27 -0800 | [diff] [blame] | 57 | device= |
Scott James Remnant | 03e8be8 | 2015-11-17 15:09:43 -0800 | [diff] [blame] | 58 | tests=() |
Scott James Remnant | 6babef0 | 2015-11-18 11:18:02 -0800 | [diff] [blame] | 59 | test_args=() |
Scott James Remnant | 0f61cf7 | 2015-11-19 14:58:42 -0800 | [diff] [blame] | 60 | while [ $# -gt 0 ] |
61 | do | ||||
Scott James Remnant | 03e8be8 | 2015-11-17 15:09:43 -0800 | [diff] [blame] | 62 | case "$1" in |
63 | -h|--help) | ||||
64 | usage | ||||
65 | exit 0 | ||||
66 | ;; | ||||
Scott James Remnant | a05d936 | 2015-11-19 14:04:15 -0800 | [diff] [blame] | 67 | -i) |
68 | shift | ||||
69 | if [ $# -eq 0 ]; then | ||||
70 | echo "error: number of iterations expected" 1>&2 | ||||
71 | usage | ||||
Scott James Remnant | 0f61cf7 | 2015-11-19 14:58:42 -0800 | [diff] [blame] | 72 | exit 2 |
Scott James Remnant | a05d936 | 2015-11-19 14:04:15 -0800 | [diff] [blame] | 73 | fi |
74 | iterations=$(( $1 )) | ||||
75 | shift | ||||
76 | ;; | ||||
Scott James Remnant | 03e8be8 | 2015-11-17 15:09:43 -0800 | [diff] [blame] | 77 | -s) |
78 | shift | ||||
79 | if [ $# -eq 0 ]; then | ||||
80 | echo "error: no device specified" 1>&2 | ||||
81 | usage | ||||
Scott James Remnant | 0f61cf7 | 2015-11-19 14:58:42 -0800 | [diff] [blame] | 82 | exit 2 |
Scott James Remnant | 03e8be8 | 2015-11-17 15:09:43 -0800 | [diff] [blame] | 83 | fi |
84 | device="$1" | ||||
85 | shift | ||||
86 | ;; | ||||
87 | --all) | ||||
Scott James Remnant | 0f61cf7 | 2015-11-19 14:58:42 -0800 | [diff] [blame] | 88 | tests+=( "${known_tests[@]}" ) |
Scott James Remnant | 03e8be8 | 2015-11-17 15:09:43 -0800 | [diff] [blame] | 89 | shift |
90 | ;; | ||||
Scott James Remnant | 6babef0 | 2015-11-18 11:18:02 -0800 | [diff] [blame] | 91 | --*) |
92 | test_args+=( "$1" ) | ||||
93 | shift | ||||
94 | ;; | ||||
Scott James Remnant | 03e8be8 | 2015-11-17 15:09:43 -0800 | [diff] [blame] | 95 | *) |
Scott James Remnant | 0f61cf7 | 2015-11-19 14:58:42 -0800 | [diff] [blame] | 96 | tests+=( "$1" ) |
Scott James Remnant | 03e8be8 | 2015-11-17 15:09:43 -0800 | [diff] [blame] | 97 | shift |
98 | ;; | ||||
99 | esac | ||||
100 | done | ||||
Zach Johnson | f73a207 | 2014-12-24 21:07:38 -0800 | [diff] [blame] | 101 | |
Scott James Remnant | 0f61cf7 | 2015-11-19 14:58:42 -0800 | [diff] [blame] | 102 | if [ "${#tests[@]}" -eq 0 ]; then |
103 | tests+=( "${known_tests[@]}" ) | ||||
Scott James Remnant | 03e8be8 | 2015-11-17 15:09:43 -0800 | [diff] [blame] | 104 | fi |
Scott James Remnant | 6babef0 | 2015-11-18 11:18:02 -0800 | [diff] [blame] | 105 | |
Scott James Remnant | 0f61cf7 | 2015-11-19 14:58:42 -0800 | [diff] [blame] | 106 | adb=( "adb" ) |
107 | if [ -n "${device}" ]; then | ||||
108 | adb+=( "-s" "${device}" ) | ||||
109 | fi | ||||
Scott James Remnant | 707fc0c | 2015-11-19 14:03:27 -0800 | [diff] [blame] | 110 | |
Pavlin Radoslavov | e07f3d0 | 2018-01-09 05:58:53 -0800 | [diff] [blame] | 111 | source ${ANDROID_BUILD_TOP}/build/envsetup.sh |
112 | target_arch=$(gettargetarch) | ||||
113 | |||||
Scott James Remnant | 0f61cf7 | 2015-11-19 14:58:42 -0800 | [diff] [blame] | 114 | failed_tests=() |
115 | for spec in "${tests[@]}" | ||||
Scott James Remnant | 707fc0c | 2015-11-19 14:03:27 -0800 | [diff] [blame] | 116 | do |
117 | name="${spec%%.*}" | ||||
Pavlin Radoslavov | e07f3d0 | 2018-01-09 05:58:53 -0800 | [diff] [blame] | 118 | if [[ $target_arch == *"64"* ]]; then |
119 | binary="/data/nativetest64/${name}/${name}" | ||||
120 | else | ||||
121 | binary="/data/nativetest/${name}/${name}" | ||||
122 | fi | ||||
Scott James Remnant | 0f61cf7 | 2015-11-19 14:58:42 -0800 | [diff] [blame] | 123 | |
124 | push_command=( "${adb[@]}" push {"${ANDROID_PRODUCT_OUT}",}"${binary}" ) | ||||
Jakub Pawlowski | 50e1ada | 2017-10-20 00:34:13 -0700 | [diff] [blame] | 125 | test_command=( "${adb[@]}" shell "${binary}" ) |
Scott James Remnant | 707fc0c | 2015-11-19 14:03:27 -0800 | [diff] [blame] | 126 | if [ "${name}" != "${spec}" ]; then |
127 | filter="${spec#*.}" | ||||
Scott James Remnant | 0f61cf7 | 2015-11-19 14:58:42 -0800 | [diff] [blame] | 128 | test_command+=( "--gtest_filter=${filter}" ) |
Scott James Remnant | 707fc0c | 2015-11-19 14:03:27 -0800 | [diff] [blame] | 129 | fi |
Scott James Remnant | 0f61cf7 | 2015-11-19 14:58:42 -0800 | [diff] [blame] | 130 | test_command+=( "${test_args[@]}" ) |
131 | |||||
132 | echo "--- ${name} ---" | ||||
Scott James Remnant | 707fc0c | 2015-11-19 14:03:27 -0800 | [diff] [blame] | 133 | echo "pushing..." |
Scott James Remnant | 0f61cf7 | 2015-11-19 14:58:42 -0800 | [diff] [blame] | 134 | "${push_command[@]}" |
Scott James Remnant | 707fc0c | 2015-11-19 14:03:27 -0800 | [diff] [blame] | 135 | echo "running..." |
Scott James Remnant | a05d936 | 2015-11-19 14:04:15 -0800 | [diff] [blame] | 136 | failed_count=0 |
137 | for i in $(seq 1 ${iterations}) | ||||
138 | do | ||||
Scott James Remnant | 0f61cf7 | 2015-11-19 14:58:42 -0800 | [diff] [blame] | 139 | "${test_command[@]}" || failed_count=$(( $failed_count + 1 )) |
Scott James Remnant | a05d936 | 2015-11-19 14:04:15 -0800 | [diff] [blame] | 140 | done |
141 | |||||
142 | if [ $failed_count != 0 ]; then | ||||
Scott James Remnant | 0f61cf7 | 2015-11-19 14:58:42 -0800 | [diff] [blame] | 143 | failed_tests+=( "${name} ${failed_count}/${iterations}" ) |
Scott James Remnant | 707fc0c | 2015-11-19 14:03:27 -0800 | [diff] [blame] | 144 | fi |
145 | done | ||||
146 | |||||
Scott James Remnant | 0f61cf7 | 2015-11-19 14:58:42 -0800 | [diff] [blame] | 147 | if [ "${#failed_tests[@]}" -ne 0 ]; then |
148 | for failed_test in "${failed_tests[@]}" | ||||
149 | do | ||||
150 | echo "!!! FAILED TEST: ${failed_test} !!!" | ||||
151 | done | ||||
Scott James Remnant | 707fc0c | 2015-11-19 14:03:27 -0800 | [diff] [blame] | 152 | exit 1 |
153 | fi | ||||
154 | |||||
155 | exit 0 |