-
-
Notifications
You must be signed in to change notification settings - Fork 6.2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
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
- Loading branch information
Showing
16 changed files
with
582 additions
and
24 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,98 @@ | ||
# Copyright (C) 2000 - 2022 Daniel Stenberg, <daniel@haxx.se>, et al. | ||
# | ||
# SPDX-License-Identifier: curl | ||
|
||
name: ngtcp2 | ||
|
||
on: | ||
push: | ||
branches: | ||
- master | ||
- '*/ci' | ||
pull_request: | ||
branches: | ||
- master | ||
|
||
concurrency: | ||
# Hardcoded workflow filename as workflow name above is just Linux again | ||
group: ngtcp2-openssl-${{ github.event.pull_request.number || github.sha }} | ||
cancel-in-progress: true | ||
|
||
jobs: | ||
autotools: | ||
name: ${{ matrix.build.name }} | ||
runs-on: 'ubuntu-latest' | ||
timeout-minutes: 60 | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
build: | ||
- name: quictls | ||
install: >- | ||
libpsl-dev libbrotli-dev libzstd-dev zlib1g-dev libev-dev libc-ares-dev | ||
configure: >- | ||
PKG_CONFIG_PATH="$HOME/all/lib/pkgconfig" LDFLAGS="-Wl,-rpath,$HOME/all/lib" | ||
--with-ngtcp2=$HOME/all --enable-warnings --enable-werror --enable-debug | ||
--with-test-nghttpx="$HOME/all/bin/nghttpx" | ||
ngtcp2-configure: >- | ||
--prefix=$HOME/all PKG_CONFIG_PATH="$HOME/all/lib/pkgconfig" --enable-lib-only | ||
steps: | ||
- run: | | ||
sudo apt-get update | ||
sudo apt-get install libtool autoconf automake pkg-config stunnel4 ${{ matrix.build.install }} | ||
sudo python3 -m pip install impacket | ||
name: 'install prereqs and impacket' | ||
- run: | | ||
git clone --depth=1 -b openssl-3.0.7+quic https://github.com/quictls/openssl | ||
cd openssl | ||
./config --prefix=$HOME/all --libdir=$HOME/all/lib | ||
make install_sw | ||
name: 'install quictls' | ||
- run: | | ||
git clone --depth=1 https://github.com/ngtcp2/nghttp3 | ||
cd nghttp3 | ||
autoreconf -fi | ||
./configure --prefix=$HOME/all PKG_CONFIG_PATH="$HOME/all/lib/pkgconfig" --enable-lib-only | ||
make install | ||
name: 'install nghttp3' | ||
- run: | | ||
git clone --depth=1 https://github.com/ngtcp2/ngtcp2 | ||
cd ngtcp2 | ||
autoreconf -fi | ||
./configure ${{ matrix.build.ngtcp2-configure }} --with-openssl | ||
make install | ||
name: 'install ngtcp2' | ||
- run: | | ||
git clone --depth=1 https://github.com/nghttp2/nghttp2 | ||
cd nghttp2 | ||
autoreconf -fi | ||
./configure --prefix=$HOME/all PKG_CONFIG_PATH="$HOME/all/lib/pkgconfig" --enable-http3 | ||
make install | ||
name: 'install nghttp2' | ||
- uses: actions/checkout@v3 | ||
|
||
- run: autoreconf -fi | ||
name: 'autoreconf' | ||
|
||
- run: ./configure --with-openssl=$HOME/all ${{ matrix.build.configure }} | ||
name: 'configure' | ||
|
||
- run: make V=1 | ||
name: 'make' | ||
|
||
- run: make V=1 examples | ||
name: 'make examples' | ||
|
||
- run: make V=1 -C tests | ||
name: 'make tests' | ||
|
||
- run: make V=1 test-ci | ||
name: 'run tests' | ||
env: | ||
TFLAGS: "${{ matrix.build.tflags }}" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -64,3 +64,5 @@ curl_fuzzer | |
curl_fuzzer_seed_corpus.zip | ||
libstandaloneengine.a | ||
tests/string | ||
tests/config | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -24,3 +24,4 @@ runtests.pdf | |
testcurl.html | ||
testcurl.pdf | ||
*.port | ||
config |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
#*************************************************************************** | ||
# _ _ ____ _ | ||
# Project ___| | | | _ \| | | ||
# / __| | | | |_) | | | ||
# | (__| |_| | _ <| |___ | ||
# \___|\___/|_| \_\_____| | ||
# | ||
# Copyright (C) 1998 - 2022, Daniel Stenberg, <daniel@haxx.se>, et al. | ||
# | ||
# This software is licensed as described in the file COPYING, which | ||
# you should have received as part of this distribution. The terms | ||
# are also available at https://curl.se/docs/copyright.html. | ||
# | ||
# You may opt to use, copy, modify, merge, publish, distribute and/or sell | ||
# copies of the Software, and permit persons to whom the Software is | ||
# furnished to do so, under the terms of the COPYING file. | ||
# | ||
# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
# KIND, either express or implied. | ||
# | ||
# SPDX-License-Identifier: curl | ||
# | ||
########################################################################### | ||
NGHTTPX: @TEST_NGHTTPX@ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
ca15b75
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Unfortunately, the changes to runtests.pl seem to lead to red autobuilds if nghttpx is unavailable:
https://curl.se/dev/log.cgi?id=20221205052054-623463#prob1
Can we avoid that?