X-Git-Url: http://git.vpit.fr/?p=perl%2Fmodules%2FSub-Nary.git;a=blobdiff_plain;f=t%2F24-ops.t;fp=t%2F24-ops.t;h=a74fa43b73f5042d5b225fc7c9083ac06dda6b9d;hp=0000000000000000000000000000000000000000;hb=8a8dfb1c7d8ea124bf65333fa975667185b4cd73;hpb=08ec5acb4cc88d8cc10fec0520d8cd075c08fda1 diff --git a/t/24-ops.t b/t/24-ops.t new file mode 100644 index 0000000..a74fa43 --- /dev/null +++ b/t/24-ops.t @@ -0,0 +1,54 @@ +#!perl -T + +use strict; +use warnings; + +use Test::More tests => 26; + +use Sub::Nary; + +my $sn = Sub::Nary->new(); + +my ($x, %h); + +my @tests = ( + [ sub { return <$x> }, 'list' ], + + [ sub { -f $0, -r $0 }, 2 ], + + [ sub { return caller 0 }, sub { my @a = caller 0; scalar @a }->() ], + [ sub { return localtime }, do { my @a = localtime; scalar @a } ], + [ sub { gmtime }, do { my @a = gmtime; scalar @a } ], + + [ sub { each %h }, { 0 => 0.5, 2 => 0.5 } ], + [ sub { stat $0 }, { 0 => 0.5, 13 => 0.5 } ], + + [ sub { do { getpwnam 'root' } }, { 0 => 0.5, 10 => 0.5 } ], + [ sub { 1; getpwuid '0' }, { 0 => 0.5, 10 => 0.5 } ], + [ sub { eval { return getpwent } }, { 0 => 0.5, 10 => 0.5 } ], + [ sub { do { getgrnam 'root' } }, { 0 => 0.5, 4 => 0.5 } ], + [ sub { 1; getgrgid '0' }, { 0 => 0.5, 4 => 0.5 } ], + [ sub { eval { return getgrent } }, { 0 => 0.5, 4 => 0.5 } ], + [ sub { do { gethostbyname 'localhost' } }, 'list' ], + [ sub { 1; gethostbyaddr '', '' }, 'list' ], + [ sub { eval { return gethostent } }, 'list' ], + [ sub { do { getnetbyname '' } }, { 0 => 0.5, 4 => 0.5 } ], + [ sub { 1; getnetbyaddr '', '' }, { 0 => 0.5, 4 => 0.5 } ], + [ sub { eval { return getnetent } }, { 0 => 0.5, 4 => 0.5 } ], + [ sub { do { getprotobyname 'tcp' } }, { 0 => 0.5, 3 => 0.5 } ], + [ sub { 1; getprotobynumber 6 }, { 0 => 0.5, 3 => 0.5 } ], + [ sub { eval { return getprotoent } }, { 0 => 0.5, 3 => 0.5 } ], + [ sub { do { getservbyname 'ssh', 'tcp' } }, { 0 => 0.5, 4 => 0.5 } ], + [ sub { 1; getservbyport 22, 'tcp' }, { 0 => 0.5, 4 => 0.5 } ], + [ sub { eval { return getservent } }, { 0 => 0.5, 4 => 0.5 } ], + + [ sub { <*.*> }, { list => 1 / 3, 1 => 2 / 3 } ], +); + +my $i = 1; +for (@tests) { + my $r = $sn->nary($_->[0]); + my $exp = ref $_->[1] ? $_->[1] : { $_->[1] => 1 }; + is_deeply($r, $exp, 'ops test ' . $i); + ++$i; +}