tests: add HTTP/3 test case, custom location for proper nghttpx

- adding support for HTTP/3 test cases via a nghttpx server that is
  build with ngtcp2 and nghttp3.
- test2500 is the first test case, performing a simple GET.
- nghttpx is checked for support and the 'feature' nghttpx-h3
  is set accordingly. test2500 will only run, when supported.
- a specific nghttpx location can be given in the environment
  variable NGHTTPX or via the configure option
    --with-test-nghttpx=<path>

Extend NGHTTPX config to H2 tests as well

* use $ENV{NGHTTPX} and the configured default also in http2 server starts
* always provide the empty test/nghttpx.conf to nghttpx. as it defaults to
  reading /etc/nghttpx/nghttpx.conf otherwise.

Added nghttpx to CI ngtcp2 jobs to run h3 tests.

Closes #9031
This commit is contained in:
Stefan Eissing 2022-11-29 16:41:15 +01:00 committed by Daniel Stenberg
parent 0186ec41b1
commit ca15b7512e
No known key found for this signature in database
GPG key ID: 5CC908FDB71E12C2
16 changed files with 582 additions and 24 deletions

View file

@ -31,6 +31,7 @@ my $logfile = "log/http2.log";
my $nghttpx = "nghttpx";
my $listenport = 9015;
my $connect = "127.0.0.1,8990";
my $conf = "nghttpx.conf";
#***************************************************************************
# Process command line options
@ -70,6 +71,12 @@ while(@ARGV) {
shift @ARGV;
}
}
elsif($ARGV[0] eq '--conf') {
if($ARGV[1]) {
$conf = $ARGV[1];
shift @ARGV;
}
}
else {
print STDERR "\nWarning: http2-server.pl unknown parameter: $ARGV[0]\n";
}
@ -80,6 +87,7 @@ my $cmdline="$nghttpx --backend=$connect ".
"--frontend=\"*,$listenport;no-tls\" ".
"--log-level=INFO ".
"--pid-file=$pidfile ".
"--conf=$conf ".
"--errorlog-file=$logfile";
print "RUN: $cmdline\n" if($verbose);
system("$cmdline 2>/dev/null");