diff options
author | David Gibson <david@gibson.dropbear.id.au> | 2022-01-10 17:52:48 +1100 |
---|---|---|
committer | David Gibson <david@gibson.dropbear.id.au> | 2022-01-21 13:51:25 +1100 |
commit | 0b5136c7cefb52a18eec9e69c5d27d82b04ea867 (patch) | |
tree | 71ade53707a2b9ea274e66e74e3b42a904e9cb8b | |
parent | 9241b4e340386abfc5fcd32dab86fa5ef0002bac (diff) | |
download | podman-0b5136c7cefb52a18eec9e69c5d27d82b04ea867.tar.gz podman-0b5136c7cefb52a18eec9e69c5d27d82b04ea867.tar.bz2 podman-0b5136c7cefb52a18eec9e69c5d27d82b04ea867.zip |
Make error message matching in 030-run.bats less fragile
Amongst other things 030-run.bats checks for sensible error messages when
attempting a "podman run" with a non-existent or inaccessible path. It
checks for these messages, which come from the low-level runtime, in a lot
of detail, including separate versions for runc and crun. This is fragile
in several ways:
* It's likely to fail if using a runtime other than crun or runc
* It relies on detecting whether the runtime is crun vs. runc using the
path, which could fail if the binary has been named something unusual
* It will break if crun or runc ever alter their error message (even if
it's just changing case)
This replaces the checked versions with a much more accepting regex which
will work for both the runc and crun messages, while still looking for the
essential pieces. This isn't guaranteed to work with other runtimes, but
it's much more likely to.
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
-rw-r--r-- | test/system/030-run.bats | 14 |
1 files changed, 2 insertions, 12 deletions
diff --git a/test/system/030-run.bats b/test/system/030-run.bats index 2d5ecab39..ec85ef166 100644 --- a/test/system/030-run.bats +++ b/test/system/030-run.bats @@ -5,18 +5,8 @@ load helpers @test "podman run - basic tests" { rand=$(random_string 30) - # 2019-09 Fedora 31 and rawhide (32) are switching from runc to crun - # because of cgroups v2; crun emits different error messages. - # Default to runc: - err_no_such_cmd="Error: .*: starting container process caused.*exec:.*stat /no/such/command: no such file or directory" - err_no_exec_dir="Error: .*: starting container process caused.*exec:.* permission denied" - - # ...but check the configured runtime engine, and switch to crun as needed - run_podman info --format '{{ .Host.OCIRuntime.Path }}' - if expr "$output" : ".*/crun"; then - err_no_such_cmd="Error: crun: executable file.* not found in \$PATH: No such file or directory: OCI runtime attempted to invoke a command that was not found" - err_no_exec_dir="Error: crun: open executable: Operation not permitted: OCI permission denied" - fi + err_no_such_cmd="Error:.*/no/such/command.*[Nn]o such file or directory" + err_no_exec_dir="Error:.*exec.*permission denied" tests=" true | 0 | |