version 1.1, 2016/10/18 13:16:10
|
version 1.1.1.2, 2021/03/16 23:40:57
|
Line 16
|
Line 16
|
# Tested here: |
# Tested here: |
# * -a |
# * -a |
# * -c |
# * -c |
|
# * -d (minimally) |
# * -D |
# * -D |
# * -e |
# * -e |
# * -h |
# * -h |
Line 36
|
Line 37
|
# * -A (forced on with mac ping) |
# * -A (forced on with mac ping) |
# * -b |
# * -b |
# * -B |
# * -B |
# * -d |
|
# * -p |
# * -p |
# * -P |
# * -P |
# * -U |
# * -U |
|
# * -V |
# * Mac ping without -T. |
# * Mac ping without -T. |
# |
# |
set bin [lindex $argv 0] |
set bin [lindex $argv 0] |
Line 59 if {[lindex $result 3] == 0} {
|
Line 60 if {[lindex $result 3] == 0} {
|
set stty_init "-oxtabs" |
set stty_init "-oxtabs" |
} |
} |
|
|
|
# Helper functions. |
|
proc want_err {code} { |
|
lassign [wait] pid spawnid os_error_flag value |
|
if {$os_error_flag != 0} { |
|
puts "No error code provided" |
|
exit 1 |
|
} |
|
if {$value != $code} { |
|
puts "Wrong error code. Want $code, got $value" |
|
exit 1 |
|
} |
|
} |
|
|
|
|
send_user -- "--------------- No options ------------------\n" |
send_user -- "--------------- No options ------------------\n" |
spawn $bin |
spawn $bin |
expect -re "ARPing 2\.\d+, by Thomas Habets <thomas@habets.se>\r |
expect -re "ARPing 2\.\d+, by Thomas Habets <thomas@habets.se>\r |
Line 68 usage: arping \\\[ -0aAbdDeFpqrRuUv \\\] \\\[ -w <us>
|
Line 83 usage: arping \\\[ -0aAbdDeFpqrRuUv \\\] \\\[ -w <us>
|
For complete usage info, use --help or check the manpage.\r |
For complete usage info, use --help or check the manpage.\r |
" |
" |
expect eof |
expect eof |
|
want_err 1 |
|
|
send_user -- "--------------- -h ------------------\n" |
send_user -- "--------------- -h ------------------\n" |
spawn $bin -h |
spawn $bin -h |
Line 78 usage: arping \\\[ -0aAbdDeFpqrRuUv \\\] \\\[ -w <us>
|
Line 94 usage: arping \\\[ -0aAbdDeFpqrRuUv \\\] \\\[ -w <us>
|
For complete usage info, use --help or check the manpage.\r |
For complete usage info, use --help or check the manpage.\r |
" |
" |
expect eof |
expect eof |
|
want_err 0 |
|
|
send_user -- "--------------- --help ------------------\n" |
send_user -- "--------------- --help ------------------\n" |
spawn $bin --help |
spawn $bin --help |
Line 92 Arping home page: <http://www.habets.pp.se/synscan/>\r
|
Line 109 Arping home page: <http://www.habets.pp.se/synscan/>\r
|
Development repo: http://github.com/ThomasHabets/arping\r |
Development repo: http://github.com/ThomasHabets/arping\r |
" |
" |
expect eof |
expect eof |
|
want_err 0 |
|
|
send_user -- "--------------- Bad interface ------------------\n" |
send_user -- "--------------- Bad interface ------------------\n" |
spawn $bin -i uhtaonuhoes $ip |
spawn $bin -i uhtaonuhoes $ip |
Line 100 expect "\r" {
|
Line 118 expect "\r" {
|
# Make sure double-endline is stripped. |
# Make sure double-endline is stripped. |
exit 1 |
exit 1 |
} |
} |
|
want_err 1 |
|
|
send_user -- "--------------- Ping IP Simple ------------------\n" |
send_user -- "--------------- Ping IP Simple ------------------\n" |
spawn $bin -c 1 $ip |
spawn $bin -c 1 $ip |
Line 111 expect -re "ARPING $ip\r
|
Line 130 expect -re "ARPING $ip\r
|
rtt min/avg/max/std-dev = \[0-9.\]+/\[0-9.\]+/\[0-9.\]+/0.000 ms\r |
rtt min/avg/max/std-dev = \[0-9.\]+/\[0-9.\]+/\[0-9.\]+/0.000 ms\r |
" |
" |
expect eof |
expect eof |
|
want_err 0 |
|
|
send_user -- "--------------- Ping IP Raw (-r) ------------------\n" |
send_user -- "--------------- Ping IP Raw (-r) ------------------\n" |
spawn $bin -c 2 -r $ip |
spawn $bin -c 2 -r $ip |
Line 118 expect -re "$mac\r
|
Line 138 expect -re "$mac\r
|
$mac\r |
$mac\r |
" |
" |
expect eof |
expect eof |
|
want_err 0 |
|
|
send_user -- "--------------- Ping IP Raw audio (-r -a) ------------------\n" |
send_user -- "--------------- Ping IP Raw audio (-r -a) ------------------\n" |
spawn $bin -c 2 -r -a $ip |
spawn $bin -c 2 -r -a $ip |
Line 125 expect -re "\a$mac\r
|
Line 146 expect -re "\a$mac\r
|
\a$mac\r |
\a$mac\r |
" |
" |
expect eof |
expect eof |
|
want_err 0 |
|
|
send_user -- "--------------- Ping IP Raw audio bad dest (-r -e) ------------------\n" |
send_user -- "--------------- Ping IP Raw audio bad dest (-r -e) ------------------\n" |
spawn $bin -c 2 -r -i "$ifname" -e $bad_ip |
spawn $bin -c 2 -r -i "$ifname" -e $bad_ip |
expect -re "\a\a" |
expect -re "\a\a" |
expect eof |
expect eof |
|
want_err 1 |
|
|
send_user -- "--------------- Ping IP reverse raw (-R) ------------------\n" |
send_user -- "--------------- Ping IP reverse raw (-R) ------------------\n" |
spawn $bin -c 2 -R $ip |
spawn $bin -c 2 -R $ip |
Line 137 expect -re "$ip\r
|
Line 160 expect -re "$ip\r
|
$ip\r |
$ip\r |
" |
" |
expect eof |
expect eof |
|
want_err 0 |
|
|
send_user -- "--------------- Ping IP double raw (-R) ------------------\n" |
send_user -- "--------------- Ping IP double raw (-R) ------------------\n" |
spawn $bin -c 2 -R -r $ip |
spawn $bin -c 2 -R -r $ip |
Line 144 expect -re "$mac $ip\r
|
Line 168 expect -re "$mac $ip\r
|
$mac $ip\r |
$mac $ip\r |
" |
" |
expect eof |
expect eof |
|
want_err 0 |
|
|
send_user -- "--------------- Ping IP max 2 (-C) ------------------\n" |
send_user -- "--------------- Ping IP max 2 (-C) ------------------\n" |
spawn $bin -C 2 -c 10 $ip |
spawn $bin -C 2 -c 10 $ip |
Line 156 expect -re "ARPING $ip\r
|
Line 181 expect -re "ARPING $ip\r
|
rtt min/avg/max/std-dev = \[0-9.\]+/\[0-9.\]+/\[0-9.\]+/\[0-9.\]+ ms\r |
rtt min/avg/max/std-dev = \[0-9.\]+/\[0-9.\]+/\[0-9.\]+/\[0-9.\]+ ms\r |
" |
" |
expect eof |
expect eof |
|
want_err 0 |
|
|
send_user -- "--------------- Ping IP x 3 (-c) ------------------\n" |
send_user -- "--------------- Ping IP x 3 (-c) ------------------\n" |
spawn $bin -c 3 $ip |
spawn $bin -c 3 $ip |
Line 169 expect -re "ARPING $ip\r
|
Line 195 expect -re "ARPING $ip\r
|
rtt min/avg/max/std-dev = \[0-9.\]+/\[0-9.\]+/\[0-9.\]+/\[0-9.\]+ ms\r |
rtt min/avg/max/std-dev = \[0-9.\]+/\[0-9.\]+/\[0-9.\]+/\[0-9.\]+ ms\r |
" |
" |
expect eof |
expect eof |
|
want_err 0 |
|
|
send_user -- "--------------- Ping IP x 3 with audio (-a) ------------------\n" |
send_user -- "--------------- Ping IP x 3 with audio (-a) ------------------\n" |
spawn $bin -c 3 -a $ip |
spawn $bin -c 3 -a $ip |
Line 182 expect -re "ARPING $ip\r
|
Line 209 expect -re "ARPING $ip\r
|
rtt min/avg/max/std-dev = \[0-9.\]+/\[0-9.\]+/\[0-9.\]+/\[0-9.\]+ ms\r |
rtt min/avg/max/std-dev = \[0-9.\]+/\[0-9.\]+/\[0-9.\]+/\[0-9.\]+ ms\r |
" |
" |
expect eof |
expect eof |
|
want_err 0 |
|
|
send_user -- "--------- Ping IP x 2 with inverted audio (-e) ------------\n" |
send_user -- "--------- Ping IP x 2 with inverted audio (-e) ------------\n" |
spawn $bin -c 2 -e $ip |
spawn $bin -c 2 -e $ip |
Line 194 expect -re "ARPING $ip\r
|
Line 222 expect -re "ARPING $ip\r
|
rtt min/avg/max/std-dev = \[0-9.\]+/\[0-9.\]+/\[0-9.\]+/\[0-9.\]+ ms\r |
rtt min/avg/max/std-dev = \[0-9.\]+/\[0-9.\]+/\[0-9.\]+/\[0-9.\]+ ms\r |
" |
" |
expect eof |
expect eof |
|
want_err 0 |
|
|
send_user -- "--------- Ping IP x 2 with inverted audio, bad IP (-e) ------------\n" |
send_user -- "--------- Ping IP x 2 with inverted audio, bad IP (-e) ------------\n" |
spawn $bin -c 2 -i "$ifname" -e "$bad_ip" |
spawn $bin -c 2 -i "$ifname" -e "$bad_ip" |
Line 206 expect -re "ARPING $bad_ip\r
|
Line 235 expect -re "ARPING $bad_ip\r
|
\r |
\r |
" |
" |
expect eof |
expect eof |
|
want_err 1 |
|
|
send_user -- "--------- Ping IP x 2 with inverted audio (-e -D) ------------\n" |
send_user -- "--------- Ping IP x 2 with inverted audio (-e -D) ------------\n" |
spawn $bin -c 2 -e -D $ip |
spawn $bin -c 2 -e -D $ip |
expect "!!\t 0% packet loss (0 extra)\r\n" |
expect "!!\t 0% packet loss (0 extra)\r\n" |
expect eof |
expect eof |
|
want_err 0 |
|
|
send_user -- "--------- Ping IP x 2 with inverted audio, bad IP (-e -D) ------------\n" |
send_user -- "--------- Ping IP x 2 with inverted audio, bad IP (-e -D) ------------\n" |
spawn $bin -c 2 -e -i $ifname -D "$bad_ip" |
spawn $bin -c 2 -e -i $ifname -D "$bad_ip" |
expect "\a.\a.\t100% packet loss (0 extra)\r\n" |
expect "\a.\a.\t100% packet loss (0 extra)\r\n" |
expect eof |
expect eof |
|
want_err 1 |
|
|
send_user -- "--------------- Ping IP cisco style (-D) ------------------\n" |
send_user -- "--------------- Ping IP cisco style (-D) ------------------\n" |
spawn $bin -c 3 -D $ip |
spawn $bin -c 3 -D $ip |
expect "!!!\t 0% packet loss (0 extra)\r\n" |
expect "!!!\t 0% packet loss (0 extra)\r\n" |
expect eof |
expect eof |
|
want_err 0 |
|
|
send_user -- "--------------- Ping IP cisco style with audio (-D -a) -----------\n" |
send_user -- "--------------- Ping IP cisco style with audio (-D -a) -----------\n" |
spawn $bin -c 3 -D -a $ip |
spawn $bin -c 3 -D -a $ip |
expect "\a!\a!\a!\t 0% packet loss (0 extra)\r\n" |
expect "\a!\a!\a!\t 0% packet loss (0 extra)\r\n" |
expect eof |
expect eof |
|
want_err 0 |
|
|
send_user -- "--------------- Ping IP Targeted (-t) ------------------\n" |
send_user -- "--------------- Ping IP Targeted (-t) ------------------\n" |
spawn $bin -c 1 -t $mac $ip |
spawn $bin -c 1 -t $mac $ip |
Line 237 expect -re "ARPING $ip\r
|
Line 271 expect -re "ARPING $ip\r
|
rtt min/avg/max/std-dev = \[0-9.\]+/\[0-9.\]+/\[0-9.\]+/0.000 ms\r |
rtt min/avg/max/std-dev = \[0-9.\]+/\[0-9.\]+/\[0-9.\]+/0.000 ms\r |
" |
" |
expect eof |
expect eof |
|
want_err 0 |
|
|
send_user -- "--------------- Ping IP Mistargeted (-t) ------------------\n" |
send_user -- "--------------- Ping IP Mistargeted (-t) ------------------\n" |
spawn $bin -c 1 -t $bad_mac $ip |
spawn $bin -c 1 -t $bad_mac $ip |
Line 247 Timeout\r
|
Line 282 Timeout\r
|
1 packets transmitted, 0 packets received, 100% unanswered \\(0 extra\\)\r |
1 packets transmitted, 0 packets received, 100% unanswered \\(0 extra\\)\r |
" |
" |
expect eof |
expect eof |
|
want_err 1 |
|
|
send_user -- "--------------- Ping MAC with IP destination ------------------\n" |
send_user -- "--------------- Ping MAC with IP destination ------------------\n" |
spawn $bin -A -c 1 -T $ip $mac |
spawn $bin -A -c 1 -T $ip $mac |
Line 258 expect -re "ARPING $mac\r
|
Line 294 expect -re "ARPING $mac\r
|
rtt min/avg/max/std-dev = \[0-9.\]+/\[0-9.\]+/\[0-9.\]+/0.000 ms\r |
rtt min/avg/max/std-dev = \[0-9.\]+/\[0-9.\]+/\[0-9.\]+/0.000 ms\r |
" |
" |
expect eof |
expect eof |
|
want_err 0 |
|
|
send_user -- "--------------- Ping MAC Raw (-r) ------------------\n" |
send_user -- "--------------- Ping MAC Raw (-r) ------------------\n" |
spawn $bin -c 2 -r -T $ip $mac |
spawn $bin -c 2 -r -T $ip $mac |
Line 265 expect -re "$ip\r
|
Line 302 expect -re "$ip\r
|
$ip\r |
$ip\r |
" |
" |
expect eof |
expect eof |
|
want_err 0 |
|
|
send_user -- "--------------- Ping MAC Raw audio (-r -a) ------------------\n" |
send_user -- "--------------- Ping MAC Raw audio (-r -a) ------------------\n" |
spawn $bin -c 2 -a -r -T $ip $mac |
spawn $bin -c 2 -a -r -T $ip $mac |
Line 272 expect -re "\a$ip\r
|
Line 310 expect -re "\a$ip\r
|
\a$ip\r |
\a$ip\r |
" |
" |
expect eof |
expect eof |
|
want_err 0 |
|
|
send_user -- "--------------- Ping MAC Raw audio bad dest (-r -e) ------------------\n" |
send_user -- "--------------- Ping MAC Raw audio bad dest (-r -e) ------------------\n" |
spawn $bin -c 2 -r -e -T $ip $bad_mac |
spawn $bin -c 2 -r -e -T $ip $bad_mac |
expect -re "\a\a" |
expect -re "\a\a" |
expect eof |
expect eof |
|
want_err 1 |
|
|
send_user -- "--------------- Ping MAC reverse raw (-R) ------------------\n" |
send_user -- "--------------- Ping MAC reverse raw (-R) ------------------\n" |
spawn $bin -c 2 -R -T $ip $mac |
spawn $bin -c 2 -R -T $ip $mac |
Line 284 expect -re "$mac\r
|
Line 324 expect -re "$mac\r
|
$mac\r |
$mac\r |
" |
" |
expect eof |
expect eof |
|
want_err 0 |
|
|
send_user -- "--------------- Ping MAC double raw (-a -R) ------------------\n" |
send_user -- "--------------- Ping MAC double raw (-a -R) ------------------\n" |
spawn $bin -c 2 -R -r -T $ip $mac |
spawn $bin -c 2 -R -r -T $ip $mac |
Line 291 expect -re "$mac $ip\r
|
Line 332 expect -re "$mac $ip\r
|
$mac $ip\r |
$mac $ip\r |
" |
" |
expect eof |
expect eof |
|
want_err 0 |
|
|
|
|
send_user -- "--------------- Ping MAC max 2 (-C) ------------------\n" |
send_user -- "--------------- Ping MAC max 2 (-C) ------------------\n" |
Line 304 expect -re "ARPING $mac\r
|
Line 346 expect -re "ARPING $mac\r
|
rtt min/avg/max/std-dev = \[0-9.\]+/\[0-9.\]+/\[0-9.\]+/\[0-9.\]+ ms\r |
rtt min/avg/max/std-dev = \[0-9.\]+/\[0-9.\]+/\[0-9.\]+/\[0-9.\]+ ms\r |
" |
" |
expect eof |
expect eof |
|
want_err 0 |
|
|
send_user -- "--------------- Ping MAC cisco style (-D) ------------------\n" |
send_user -- "--------------- Ping MAC cisco style (-D) ------------------\n" |
spawn $bin -A -c 3 -D -T $ip $mac |
spawn $bin -A -c 3 -D -T $ip $mac |
expect "!!!\t 0% packet loss (0 extra)\r\n" |
expect "!!!\t 0% packet loss (0 extra)\r\n" |
expect eof |
expect eof |
|
want_err 0 |
|
|
send_user -- "--------------- Ping MAC cisco style with audio (-D -a) -----------\n" |
send_user -- "--------------- Ping MAC cisco style with audio (-D -a) -----------\n" |
spawn $bin -A -c 3 -D -a -T $ip $mac |
spawn $bin -A -c 3 -D -a -T $ip $mac |
expect "\a!\a!\a!\t 0% packet loss (0 extra)\r\n" |
expect "\a!\a!\a!\t 0% packet loss (0 extra)\r\n" |
expect eof |
expect eof |
|
want_err 0 |
|
|
send_user -- "--------- Ping MAC x 2 with inverted audio (-e) ------------\n" |
send_user -- "--------- Ping MAC x 2 with inverted audio (-e) ------------\n" |
spawn $bin -c 2 -T $ip "$mac" |
spawn $bin -c 2 -T $ip "$mac" |
Line 326 expect -re "ARPING $mac\r
|
Line 371 expect -re "ARPING $mac\r
|
rtt min/avg/max/std-dev = \[0-9.\]+/\[0-9.\]+/\[0-9.\]+/\[0-9.\]+ ms\r |
rtt min/avg/max/std-dev = \[0-9.\]+/\[0-9.\]+/\[0-9.\]+/\[0-9.\]+ ms\r |
" |
" |
expect eof |
expect eof |
|
want_err 0 |
|
|
send_user -- "--------- Ping MAC x 2 with inverted audio, bad dest (-e) ------------\n" |
send_user -- "--------- Ping MAC x 2 with inverted audio, bad dest (-e) ------------\n" |
spawn $bin -e -c 2 -T $ip "$bad_mac" |
spawn $bin -e -c 2 -T $ip "$bad_mac" |
Line 338 expect -re "ARPING $bad_mac\r
|
Line 384 expect -re "ARPING $bad_mac\r
|
\r |
\r |
" |
" |
expect eof |
expect eof |
|
want_err 1 |
|
|
send_user -- "--------- Ping MAC x 2 with inverted audio (-e -D) ------------\n" |
send_user -- "--------- Ping MAC x 2 with inverted audio (-e -D) ------------\n" |
spawn $bin -A -e -c 2 -D -T $ip $mac |
spawn $bin -A -e -c 2 -D -T $ip $mac |
expect "!!\t 0% packet loss (0 extra)\r\n" |
expect "!!\t 0% packet loss (0 extra)\r\n" |
expect eof |
expect eof |
|
want_err 0 |
|
|
send_user -- "--------- Ping MAC x 2 with inverted audio, bad dest (-e -D) ------------\n" |
send_user -- "--------- Ping MAC x 2 with inverted audio, bad dest (-e -D) ------------\n" |
spawn $bin -A -c 2 -e -i $ifname -D -T $ip $bad_mac |
spawn $bin -A -c 2 -e -i $ifname -D -T $ip $bad_mac |
expect "\a.\a.\t100% packet loss (0 extra)\r\n" |
expect "\a.\a.\t100% packet loss (0 extra)\r\n" |
expect eof |
expect eof |
|
want_err 1 |
|
|
|
send_user -- "--------- Detect duplicate ------------\n" |
|
spawn $bin -c 2 -d $ip |
|
expect eof |
|
want_err 0 |
|
|
|
send_user -- "--------- Detect duplicate of self ------------\n" |
|
spawn $bin -c 2 -d |
|
expect eof |
|
want_err 0 |
|
|
|
send_user -- "--------- Too many args ------------\n" |
|
spawn $bin -c 2 1.1.1.1 1.1.1.1 |
|
expect eof |
|
want_err 1 |
|
|
send_user -- "---------------------------------------------------------\n" |
send_user -- "---------------------------------------------------------\n" |
send_user -- "All tests passed\n" |
send_user -- "All tests passed\n" |