Add new "-n <number>" option to make the server exit on every n'th
[simpleserver-moved-to-github.git] / ztest.pl
index f3d3025..c5bec85 100755 (executable)
--- a/ztest.pl
+++ b/ztest.pl
@@ -1,6 +1,6 @@
 #!/usr/bin/perl -w
 
-##  $Id: ztest.pl,v 1.13 2004-05-28 20:27:16 sondberg Exp $
+##  $Id: ztest.pl,v 1.16 2007-03-07 11:25:29 mike Exp $
 ##  ------------------------------------------------------------------
 ##
 ##  Copyright (c) 2000-2004, Index Data.
@@ -29,6 +29,7 @@
 ##
 
 use ExtUtils::testlib;
+use Data::Dumper;
 use Net::Z3950::SimpleServer;
 use Net::Z3950::OID;
 use strict;
@@ -58,6 +59,14 @@ sub my_init_handler {
            
 }
 
+
+sub my_sort_handler {
+    my ($args) = @_;
+
+    print "Sort handler called\n";
+    print Dumper( $args );
+}
+
 sub my_scan_handler {
        my $args = shift;
        my $term = $args->{TERM};
@@ -91,8 +100,16 @@ sub my_scan_handler {
 }
 
 
+my $_fail_frequency = 0;
+my $_counter = 0;
+
 sub my_search_handler { 
        my $args = shift;
+
+       if ($_fail_frequency != 0 && ++$_counter % $_fail_frequency == 0) {
+           print "Exiting to be nasty to client\n";
+           exit(1);
+       }
        my $data = [{
                        name            =>      "Peter Dornan",
                        title           =>      "Spokesman",
@@ -148,11 +165,18 @@ sub my_fetch_handler {
        }
 }
 
+Net::Z3950::SimpleServer::yazlog("hello");
 
 my $handler = new Net::Z3950::SimpleServer( 
                INIT    =>      "main::my_init_handler",
                SEARCH  =>      "main::my_search_handler",
                SCAN    =>      "main::my_scan_handler",
+                SORT    =>      "main::my_sort_handler",
                FETCH   =>      "main::my_fetch_handler" );
 
+if (@ARGV >= 2 && $ARGV[0] eq "-n") {
+    $_fail_frequency = $ARGV[1];
+    shift;
+    shift;
+}
 $handler->launch_server("ztest.pl", @ARGV);