haproxy/tests/unit/jwk/test.sh
William Lallemand 09457111bb TESTS: jws: register a unittest for jwk
Add a way to test the jwk converter in the unit test system

    $ make TARGET=linux-glibc USE_OPENSSL=1 CFLAGS="-DDEBUG_UNIT=1"
    $ ./haproxy -U jwk foobar.pem.rsa
    {
        "kty": "RSA",
        "n":   "...",
        "e":   "AQAB"
    }
    $ ./haproxy -U jwk foobar.pem.ecdsa
    {
        "kty": "EC",
        "crv": "P-384",
        "x":   "...",
        "y":   "..."
    }

This is then tested by a shell script:

    $ HAPROXY_PROGRAM=${PWD}/haproxy tests/unit/jwk/test.sh
    + readlink -f tests/unit/jwk/test.sh
    + BASENAME=/haproxy/tests/unit/jwk/test.sh
    + dirname /haproxy/tests/unit/jwk/test.sh
    + TESTDIR=/haproxy/tests/unit/jwk
    + HAPROXY_PROGRAM=/haproxy/haproxy
    + mktemp
    + FILE1=/tmp/tmp.iEICxC5yNK
    + /haproxy/haproxy -U jwk /haproxy/tests/unit/jwk/ecdsa.key
    + diff -Naurp /haproxy/tests/unit/jwk/ecdsa.pub.jwk /tmp/tmp.iEICxC5yNK
    + rm /tmp/tmp.iEICxC5yNK
    + mktemp
    + FILE2=/tmp/tmp.EIrGZGaCDi
    + /haproxy/haproxy -U jwk /haproxy/tests/unit/jwk/rsa.key
    + diff -Naurp /haproxy/tests/unit/jwk/rsa.pub.jwk /tmp/tmp.EIrGZGaCDi
    + rm /tmp/tmp.EIrGZGaCDi

    $ echo $?
    0
2025-03-03 12:43:32 +01:00

27 lines
445 B
Bash
Executable File

#!/bin/sh
check() {
${HAPROXY_PROGRAM} -vv | grep -E '^Unit tests list :' | grep -q "jwk"
}
run() {
FILE1=$(mktemp)
${HAPROXY_PROGRAM} -U jwk ${TESTDIR}/ecdsa.key > "${FILE1}"
diff -Naurp ${TESTDIR}/ecdsa.pub.jwk "${FILE1}"
rm "${FILE1}"
FILE2=$(mktemp)
${HAPROXY_PROGRAM} -U jwk ${TESTDIR}/rsa.key > "${FILE2}"
diff -Naurp ${TESTDIR}/rsa.pub.jwk "${FILE2}"
rm "${FILE2}"
}
case "$1" in
"check")
check
;;
"run")
run
;;
esac