3
# The earliest most basic tests. If any of these fail, life is bad
6
# NOTE: paths with a leading slash will be interpreted as-is;
7
# paths without will have '/v1.40/' prepended.
10
t GET /libpod/_ping 200 OK
11
t HEAD /libpod/_ping 200
14
like "$(<$WORKDIR/curl.headers.out)" $'.*\nOstype: ' "#19767 - undocumented part of docker API"
16
t GET libpod/_ping 200 OK
17
t HEAD libpod/_ping 200
19
for i in /version version; do
21
.Components[0].Name="Podman Engine" \
22
.Components[0].Details.APIVersion~5[0-9.-]\\+ \
23
.Components[0].Details.MinAPIVersion=4.0.0 \
24
.Components[0].Details.Os=linux \
31
# Garbage tests - requests that should yield errors
35
t GET container/nonesuch/json 404
36
t GET libpod/containers/nonesuch/json 404
38
#### FIXME: maybe someday: t GET 'libpod/containers/json?a=b' 400
43
t POST libpod/containers/json 405
44
t POST libpod/pods/abc 405
46
t GET libpod/containers/create 405
51
# Some day perhaps it will always be runc; for now, cgroupsv2 requires crun
53
# FIXME: run 'podman info --format=json', and compare select fields
55
if have_cgroupsv2; then
60
.DefaultRuntime~.*$runtime \
63
# Timing: make sure server stays responsive.
64
# Because /info may need to check storage, it may be slow the first time.
65
# Let's invoke it once to prime caches, then run ten queries in a timed loop.
68
for i in $(seq 1 10); do
69
# FIXME: someday: refactor t(), separate out the 'curl' logic so we
70
# can call it directly. Then we won't get ten annoying 'ok' lines.
76
# Desired number of seconds in which we expect to run.
77
# FIXME: 10 seconds is a lot! PR #8076 opened to investigate why.
79
if [ $delta_t -le $want ]; then
80
_show_ok 1 "Time for ten /info requests ($delta_t seconds) <= ${want}s"
82
_show_ok 0 "Time for ten /info requests" "<= $want seconds" "$delta_t seconds"
85
# Simple events test (see #7078)
86
t GET "events?stream=false&since=30s" 200
87
t GET "libpod/events?stream=false&since=30s" 200