#!/usr/bin/perl -w
-## $Id: ztest.pl,v 1.14 2005-11-09 09:35:47 adam Exp $
-## ------------------------------------------------------------------
+## This file is part of simpleserver
+## Copyright (C) 2000-2011 Index Data.
+## All rights reserved.
+## Redistribution and use in source and binary forms, with or without
+## modification, are permitted provided that the following conditions are met:
##
-## Copyright (c) 2000-2004, Index Data.
-##
-## Permission to use, copy, modify, distribute, and sell this software and
-## its documentation, in whole or in part, for any purpose, is hereby granted,
-## provided that:
-##
-## 1. This copyright and permission notice appear in all copies of the
-## software and its documentation. Notices of copyright or attribution
-## which appear at the beginning of any file must remain unchanged.
-##
-## 2. The name of Index Data or the individual authors may not be used to
-## endorse or promote products derived from this software without specific
-## prior written permission.
-##
-## THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND,
-## EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
-## WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
-## IN NO EVENT SHALL INDEX DATA BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
-## INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES
-## WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR
-## NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF
-## LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
-## OF THIS SOFTWARE.
+## * Redistributions of source code must retain the above copyright
+## notice, this list of conditions and the following disclaimer.
+## * Redistributions in binary form must reproduce the above copyright
+## notice, this list of conditions and the following disclaimer in the
+## documentation and/or other materials provided with the distribution.
+## * Neither the name of Index Data nor the names of its contributors
+## may be used to endorse or promote products derived from this
+## software without specific prior written permission.
##
+## THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
+## EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+## WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+## DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
+## DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+## (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+## LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+## THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
use ExtUtils::testlib;
+use Data::Dumper;
use Net::Z3950::SimpleServer;
use Net::Z3950::OID;
use strict;
}
+
+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};
}
+my $_fail_frequency = 0;
+my $_counter = 0;
+
sub my_search_handler {
my $args = shift;
+
my $data = [{
name => "Peter Dornan",
title => "Spokesman",
$args->{HITS} = $hits;
$session->{$set_id} = $data;
$session->{__HITS} = $hits;
+ if ($_fail_frequency != 0 && ++$_counter % $_fail_frequency == 0) {
+ print "Exiting to be nasty to client\n";
+ exit(1);
+ }
}
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);