]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
replace curl in our interop testing
authorNeil Horman <nhorman@openssl.org>
Mon, 2 Feb 2026 15:33:22 +0000 (10:33 -0500)
committerNeil Horman <nhorman@openssl.org>
Fri, 6 Feb 2026 12:46:21 +0000 (07:46 -0500)
Since curl dropped support for using the OpenSSL quic stack, we have no
use for it anymore in our interop testing.  Replace it with our own
http3 demonstration client.

Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Nikola Pajkovsky <nikolap@openssl.org>
MergeDate: Fri Feb  6 12:46:26 2026
(Merged from https://github.com/openssl/openssl/pull/29922)

test/quic-openssl-docker/Dockerfile
test/quic-openssl-docker/run_endpoint.sh

index 57ada357bce0826d327edc9ced4943ec69241810..292e8181cdf0313ae46f23b1a9a8fb7daef74bef 100644 (file)
@@ -11,7 +11,8 @@ ARG OPENSSL_BRANCH=master
 # Install needed tools
 RUN apt-get update && apt-get install -y \
     git make gcc perl cmake build-essential \
-    autoconf libtool pkg-config libpsl-dev
+    autoconf libtool pkg-config libpsl-dev && \
+    apt-get clean
 
 WORKDIR /
 
@@ -32,22 +33,11 @@ RUN git clone --depth 1 -b $OPENSSL_BRANCH $OPENSSL_URL && \
     make -j 4 && make install && cp test/quic-openssl-docker/hq-interop/quic-hq-interop /usr/local/bin && \
     cp test/quic-openssl-docker/hq-interop/quic-hq-interop-server /usr/local/bin && \
     cp demos/http3/ossl-nghttp3-demo-server /usr/local/bin && \
+    cp demos/http3/ossl-nghttp3-demo /usr/local/bin && \
     rm -rf /openssl
 
-# Build curl
-# Note we have to build from commit 5a4cd758634d194ed280112a53e5ce5dc258b77a
-# or earlier here, as curl has dropped quic support with openssl
-RUN git clone https://github.com/curl/curl.git && \
-    cd curl && \
-    git checkout 5a4cd758634d194ed280112a53e5ce5dc258b77a && \
-    autoreconf -fi && ./configure --with-openssl-quic --with-openssl --with-nghttp3 --prefix=/usr && \
-    make -j 4 && \
-    make install && \
-    rm -rf /curl
-
 # copy run script and run it
 COPY run_endpoint.sh .
 RUN chmod +x run_endpoint.sh
-RUN apt-get clean
 ENTRYPOINT [ "./run_endpoint.sh" ]
 
index 89c76814828b70358a044ebc23988059807f2dbe..b1ba0346922b3fbe591b9c45b1548c446e5eb743 100644 (file)
@@ -10,23 +10,6 @@ CURLRC=~/testcase_curlrc
 # - SERVER_PARAMS contains user-supplied command line parameters
 # - CLIENT_PARAMS contains user-supplied command line parameters
 
-generate_outputs_http3() {
-    for i in $REQUESTS
-    do
-        OUTFILE=$(basename $i)
-        echo -e "--http3-only\n-o /downloads/$OUTFILE\n--url $i" >> $CURLRC
-        echo "--next" >> $CURLRC
-    done
-    # Remove the last --next
-    head -n -1 $CURLRC > $CURLRC.tmp
-    mv $CURLRC.tmp $CURLRC 
-}
-
-dump_curlrc() {
-    echo "Using curlrc:"
-    cat $CURLRC
-}
-
 if [ "$ROLE" == "client" ]; then
     # Wait for the simulator to start up.
     echo "Waiting for simulator"
@@ -36,10 +19,19 @@ if [ "$ROLE" == "client" ]; then
 
     case "$TESTCASE" in
     "http3")
-        echo -e "--verbose\n--parallel" >> $CURLRC
-        generate_outputs_http3
-        dump_curlrc
-        SSL_CERT_FILE=/certs/ca.pem curl --config $CURLRC || exit 1
+           HOSTNAME=none
+           for req in $REQUESTS
+           do
+               OUTFILE=$(basename $req)
+               if [ "$HOSTNAME" == "none" ]
+                then
+                    HOSTNAME=$(printf "%s\n" "$req" | sed -ne 's,^https://\([^/:]*\).*,\1,p')
+                    HOSTPORT=$(printf "%s\n" "$req" | sed -ne 's,^https://[^:/]*:\([^/]*\).*,\1,p')
+                fi
+               echo "/$OUTFILE" >> ./reqfile.txt
+           done
+           cat ./reqfile.txt
+        SSL_CERT_FILE=/certs/ca.pem ossl-nghttp3-demo $HOSTNAME:$HOSTPORT ./reqfile.txt /downloads || exit 1
         exit 0
         ;;
     "handshake"|"transfer"|"retry"|"ipv6")