diff options
Diffstat (limited to 't')
-rw-r--r-- | t/README | 5 | ||||
-rwxr-xr-x | t/lib/db-btree.t | 55 | ||||
-rw-r--r-- | t/lib/socket.t | 62 |
3 files changed, 116 insertions, 6 deletions
@@ -8,9 +8,4 @@ If you put out extra lines with a '#' character on the front, you don't have to worry about removing the extra print statements later since TEST ignores lines beginning with '#'. -Several tests assume you have sucessfully included the POSIX -extension. If you have not, lib/[nos]dbm.t will fail. Try replacing -the O_CREAT|O_RDWR with either 0x202 or 0x102 in the tie statements -and run the tests again. - If you come up with new tests, send them to lwall@netlabs.com. diff --git a/t/lib/db-btree.t b/t/lib/db-btree.t index 308b8f489a..d90de6cd59 100755 --- a/t/lib/db-btree.t +++ b/t/lib/db-btree.t @@ -12,7 +12,7 @@ BEGIN { use DB_File; use Fcntl; -print "1..73\n"; +print "1..76\n"; $Dfile = "Op.db-btree"; unlink $Dfile; @@ -348,4 +348,57 @@ print ($status == -1 ? "ok 73\n" : "not ok 73\n") ; undef $Y ; untie %h ; +# test multiple callbacks +$Dfile1 = "btree1" ; +$Dfile2 = "btree2" ; +$Dfile3 = "btree3" ; + +$dbh1 = TIEHASH DB_File::BTREEINFO ; +$dbh1->{compare} = sub { $_[0] <=> $_[1] } ; + +$dbh2 = TIEHASH DB_File::BTREEINFO ; +$dbh2->{compare} = sub { $_[0] cmp $_[1] } ; + +$dbh3 = TIEHASH DB_File::BTREEINFO ; +$dbh3->{compare} = sub { length $_[0] <=> length $_[1] } ; + + +tie(%h, DB_File,$Dfile1, O_RDWR|O_CREAT, 0640, $dbh1 ) ; +tie(%g, DB_File,$Dfile2, O_RDWR|O_CREAT, 0640, $dbh2 ) ; +tie(%k, DB_File,$Dfile3, O_RDWR|O_CREAT, 0640, $dbh3 ) ; + +@Keys = qw( 0123 12 -1234 9 987654321 def ) ; +@srt_1 = sort { $a <=> $b } @Keys ; +@srt_2 = sort { $a cmp $b } @Keys ; +@srt_3 = sort { length $a <=> length $b } @Keys ; + +foreach (@Keys) { + $h{$_} = 1 ; + $g{$_} = 1 ; + $k{$_} = 1 ; +} + +sub ArrayCompare +{ + my($a, $b) = @_ ; + + return 0 if @$a != @$b ; + + foreach (1 .. length @$a) + { + return 0 unless $$a[$_] eq $$b[$_] ; + } + + 1 ; +} + +print ( ArrayCompare (\@srt_1, [keys %h]) ? "ok 74\n" : "not ok 74\n") ; +print ( ArrayCompare (\@srt_2, [keys %g]) ? "ok 75\n" : "not ok 75\n") ; +print ( ArrayCompare (\@srt_3, [keys %k]) ? "ok 76\n" : "not ok 76\n") ; + +untie %h ; +untie %g ; +untie %k ; +unlink $Dfile1, $Dfile2, $Dfile3 ; + exit ; diff --git a/t/lib/socket.t b/t/lib/socket.t new file mode 100644 index 0000000000..2b9b820144 --- /dev/null +++ b/t/lib/socket.t @@ -0,0 +1,62 @@ +#!./perl + +BEGIN { + chdir 't' if -d 't'; + @INC = '../lib'; + require Config; import Config; + if ($Config{'extensions'} !~ /\bSocket\b/ && $Config{'osname'} ne 'VMS') { + print STDERR "1..0\n"; + exit 0; + } +} + +use Socket; + +print "1..6\n"; + +if( socket(T,PF_INET,SOCK_STREAM,6) ){ + print "ok 1\n"; + + if( connect(T,pack_sockaddr_in(AF_INET,7,inet_aton("localhost")))){ + print "ok 2\n"; + + print "# Connected to ", + inet_ntoa((unpack_sockaddr_in(getpeername(T)))[2]),"\n"; + + syswrite(T,"hello",5); + sysread(T,$buff,10); + print $buff eq "hello" ? "ok 3\n" : "not ok 3\n"; + } + else{ + print "# $!\n"; + print "not ok 2\n"; + } +} +else{ + print "# $!\n"; + print "not ok 1\n"; +} + +if( socket(S,PF_INET,SOCK_STREAM,6) ){ + print "ok 4\n"; + + if( connect(S,pack_sockaddr_in(AF_INET,7,INADDR_LOOPBACK))){ + print "ok 5\n"; + + print "# Connected to ", + inet_ntoa((unpack_sockaddr_in(getpeername(S)))[2]),"\n"; + + syswrite(S,"olleh",5); + sysread(S,$buff,10); + print $buff eq "olleh" ? "ok 6\n" : "not ok 6\n"; + } + else{ + print "# $!\n"; + print "not ok 5\n"; + } +} +else{ + print "# $!\n"; + print "not ok 4\n"; +} + |