summaryrefslogtreecommitdiff
path: root/interop/quic-openssl-docker/run_endpoint.sh
blob: c9ecd668f72a61a87218649e06008fe5c0bc409a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#!/bin/bash

CURLRC=~/testcase_curlrc

# Set up the routing needed for the simulation
/setup.sh

# The following variables are available for use:
# - ROLE contains the role of this execution context, client or server
# - 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"
    /wait-for-it.sh sim:57832 -s -t 30
    echo "TESTCASE is $TESTCASE"
    rm -f $CURLRC 

    case "$TESTCASE" in
    "http3"|"transfer")
    echo -e "--verbose\n--parallel" >> $CURLRC
    generate_outputs_http3
    dump_curlrc
        SSL_CERT_FILE=/certs/ca.pem curl --config $CURLRC 
        if [ $? -ne 0 ]
        then
            exit 1
        fi
        exit 0
        ;;
    "handshake")
       OUTFILE=$(basename $REQUESTS)
       echo -e "--verbose\n--http3\n-H \"Connection: close\"\n-o /downloads/$OUTFILE\n--url $REQUESTS" >> $CURLRC
       dump_curlrc
       SSL_CERT_FILE=/certs/ca.pem curl --config $CURLRC 
       if [ $? -ne 0 ]
       then
           exit 1
       fi
       exit 0
       ;; 
    "retry")
       OUTFILE=$(basename $REQUESTS)
       SSL_CERT_FILE=/certs/ca.pem curl --verbose --http3 -o /downloads/$OUTFILE $REQUESTS
       if [ $? -ne 0 ]
       then
           exit 1
       fi
       exit 0
       ;; 
    "chacha20")
       OUTFILE=$(basename $REQUESTS)
       SSL_CERT_FILE=/certs/ca.pem curl --verbose --tlsv1.3 --tls13-ciphers TLS_CHACHA20_POLY1305_SHA256 --http3 -o /downloads/$OUTFILE $REQUESTS
       if [ $? -ne 0 ]
       then
           exit 1
       fi
       exit 0
       ;; 
    *)
        echo "UNSUPPORTED TESTCASE $TESTCASE"
        exit 127
        ;;
    esac
elif [ "$ROLE" == "server" ]; then
    echo "UNSUPPORTED"
    exit 127
fi