summaryrefslogtreecommitdiff
path: root/test/system/450-interactive.bats
diff options
context:
space:
mode:
authorEd Santiago <santiago@redhat.com>2021-09-28 07:13:51 -0600
committerEd Santiago <santiago@redhat.com>2021-09-30 13:32:51 -0600
commitbf94ebf423931f6cd848126372fe558c8b956dcc (patch)
treedc585c17a1a41a80bd64407042e3a108d06b508e /test/system/450-interactive.bats
parentba72b17d28ff897d6721a227c615fcd511ca2e7a (diff)
downloadpodman-bf94ebf423931f6cd848126372fe558c8b956dcc.tar.gz
podman-bf94ebf423931f6cd848126372fe558c8b956dcc.tar.bz2
podman-bf94ebf423931f6cd848126372fe558c8b956dcc.zip
System tests: tighten 'is' operator
Fix day-one sloppiness: when I first wrote this framework it compared strings using 'expr', not '=', to be more forgiving of extra cruft in output. This was a bad decision. It means that warnings or additional text are ignored: is "all is ok, NOT!" "all is ok" <-- this would pass Solution: tighten up the 'is' check. Use '=' (direct compare) first. If it fails, look for wild cards ('*') or character classes ('[') in the expect string. If so, and only then, use 'expr'. And, thanks to a clever suggestion from Luap99, include '(using expr)' in the error message when we do so; this could make it easier for a developer to understand a string mismatch. This change exposes a lot of instances in which we weren't doing proper comparisons. Fix those. Thankfully, there weren't as many as I'd feared. Also, and completely unrelated, add '-T' flag to bats helper, for showing timing results. (I will open this as a separate PR if requested. I too find it offensive to jumble together unrelated commits.) Signed-off-by: Ed Santiago <santiago@redhat.com>
Diffstat (limited to 'test/system/450-interactive.bats')
-rw-r--r--test/system/450-interactive.bats11
1 files changed, 7 insertions, 4 deletions
diff --git a/test/system/450-interactive.bats b/test/system/450-interactive.bats
index 47bdff9ab..55c2afcd4 100644
--- a/test/system/450-interactive.bats
+++ b/test/system/450-interactive.bats
@@ -55,9 +55,11 @@ function teardown() {
cols=$(( 15 + RANDOM % 60 & 126 ))
stty rows $rows cols $cols <$PODMAN_TEST_PTY
+ CR=$'\r'
+
# ...and make sure stty under podman reads that.
run_podman run -it --name mystty $IMAGE stty size <$PODMAN_TEST_PTY
- is "$output" "$rows $cols" "stty under podman run reads the correct dimensions"
+ is "$output" "$rows $cols$CR" "stty under podman run reads the correct dimensions"
run_podman rm -f mystty
@@ -75,7 +77,7 @@ function teardown() {
@test "podman load - will not read from tty" {
run_podman 125 load <$PODMAN_TEST_PTY
is "$output" \
- "Error: cannot read from terminal. Use command-line redirection" \
+ "Error: cannot read from terminal. Use command-line redirection or the --input flag." \
"Diagnostic from 'podman load' without redirection or -i"
}
@@ -84,14 +86,15 @@ function teardown() {
run_podman run --tty -i --rm $IMAGE echo hello < /dev/null
is "$output" ".*The input device is not a TTY.*" "-it _without_ a tty"
+ CR=$'\r'
run_podman run --tty -i --rm $IMAGE echo hello <$PODMAN_TEST_PTY
- is "$output" "hello" "-it _with_ a pty"
+ is "$output" "hello$CR" "-it _with_ a pty"
run_podman run --tty=false -i --rm $IMAGE echo hello < /dev/null
is "$output" "hello" "-tty=false: no warning"
run_podman run --tty -i=false --rm $IMAGE echo hello < /dev/null
- is "$output" "hello" "-i=false: no warning"
+ is "$output" "hello$CR" "-i=false: no warning"
}
# vim: filetype=sh