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