Adds $relayd->{dummyrun} and $client->{noclient} flags to relayd tests
authorandre <andre@openbsd.org>
Fri, 9 May 2014 11:49:26 +0000 (11:49 +0000)
committerandre <andre@openbsd.org>
Fri, 9 May 2014 11:49:26 +0000 (11:49 +0000)
framework. These flags can be set from test file which eases performing
dry-runs of relayd long enough to do relayd.conf parsing, thus enabling the
grammar/parser-only tests.  While here, fix and improves args-http-mark.pl to a
correct use-case.

ok reyk

regress/usr.sbin/relayd/Proc.pm
regress/usr.sbin/relayd/Relayd.pm
regress/usr.sbin/relayd/args-http-mark.pl
regress/usr.sbin/relayd/relayd.pl

index ea1ea6f..bb6ce22 100644 (file)
@@ -1,4 +1,4 @@
-#      $OpenBSD: Proc.pm,v 1.5 2013/01/08 21:20:00 bluhm Exp $
+#      $OpenBSD: Proc.pm,v 1.6 2014/05/09 11:49:26 andre Exp $
 
 # Copyright (c) 2010-2013 Alexander Bluhm <bluhm@openbsd.org>
 #
@@ -138,7 +138,7 @@ sub loggrep {
 
        do {
                my($kid, $status, $code) = $self->wait(WNOHANG);
-               if ($kid > 0 && $status != 0) {
+               if ($kid > 0 && $status != 0 && not $self->{dummyrun}) {
                        # child terminated with failure
                        die ref($self), " child status: $status $code";
                }
index d7994df..3ee9644 100644 (file)
@@ -1,4 +1,4 @@
-#      $OpenBSD: Relayd.pm,v 1.7 2014/05/02 14:10:03 andre Exp $
+#      $OpenBSD: Relayd.pm,v 1.8 2014/05/09 11:49:26 andre Exp $
 
 # Copyright (c) 2010-2012 Alexander Bluhm <bluhm@openbsd.org>
 #
@@ -96,9 +96,10 @@ sub new {
 sub up {
        my $self = Proc::up(shift, @_);
        my $timeout = shift || 10;
+       my $dummyrun = $self->{dummyrun} || 0;
        my $lsock = $self->loggrep(qr/relay_launch: /, $timeout)
            or croak ref($self), " no relay_launch in $self->{logfile} ".
-               "after $timeout seconds";
+               "after $timeout seconds" unless $dummyrun;
        return $self;
 }
 
index a96d892..84a6345 100644 (file)
@@ -9,12 +9,13 @@ our %args = (
     relayd => {
        protocol => [ "http",
            'request path mark "*" from "/foobar" with 55',
-           'request path change "path" to "foobarchangedpath" marked 55',
+           'request header append "bar" to "foo" marked 55',
        ],
        loggrep => { ", 55,.*done" => 1 },
     },
     server => {
        func => \&http_server,
+       loggrep => { "foo: bar" => 1 },
     },
 );
 
index ebf0a58..8231ce8 100644 (file)
@@ -1,5 +1,5 @@
 #!/usr/bin/perl
-#      $OpenBSD: relayd.pl,v 1.8 2013/02/07 22:56:27 bluhm Exp $
+#      $OpenBSD: relayd.pl,v 1.9 2014/05/09 11:49:26 andre Exp $
 
 # Copyright (c) 2010-2013 Alexander Bluhm <bluhm@openbsd.org>
 #
@@ -68,12 +68,12 @@ my $c = Client->new(
 $s->run unless $args{server}{noserver};
 $r->run;
 $r->up;
-$c->run->up;
+$c->run->up unless $args{client}{noclient};
 $s->up unless $args{server}{noserver};
 
-$c->down;
+$c->down unless $args{client}{noclient};
 $s->down unless $args{server}{noserver};
 $r->kill_child;
-$r->down;
+$r->down unless $args{relayd}{dummyrun};
 
 check_logs($c, $r, $s, %args);