82 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Bash
		
	
	
	
			
		
		
	
	
			82 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Bash
		
	
	
	
# -*- 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
 | 
						|
t HEAD /libpod/_ping 200
 | 
						|
 | 
						|
t GET  _ping        200 OK
 | 
						|
t HEAD _ping        200
 | 
						|
t GET  libpod/_ping 200 OK
 | 
						|
t HEAD libpod/_ping 200
 | 
						|
 | 
						|
for i in /version version; do
 | 
						|
    t GET  $i      200                           \
 | 
						|
      .Components[0].Name="Podman Engine"        \
 | 
						|
      .Components[0].Details.APIVersion=2.0.0    \
 | 
						|
      .Components[0].Details.MinAPIVersion=2.0.0 \
 | 
						|
      .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
 | 
						|
 | 
						|
# Simple events test (see #7078)
 | 
						|
t GET "events?stream=false"  200
 | 
						|
t GET "libpod/events?stream=false"  200
 | 
						|
 | 
						|
# vim: filetype=sh
 |