diff --git a/obox-tests/obox-user-delete-dangling/test.d/common.sh b/obox-tests/obox-user-delete-dangling/test.d/common.sh index 98452a1aa..63f6a3dbf 100644 --- a/obox-tests/obox-user-delete-dangling/test.d/common.sh +++ b/obox-tests/obox-user-delete-dangling/test.d/common.sh @@ -29,6 +29,18 @@ dangling_delete_from_storage() { done } +# Like stderr_expect_multi, but first drops the stderr lines that don't match +# any of the given regexps. "doveadm obox user delete" logs a variable number +# of per-folder recovery lines when it resyncs lost folders, so only the +# deterministic summary lines can be matched exactly. +stderr_expect_at_least_multi() { + local re pat + for re in "$@"; do pat="${pat:+$pat|}$re"; done + egrep -a "$pat" $TEST_STDERR >$TEST_STDERR.tmp || true + mv $TEST_STDERR.tmp $TEST_STDERR + stderr_expect_multi "$@" +} + # Run "doveadm obox user delete" for the user $1 and assert that it removes # every dict pointer and every object-storage blob of the user. The command's # log output is left in $TEST_STDERR for the caller to check.