diff options
author | Csaba Henk <csaba@redhat.com> | 2020-07-08 21:48:46 +0200 |
---|---|---|
committer | Amar Tumballi <amar@kadalu.io> | 2020-07-19 04:32:10 +0000 |
commit | 9ec64072850028b0da0f5ab8680a65a4a7f8b915 (patch) | |
tree | b50a589a8003345b174dd30977d2133b855b871d /tests/features | |
parent | 088ad9d931a4d9981e33dd28385fb5844cb89526 (diff) |
tests/features/interrupt.t: fixes
- Modify the patterns for which we grep the logs so
that they don't match themselves. The test runner
inserts the invocation of the cases to the log, thus
the patterns will occur in the logs verbatim. So if
the pattern matches itself, the test case will be
moot (always reporting success).
- Invoke the test utility (open-and-sleep) on
unique paths so that the file at the passed
path shall be created on each invocation.
The kernel does not send an interrupt if
the file is extant. (This was shadowed by
the above mistske with result evaluation.)
- Modify the pattern for which we grep the log in
the test case where interrupt handling is expected
so that it asserts that the interrupt was handled.
(So far we did not exclude the possibility of the
interrupt triggered but not handled due to a race;
however, it seems to be the case that this theoretic
race does not have the potential to prevent interrupt
handling. And if this ever changes in the future we'd
rather be notified about that.)
Change-Id: I606da2b4064c1ecc4781c7dfdefed95a433478ce
Updates: #1374
Signed-off-by: Csaba Henk <csaba@redhat.com>
Diffstat (limited to 'tests/features')
-rw-r--r-- | tests/features/interrupt.t | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/tests/features/interrupt.t b/tests/features/interrupt.t index bd70ff87545..067eb1b7486 100644 --- a/tests/features/interrupt.t +++ b/tests/features/interrupt.t @@ -43,18 +43,22 @@ function test_interrupt { # If the test helper fails (which is considered a setup error, not failure of the test # case itself), kill will be invoked without argument, and that will be the actual # error which is caught. - TEST "./$(dirname $0)/open_and_sleep $M0/testfile | { sleep 0.1; xargs -n1 kill -INT; }" + TEST "./$(dirname $0)/open_and_sleep $M0/testfile-$handlebool | { sleep 0.1; xargs -n1 kill -INT; }" TEST "grep -E '$logpattern' $log_file" # Basic sanity check, making sure filesystem has not crashed. - TEST test -f $M0/testfile + TEST test -f $M0/testfile-$handlebool } # Theoretically FLUSH might finish before INTERRUPT is handled, -# in which case we'd get the "no handler found" message (but it's unlikely). -test_interrupt yes 'FLUSH.*interrupt handler triggered|INTERRUPT.*no handler found' +# in which case we'd get the "no handler found" message instead of +# "interrupt handler triggered" (but it's unlikely). +# If that's observed, the pattern can be changed to +# 'FLUSH.*interrupt handler triggered|[I]NTERRUPT.*no handler found' +# to fix the test. +test_interrupt yes '[F]LUSH.*interrupt handler triggered' EXPECT_WITHIN $UMOUNT_TIMEOUT "Y" force_umount $M0 -test_interrupt no 'INTERRUPT.*no handler found' +test_interrupt no '[I]NTERRUPT.*no handler found' ## Finish up TEST $CLI volume stop $V0; |