Merge pull request #7026 from edsantiago/bats_majorminor_warning_fix

BATS tests: more resilient remove_same_dev_warning
This commit is contained in:
OpenShift Merge Robot 2020-07-21 05:52:09 -04:00 committed by GitHub
commit 1682e60dac
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 17 additions and 5 deletions

View File

@ -75,11 +75,17 @@ var _ = Describe("Podman run device", func() {
It("podman run device host device and container device parameter are directories", func() { It("podman run device host device and container device parameter are directories", func() {
SkipIfRootless() SkipIfRootless()
SystemExec("mkdir", []string{"/dev/foodevdir"}) Expect(os.MkdirAll("/dev/foodevdir", os.ModePerm)).To(BeNil())
SystemExec("mknod", []string{"/dev/foodevdir/null", "c", "1", "3"}) defer os.RemoveAll("/dev/foodevdir")
session := podmanTest.Podman([]string{"run", "-q", "--device", "/dev/foodevdir:/dev/bar", ALPINE, "ls", "/dev/bar/null"})
mknod := SystemExec("mknod", []string{"/dev/foodevdir/null", "c", "1", "3"})
mknod.WaitWithDefaultTimeout()
Expect(mknod.ExitCode()).To(Equal(0))
session := podmanTest.Podman([]string{"run", "-q", "--device", "/dev/foodevdir:/dev/bar", ALPINE, "stat", "-c%t:%T", "/dev/bar/null"})
session.WaitWithDefaultTimeout() session.WaitWithDefaultTimeout()
Expect(session.ExitCode()).To(Equal(0)) Expect(session.ExitCode()).To(Equal(0))
Expect(session.OutputToString()).To(Equal("1:3"))
}) })
It("podman run device host device with --privileged", func() { It("podman run device host device with --privileged", func() {

View File

@ -404,7 +404,13 @@ function find_exec_pid_files() {
# #
# This obviously screws us up when we look at output results. # This obviously screws us up when we look at output results.
# #
# This function removes the warning from $output and $lines # This function removes the warning from $output and $lines. We don't
# do a full string match because there's another variant of that message:
#
# WARNING: Creating device "/dev/null" with same type, major and minor as existing "/dev/foodevdir/null".
#
# (We should never again see that precise error ever again, but we could
# see variants of it).
# #
function remove_same_dev_warning() { function remove_same_dev_warning() {
# No input arguments. We operate in-place on $output and $lines # No input arguments. We operate in-place on $output and $lines
@ -412,7 +418,7 @@ function remove_same_dev_warning() {
local i=0 local i=0
local -a new_lines=() local -a new_lines=()
while [[ $i -lt ${#lines[@]} ]]; do while [[ $i -lt ${#lines[@]} ]]; do
if expr "${lines[$i]}" : 'WARNING: .* same type, major.* multiple' >/dev/null; then if expr "${lines[$i]}" : 'WARNING: .* same type, major' >/dev/null; then
: :
else else
new_lines+=("${lines[$i]}") new_lines+=("${lines[$i]}")