# -*- sh -*- # # The earliest most basic tests. If any of these fail, life is bad # # NOTE: paths with a leading slash will be interpreted as-is; # paths without will have '/v1.40/' prepended. t GET /_ping 200 OK t HEAD /_ping 200 t GET /libpod/_ping 200 OK for i in /version version; do t GET $i 200 \ .Components[0].Name="Podman Engine" \ .Components[0].Details.APIVersion=1.0.0 \ .Components[0].Details.MinAPIVersion=1.0.0 \ .Components[0].Details.Os=linux \ .ApiVersion=1.0.0 \ .MinAPIVersion=1.0.0 \ .Os=linux done # # Garbage tests - requests that should yield errors # t GET /nonesuch 404 t POST /nonesuch '' 404 t GET container/nonesuch/json 404 t GET libpod/containers/nonesuch/json 404 #### FIXME: maybe someday: t GET 'libpod/containers/json?a=b' 400 # Method not allowed t POST /_ping '' 405 t DELETE /_ping 405 t POST libpod/containers/json '' 405 t POST libpod/pods/abc '' 405 t POST info '' 405 t GET libpod/containers/create 405 # # system info # # Some day perhaps it will always be runc; for now, cgroupsv2 requires crun # # FIXME: run 'podman info --format=json', and compare select fields runtime=runc if have_cgroupsv2; then runtime=crun fi t GET info 200 \ .OSType=linux \ .DefaultRuntime~.*$runtime \ .MemTotal~[0-9]\\+ # Timing: make sure server stays responsive t0=$SECONDS for i in $(seq 1 10); do # FIXME: someday: refactor t(), separate out the 'curl' logic so we # can call it directly. Then we won't get ten annoying 'ok' lines. t GET info 200 done t1=$SECONDS delta_t=$((t1 - t2)) if [ $delta_t -le 5 ]; then _show_ok 1 "Time for ten /info requests ($delta_t seconds) <= 5s" else _show_ok 0 "Time for ten /info requests" "<= 5 seconds" "$delta_t seconds" fi # vim: filetype=sh