Mailing List Archive

r1511 - trunk/varnish-tools/regress/lib/Varnish/Test
Author: des
Date: 2007-06-13 13:12:07 +0200 (Wed, 13 Jun 2007)
New Revision: 1511

Modified:
trunk/varnish-tools/regress/lib/Varnish/Test/Varnish.pm
Log:
Let send_command() take care of quoting and assembling the command.


Modified: trunk/varnish-tools/regress/lib/Varnish/Test/Varnish.pm
===================================================================
--- trunk/varnish-tools/regress/lib/Varnish/Test/Varnish.pm 2007-06-12 12:26:03 UTC (rev 1510)
+++ trunk/varnish-tools/regress/lib/Varnish/Test/Varnish.pm 2007-06-13 11:12:07 UTC (rev 1511)
@@ -124,12 +124,20 @@
$name, split(':', $self->{'engine'}->{'config'}->{'server_address'}));
}

-sub send_command($$) {
- my ($self, $command) = @_;
+sub send_command($@) {
+ my ($self, @args) = @_;
croak 'not ready' if $self->{'state'} eq 'init';
croak sprintf('busy awaiting earlier command (%s)', $self->{'pending'})
if defined $self->{'pending'};

+ foreach (@args) {
+ if (m/[\s\"\n]/) {
+ s/\n/\\n/g;
+ s/\"/\\\"/g;
+ s/^(.*)$/"$1"/g;
+ }
+ }
+ my $command = join(' ', @args);
$self->{'mux'}->write($self->{'stdin'}, $command . "\n");
$self->{'pending'} = $command;
}
@@ -137,10 +145,13 @@
sub send_vcl($$$) {
my ($self, $config, $vcl) = @_;

- $vcl =~ s/\n/ /g;
- $vcl =~ s/"/\\"/g;
+ $self->send_command('vcl.inline', $config, $vcl);
+}

- $self->send_command(sprintf('vcl.inline %s "%s"', $config, $vcl));
+sub use_vcl($$) {
+ my ($self, $config) = @_;
+
+ $self->send_command('vcl.use', $config);
}

sub start_child($) {
@@ -193,7 +204,7 @@
}

$self->{'engine'}->ev_varnish_command_ok(delete $self->{'pending'})
- if ($$data =~ /^200 0/ and $self->{'pending'});
+ if ($$data =~ /^200 0/ and $self->{'pending'});

$$data = '';
}