3 81d5bc11 2021-12-18 op # Run external tests, requires a common lisp interpreter (sbcl by
4 81d5bc11 2021-12-18 op # default) to be available.
6 81d5bc11 2021-12-18 op DOAS=${DOAS:-doas}
7 81d5bc11 2021-12-18 op USER=${USER?:user not set}
8 81d5bc11 2021-12-18 op SBCL=${SBCL:-sbcl}
12 81d5bc11 2021-12-18 op # gencerts name
14 81d5bc11 2021-12-18 op echo "generating keypairs for $1..."
15 81d5bc11 2021-12-18 op openssl req -x509 \
16 81d5bc11 2021-12-18 op -newkey rsa:4096 \
17 81d5bc11 2021-12-18 op -out "$1.pem" \
18 81d5bc11 2021-12-18 op -keyout "$1.key" \
21 81d5bc11 2021-12-18 op -subj "/CN=$1"
26 81d5bc11 2021-12-18 op printf "SHA256:"
27 81d5bc11 2021-12-18 op openssl x509 -in "$1" -noout -fingerprint -sha256 | \
28 81d5bc11 2021-12-18 op sed -e 's/^.*=//' -e 's/://g' | \
32 81d5bc11 2021-12-18 op if [ ! -f client.pem -o ! -f client.key ]; then
33 81d5bc11 2021-12-18 op gencerts client
36 81d5bc11 2021-12-18 op if [ ! -f kamid.pem -o ! -f kamid.key ]; then
37 81d5bc11 2021-12-18 op gencerts kamid
40 81d5bc11 2021-12-18 op kamid_hash="$(h client.pem)"
41 20292aef 2021-12-20 op tmpdir="$(mktemp -d -t kamid-regress.XXXXXXXXXX)"
42 20292aef 2021-12-20 op testroot="$tmpdir/root"
44 20292aef 2021-12-20 op cp -R regress/root/ "$tmpdir"
46 81d5bc11 2021-12-18 op cat > regress.conf <<EOF
47 81d5bc11 2021-12-18 op pki localhost cert "$PWD/kamid.pem"
48 81d5bc11 2021-12-18 op pki localhost key "$PWD/kamid.key"
50 81d5bc11 2021-12-18 op table users { "$kamid_hash" => "flan" }
51 81d5bc11 2021-12-18 op table virt { "flan" => "$USER" }
52 81d5bc11 2021-12-18 op table data { "flan" => "$testroot" }
54 81d5bc11 2021-12-18 op listen on localhost port 1337 tls pki localhost \
55 81d5bc11 2021-12-18 op auth <users> \
56 81d5bc11 2021-12-18 op virtual <virt> \
57 81d5bc11 2021-12-18 op userdata <data>
60 20292aef 2021-12-20 op logfile="$tmpdir/$(date +%Y-%m-%d-%H-%M).log"
62 81d5bc11 2021-12-18 op export REGRESS_CERT="$PWD/client.pem"
63 81d5bc11 2021-12-18 op export REGRESS_KEY="$PWD/client.key"
64 81d5bc11 2021-12-18 op export REGRESS_HOSTNAME=localhost
65 81d5bc11 2021-12-18 op export REGRESS_PORT=1337
66 81d5bc11 2021-12-18 op export REGRESS_ROOT="$testroot"
68 bb1e2adb 2021-12-21 op echo "REGRESS_CERT: $REGRESS_CERT"
69 bb1e2adb 2021-12-21 op echo "REGRESS_KEY: $REGRESS_KEY"
70 bb1e2adb 2021-12-21 op echo "REGRESS_HOSTNAME: $REGRESS_HOSTNAME"
71 bb1e2adb 2021-12-21 op echo "REGRESS_PORT: $REGRESS_PORT"
72 bb1e2adb 2021-12-21 op echo "REGRESS_ROOT: $REGRESS_ROOT"
75 bb1e2adb 2021-12-21 op echo "logging on $logfile"
76 bb1e2adb 2021-12-21 op ${DOAS} ./kamid -d -vvv -f regress.conf > "$logfile" 2>&1 &
81 45890490 2021-12-18 op cd regress/lisp/9p-test/ && \
82 81d5bc11 2021-12-18 op ${SBCL} --noinform \
83 81d5bc11 2021-12-18 op --disable-debugger \
84 81d5bc11 2021-12-18 op --eval "(require 'asdf)" \
85 81d5bc11 2021-12-18 op --eval "(push \"$(pwd)/\" asdf:*central-registry*)" \
86 81d5bc11 2021-12-18 op --eval "(asdf:make \"9p-test\")" \
87 81d5bc11 2021-12-18 op --eval "(all-tests:run-all-tests)"
90 81d5bc11 2021-12-18 op if [ $ret -ne 0 ]; then
92 81d5bc11 2021-12-18 op echo "Test failed, leaving root at $testroot"
95 69a7a8d2 2021-12-18 op rm -rf "$testroot"
98 81d5bc11 2021-12-18 op ${DOAS} pkill kamid