aboutsummaryrefslogtreecommitdiff
path: root/test/apiv2/01-basic.at
blob: 0e94ddb7a3cc0c76f5ebf4f6a2e20c947e72c52d (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
# -*- 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.40    \
      .Components[0].Details.MinAPIVersion=1.24 \
      .Components[0].Details.Os=linux           \
      .ApiVersion=1.40                          \
      .MinAPIVersion=1.24                       \
      .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