@ -1,6 +1,6 @@
#!/usr/bin/perl -w
#!/usr/bin/perl -w
use Test::Command tests = > 2 4;
use Test::Command tests = > 45 ;
use File::Temp ;
use File::Temp ;
# -f file read list of targets from a file ( - means stdin) (only if no -g specified)
# -f file read list of targets from a file ( - means stdin) (only if no -g specified)
@ -37,6 +37,29 @@ $cmd->stdout_is_eq("127.0.0.1 is alive\n127.0.0.2 is alive\n");
$ cmd - > stderr_is_eq ( "" ) ;
$ cmd - > stderr_is_eq ( "" ) ;
}
}
# fping -g (error: no argument)
{
my $ cmd = Test::Command - > new ( cmd = > "fping -g" ) ;
$ cmd - > exit_is_num ( 1 ) ;
$ cmd - > stdout_is_eq ( "" ) ;
$ cmd - > stderr_like ( qr{ ^Usage: fping \ [options \ ] \ [targets \ . \ . \ . \ ] } ) ;
}
# fping -g (error: single argument, but not in cidr format)
{
my $ cmd = Test::Command - > new ( cmd = > "fping -g 127.0.0.1" ) ;
$ cmd - > exit_is_num ( 1 ) ;
$ cmd - > stdout_is_eq ( "" ) ;
$ cmd - > stderr_like ( qr{ ^Usage: fping \ [options \ ] \ [targets \ . \ . \ . \ ] } ) ;
}
# fping -g (error: too many arguments)
{
my $ cmd = Test::Command - > new ( cmd = > "fping -g 127.0.0.1 127.0.0.2 127.0.0.3" ) ;
$ cmd - > exit_is_num ( 1 ) ;
$ cmd - > stdout_is_eq ( "" ) ;
$ cmd - > stderr_like ( qr{ ^Usage: fping \ [options \ ] \ [targets \ . \ . \ . \ ] } ) ;
}
# fping -g (range)
# fping -g (range)
{
{
my $ cmd = Test::Command - > new ( cmd = > "fping -g 127.0.0.1 127.0.0.5" ) ;
my $ cmd = Test::Command - > new ( cmd = > "fping -g 127.0.0.1 127.0.0.5" ) ;
@ -45,6 +68,22 @@ $cmd->stdout_is_eq("127.0.0.1 is alive\n127.0.0.2 is alive\n127.0.0.3 is alive\n
$ cmd - > stderr_is_eq ( "" ) ;
$ cmd - > stderr_is_eq ( "" ) ;
}
}
# fping -g (empty range)
{
my $ cmd = Test::Command - > new ( cmd = > "fping -g 127.0.0.2 127.0.0.1" ) ;
$ cmd - > exit_is_num ( 1 ) ;
$ cmd - > stdout_is_eq ( "" ) ;
$ cmd - > stderr_is_eq ( "" ) ;
}
# fping -g (too large range)
{
my $ cmd = Test::Command - > new ( cmd = > "fping -g 127.0.0.1 127.255.255.254" ) ;
$ cmd - > exit_is_num ( 1 ) ;
$ cmd - > stdout_is_eq ( "" ) ;
$ cmd - > stderr_is_eq ( "fping: -g parameter generates too many addresses\n" ) ;
}
# fping -g (cidr)
# fping -g (cidr)
{
{
my $ cmd = Test::Command - > new ( cmd = > "fping -g 127.0.0.1/30" ) ;
my $ cmd = Test::Command - > new ( cmd = > "fping -g 127.0.0.1/30" ) ;
@ -53,7 +92,7 @@ $cmd->stdout_is_eq("127.0.0.1 is alive\n127.0.0.2 is alive\n");
$ cmd - > stderr_is_eq ( "" ) ;
$ cmd - > stderr_is_eq ( "" ) ;
}
}
# fping -g (cidr - long prefixes )
# fping -g (cidr - long prefixes : point-to-point )
{
{
my $ cmd = Test::Command - > new ( cmd = > "fping -g 127.0.0.2/31" ) ;
my $ cmd = Test::Command - > new ( cmd = > "fping -g 127.0.0.2/31" ) ;
$ cmd - > exit_is_num ( 0 ) ;
$ cmd - > exit_is_num ( 0 ) ;
@ -61,6 +100,14 @@ $cmd->stdout_is_eq("127.0.0.2 is alive\n127.0.0.3 is alive\n");
$ cmd - > stderr_is_eq ( "" ) ;
$ cmd - > stderr_is_eq ( "" ) ;
}
}
# fping -g (cidr - long prefixes: host)
{
my $ cmd = Test::Command - > new ( cmd = > "fping -g 127.0.0.2/32" ) ;
$ cmd - > exit_is_num ( 0 ) ;
$ cmd - > stdout_is_eq ( "127.0.0.2 is alive\n" ) ;
$ cmd - > stderr_is_eq ( "" ) ;
}
# fping -g (cidr - too long prefixes)
# fping -g (cidr - too long prefixes)
{
{
my $ cmd = Test::Command - > new ( cmd = > "fping -g 127.0.0.2/33" ) ;
my $ cmd = Test::Command - > new ( cmd = > "fping -g 127.0.0.2/33" ) ;
@ -69,6 +116,14 @@ $cmd->stdout_is_eq("");
$ cmd - > stderr_is_eq ( "fping: netmask must be between 1 and 32 (is: 33)\n" ) ;
$ cmd - > stderr_is_eq ( "fping: netmask must be between 1 and 32 (is: 33)\n" ) ;
}
}
# fping -g (cidr - too short prefixes)
{
my $ cmd = Test::Command - > new ( cmd = > "fping -g 127.0.0.2/0" ) ;
$ cmd - > exit_is_num ( 1 ) ;
$ cmd - > stdout_is_eq ( "" ) ;
$ cmd - > stderr_is_eq ( "fping: netmask must be between 1 and 32 (is: 0)\n" ) ;
}
# fping -H
# fping -H
{
{
my $ cmd = Test::Command - > new ( cmd = > "fping -H 1 127.0.0.1" ) ;
my $ cmd = Test::Command - > new ( cmd = > "fping -H 1 127.0.0.1" ) ;