File: helpers.sig-proxy.bash

package info (click to toggle)
podman 5.7.0%2Bds2-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 23,824 kB
  • sloc: sh: 4,700; python: 2,798; perl: 1,885; ansic: 1,484; makefile: 977; ruby: 42; csh: 8
file content (50 lines) | stat: -rw-r--r-- 1,325 bytes parent folder | download | duplicates (2)
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
# -*- bash -*-
#
# BATS helpers for sig-proxy functionality
#

# Command to run in each of the tests.
SLEEPLOOP='trap "echo BYE;exit 0" INT;echo READY;while :;do sleep 0.1;done'

# Main test code: wait for container to exist and be ready, send it a
# signal, wait for container to acknowledge and exit.
function _test_sigproxy() {
    local cname=$1
    local kidpid=$2

    # Wait for container to appear
    local timeout=10
    while :;do
          sleep 0.5
          run_podman '?' container exists $cname
          if [[ $status -eq 0 ]]; then
              break
          fi
          timeout=$((timeout - 1))
          if [[ $timeout -eq 0 ]]; then
              run_podman ps -a
              die "Timed out waiting for container $cname to start"
          fi
    done

    # Now that container exists, wait for it to declare itself READY
    wait_for_ready $cname

    # Signal, and wait for container to exit
    kill -INT $kidpid
    timeout=20
    while :;do
          sleep 0.5
          run_podman logs $cname
          if [[ "$output" =~ BYE ]]; then
              break
          fi
          timeout=$((timeout - 1))
          if [[ $timeout -eq 0 ]]; then
              run_podman ps -a
              die "Timed out waiting for BYE from container"
          fi
    done

    run_podman rm -f -t0 $cname
}