]> git.gsnw.org Git - fping.git/commitdiff
improve tests for macos x and for when offline
authorDavid Schweikert <dws@open.ch>
Thu, 9 Oct 2014 09:16:11 +0000 (20:16 +1100)
committerDavid Schweikert <dws@open.ch>
Thu, 9 Oct 2014 09:16:50 +0000 (20:16 +1100)
ci/prepare-macos.sh [new file with mode: 0755]
ci/test-11-nopriv.pl
ci/test-13-unknown-host.pl
ci/test-14-ping-internet-hosts.pl
ci/test-4-options-a-b.pl
ci/test-7-options-i-m.pl
ci/test-8-options-n-q.pl

diff --git a/ci/prepare-macos.sh b/ci/prepare-macos.sh
new file mode 100755 (executable)
index 0000000..09125eb
--- /dev/null
@@ -0,0 +1,13 @@
+#!/bin/bash
+
+# only do this on Mac OS X
+if [ `uname -s` != "Darwin" ]; then
+    exit 0;
+fi
+
+if [[ ! `ifconfig lo0` =~ 127\.0\.0\.2 ]]; then
+    sudo ifconfig lo0 127.0.0.2/8 alias
+    sudo ifconfig lo0 127.0.0.3/8 alias
+    sudo ifconfig lo0 127.0.0.4/8 alias
+    sudo ifconfig lo0 127.0.0.5/8 alias
+fi 
index 5b24a32d9d00679be59372f718c165e6752031d0..87802fe6bbd2d1bdde745d29d4f000d0168b2844 100755 (executable)
@@ -1,6 +1,13 @@
 #!/usr/bin/perl -w
 
-use Test::Command tests => 6;
+use Test::Command;
+use Test::More;
+
+if( $^O eq 'darwin' ) {
+    plan skip_all => 'Test irrelevant on MacOS';
+    exit 0;
+}
+plan tests => 6;
 
 # run without privileges
 my $fping_bin = `which fping`; chomp $fping_bin;
index d4abb2a7f9c1a4859a73bdd74f701d9191b4b9c8..ee0c850327f717e572bef17891bca68b51f38b2c 100755 (executable)
@@ -7,7 +7,7 @@ use Test::Command tests => 6;
 my $cmd = Test::Command->new(cmd => "fping nosuchname.example.com");
 $cmd->exit_is_num(1);
 $cmd->stdout_is_eq("");
-$cmd->stderr_is_eq("nosuchname.example.com: Name or service not known\n");
+$cmd->stderr_like(qr{^nosuchname\.example\.com: (Name or service not known|nodename nor servname provided, or not known)\n});
 }
 
 # fping6
@@ -15,5 +15,5 @@ $cmd->stderr_is_eq("nosuchname.example.com: Name or service not known\n");
 my $cmd = Test::Command->new(cmd => "fping6 nosuchname.example.com");
 $cmd->exit_is_num(1);
 $cmd->stdout_is_eq("");
-$cmd->stderr_is_eq("nosuchname.example.com: Name or service not known\n");
+$cmd->stderr_like(qr{^nosuchname\.example\.com: (Name or service not known|nodename nor servname provided, or not known)\n});
 }
index ec7f0987c1909f40e81a4c4f80934aa6acf18ae5..c7f8dd3dc11f9a80df8d65fd6148ad30cd9bda16 100755 (executable)
@@ -1,6 +1,15 @@
 #!/usr/bin/perl -w
 
-use Test::Command tests => 3;
+use Test::Command;
+use Test::More;
+
+# evaluate if we have internet
+if(!gethostbyname("www.google.com")) {
+    plan skip_all => 'Can\'t resolve www.google.com -> no internet?';
+    exit 0;
+}
+
+plan tests => 18;
 
 my $re_num = qr{\d+(?:\.\d+)?};
 
@@ -15,3 +24,43 @@ www\.france-telecom\.fr\s*: xmt/rcv/%loss = [123]/3/\d+%, min/avg/max = $re_num/
 www\.google\.com\s*: xmt/rcv/%loss = [123]/3/\d+%, min/avg/max = $re_num/$re_num/$re_num
 });
 }
+
+# fping -A -n
+{
+my $cmd = Test::Command->new(cmd => "fping -A -n 8.8.8.8");
+$cmd->exit_is_num(0);
+$cmd->stdout_is_eq("google-public-dns-a.google.com (8.8.8.8) is alive\n");
+$cmd->stderr_is_eq("");
+}
+
+# fping -A -n
+{
+my $cmd = Test::Command->new(cmd => "fping -A -n google-public-dns-a.google.com");
+$cmd->exit_is_num(0);
+$cmd->stdout_is_eq("google-public-dns-a.google.com (8.8.8.8) is alive\n");
+$cmd->stderr_is_eq("");
+}
+
+# fping6 -A -n
+{
+my $cmd = Test::Command->new(cmd => "fping6 -n -A 2001:4860:4860::8888");
+$cmd->exit_is_num(0);
+$cmd->stdout_is_eq("google-public-dns-a.google.com (2001:4860:4860::8888) is alive\n");
+$cmd->stderr_is_eq("");
+}
+
+# fping -m
+{
+my $cmd = Test::Command->new(cmd => "fping -m google-public-dns-a.google.com");
+$cmd->exit_is_num(0);
+$cmd->stdout_is_eq("google-public-dns-a.google.com is alive\n");
+$cmd->stderr_is_eq("");
+}
+
+# fping -n
+{
+my $cmd = Test::Command->new(cmd => "fping -n 8.8.8.8");
+$cmd->exit_is_num(0);
+$cmd->stdout_is_eq("google-public-dns-a.google.com is alive\n");
+$cmd->stderr_is_eq("");
+}
index 023f6f15835b7bb8deb434c5d270d00b0c3db8d6..22889315b77545d1bf98922052ec7bc9ed04d876 100755 (executable)
@@ -1,6 +1,6 @@
 #!/usr/bin/perl -w
 
-use Test::Command tests => 23;
+use Test::Command tests => 14;
 use Test::More;
 use Time::HiRes qw(gettimeofday tv_interval);
 
@@ -25,30 +25,6 @@ $cmd->stdout_is_eq("127.0.0.1 is alive\n");
 $cmd->stderr_is_eq("");
 }
 
-# fping -A -n
-{
-my $cmd = Test::Command->new(cmd => "fping -A -n 8.8.8.8");
-$cmd->exit_is_num(0);
-$cmd->stdout_is_eq("google-public-dns-a.google.com (8.8.8.8) is alive\n");
-$cmd->stderr_is_eq("");
-}
-
-# fping -A -n
-{
-my $cmd = Test::Command->new(cmd => "fping -A -n google-public-dns-a.google.com");
-$cmd->exit_is_num(0);
-$cmd->stdout_is_eq("google-public-dns-a.google.com (8.8.8.8) is alive\n");
-$cmd->stderr_is_eq("");
-}
-
-# fping6 -A -n
-{
-my $cmd = Test::Command->new(cmd => "fping6 -n -A 2001:4860:4860::8888");
-$cmd->exit_is_num(0);
-$cmd->stdout_is_eq("google-public-dns-a.google.com (2001:4860:4860::8888) is alive\n");
-$cmd->stderr_is_eq("");
-}
-
 # fping -b
 {
 my $cmd = Test::Command->new(cmd => "fping -b 1000 127.0.0.1");
@@ -63,7 +39,7 @@ my $t0 = [gettimeofday];
 my $cmd = Test::Command->new(cmd => "fping  -t 100 -r 3 -B 2  8.8.8.7");
 $cmd->exit_is_num(1);
 $cmd->stdout_is_eq("8.8.8.7 is unreachable\n");
-$cmd->stderr_is_eq("");
+$cmd->stderr_like(qr{^(|(8.8.8.7: error while sending ping: No route to host\n)+)$});
 my $elapsed = tv_interval($t0);
 # 0.1 + 0.2 + 0.4 + 0.8 = 1.5
 cmp_ok($elapsed, '>=', 1.5);
index 74ab9f2cc7f5d34ce34e40a6c95ef7d9c6709a75..e4529d9e7eb30b9b4b550d159039d7955cdeeb44 100755 (executable)
@@ -1,6 +1,6 @@
 #!/usr/bin/perl -w
 
-use Test::Command tests => 7;
+use Test::Command tests => 4;
 
 #  -i n       interval between sending ping packets (in millisec) (default 25)
 #  -l         loop sending pings forever
@@ -22,10 +22,4 @@ $cmd->stdout_like(qr{127\.0\.0\.1 : \[0\], 84 bytes, 0\.\d+ ms \(0.\d+ avg, 0% l
 });
 }
 
-# fping -m
-{
-my $cmd = Test::Command->new(cmd => "fping -m google-public-dns-a.google.com");
-$cmd->exit_is_num(0);
-$cmd->stdout_is_eq("google-public-dns-a.google.com is alive\n");
-$cmd->stderr_is_eq("");
-}
+# fping -m -> test-14-internet-hosts
index 2737dd39024b8e024b7fabbfc89c0fe787b74ecc..66630b8e9265f0d1e01830b04fd23375ce7b51aa 100755 (executable)
@@ -1,6 +1,6 @@
 #!/usr/bin/perl -w
 
-use Test::Command tests => 12;
+use Test::Command tests => 9;
 
 #  -n         show targets by name (-d is equivalent)
 #  -O n       set the type of service (tos) flag on the ICMP packets
@@ -9,13 +9,7 @@ use Test::Command tests => 12;
 #  -q         quiet (don't show per-target/per-ping results)
 #  -Q n       same as -q, but show summary every n seconds
 
-# fping -n
-{
-my $cmd = Test::Command->new(cmd => "fping -n 8.8.8.8");
-$cmd->exit_is_num(0);
-$cmd->stdout_is_eq("google-public-dns-a.google.com is alive\n");
-$cmd->stderr_is_eq("");
-}
+# fping -n -> test-14-internet-hosts
 
 # fping -O
 {