From 7a8163ba1ccca173581b58bce02df51a2b742d54 Mon Sep 17 00:00:00 2001 From: des Date: Thu, 18 Oct 2007 16:07:19 +0000 Subject: [PATCH] Add a regression test for pipelining, which is currently broken in trunk. git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2120 d4fa192b-c00b-0410-8231-f00ffab90ce4 --- .../regress/lib/Varnish/Test/Case/Pipeline.pm | 73 +++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 varnish-tools/regress/lib/Varnish/Test/Case/Pipeline.pm diff --git a/varnish-tools/regress/lib/Varnish/Test/Case/Pipeline.pm b/varnish-tools/regress/lib/Varnish/Test/Case/Pipeline.pm new file mode 100644 index 00000000..9dedb5e5 --- /dev/null +++ b/varnish-tools/regress/lib/Varnish/Test/Case/Pipeline.pm @@ -0,0 +1,73 @@ +#!/usr/bin/perl -w +#- +# Copyright (c) 2007 Linpro AS +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer +# in this position and unchanged. +# 2. 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. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR OR 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. +# +# $Id$ +# + +package Varnish::Test::Case::Pipeline; + +use strict; +use base 'Varnish::Test::Case'; + +our $DESCR = "Tests Varnish's ability to handle pipelined requests."; + +our %CONTENT = ( + 'Gibson' => "The sky above the port was the color of television, tuned to a dead channel.", + 'Tolkien' => "In a hole in the ground there lived a hobbit.", + 'Williams' => "I have always depended upon the kindness of strangers.", +); + +sub testPipeline($) { + my ($self) = @_; + + my $client = $self->new_client; + foreach my $author (sort keys %CONTENT) { + $self->get($client, "/$author"); + } + foreach my $author (sort keys %CONTENT) { + $self->wait(); + $self->assert_ok(); + $self->assert_xid(); + $self->assert_body(qr/\Q$CONTENT{$author}\E/); + } + + return 'OK' +} + +sub server_get($$$) { + my ($self, $request, $response) = @_; + + my ($author) = ($request->uri =~ m/(\w+)$/); + if ($CONTENT{$author}) { + $response->content($CONTENT{$author}); + } else { + $response->code(404); + $response->content("Unknown author.\n"); + } +} + +1; -- 2.39.5