File: test-expect.sh

package info (click to toggle)
zsv 1.3.0-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 49,160 kB
  • sloc: ansic: 175,811; cpp: 56,301; sh: 3,623; makefile: 3,048; javascript: 577; cs: 90; awk: 70; python: 41; sql: 15
file content (61 lines) | stat: -rwxr-xr-x 1,320 bytes parent folder | download
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
#!/bin/sh -eu

SCRIPT_DIR=$(dirname "$0")

EXPECT_TIMEOUT=${EXPECT_TIMEOUT:-5}

TARGET="${1:-}"
STAGE="${2:-}"

if [ -n "$STAGE" ]; then
  STAGE="-$STAGE"
fi

export TARGET
export STAGE

export CAPTURED_OUTPUT="$TMP_DIR/$TARGET$STAGE.out"
export EXPECTED_OUTPUT="$EXPECTED_PATH/$TARGET$STAGE.out"

MATCHED=false

cleanup() {
  if $MATCHED; then
    if [ -z "$STAGE" ]; then
      tmux send-keys -t "$TARGET" "q"
    fi
    exit 0
  fi

  tmux send-keys -t "$TARGET" "q"
  echo 'Incorrect output:'
  cat "$CAPTURED_OUTPUT"
  echo 'Expected output:'
  cat "$EXPECTED_OUTPUT"
  echo "${CMP} $CAPTURED_OUTPUT $EXPECTED_OUTPUT"
  ${CMP} "$CAPTURED_OUTPUT" "$EXPECTED_OUTPUT"
  exit 1
}

trap cleanup INT TERM QUIT

printf "\n%s, %s" "$TARGET" "$STAGE" >>"$TIMINGS_CSV"

set +e
MATCHED_TIME=$(/usr/bin/time -p timeout -k $((EXPECT_TIMEOUT + 1)) "$EXPECT_TIMEOUT" "$SCRIPT_DIR"/test-retry-capture-cmp.sh 2>&1)
STATUS=$?
set -e

if [ $STATUS -eq 0 ]; then
  MATCHED_TIME=$(echo "$MATCHED_TIME" | grep '^real' | cut -d' ' -f2)
  if echo "$MATCHED_TIME" | grep -qE '^[0-9]*\.?[0-9]+$' >/dev/null 2>&1; then
    MATCHED=true
    echo "$TARGET$STAGE took $MATCHED_TIME"
    printf ", %s" "$MATCHED_TIME" >>"$TIMINGS_CSV"
  else
    echo "Invalid timing value! [$MATCHED_TIME]"
    printf ", error" >>"$TIMINGS_CSV"
  fi
fi

cleanup