Skip to content

Commit

Permalink
kpatch-test: add dmesg entry at start of test
Browse files Browse the repository at this point in the history
If the kernel log is empty prior to running the integration tests, the
following confusing status may be reported:

  ...
  ERROR: dmesg overflow, try increasing kernel log buffer size
  SUCCESS

This occurs because the script can't find an empty dmesg entry when the
tests are complete.  Copy the upstream kernel livepatching kselftests to
fix this by logging a canary message at the beginning of the integration
tests.  This will ensure a "real" message than can be found at the end.

Fixes: de1d0c6 ("kpatch-test: don't clear dmesg during test")
Signed-off-by: Joe Lawrence <[email protected]>
  • Loading branch information
joe-lawrence committed Mar 25, 2024
1 parent 4077d87 commit 796872f
Showing 1 changed file with 3 additions and 2 deletions.
5 changes: 3 additions & 2 deletions test/integration/kpatch-test
Original file line number Diff line number Diff line change
Expand Up @@ -299,12 +299,13 @@ run_combined_test() {

# save existing dmesg so we can detect new content
save_dmesg() {
SAVED_DMESG="$(dmesg | tail -n1)"
SAVED_DMESG="kpatch-test timestamp: $(date --rfc-3339=ns)"
echo "$SAVED_DMESG" > /dev/kmsg
}

# new dmesg entries since our saved entry
new_dmesg() {
if ! dmesg | awk -v last="$SAVED_DMESG" 'p; $0 == last{p=1} END {exit !p}'; then
if ! dmesg --notime | awk -v last="$SAVED_DMESG" 'p; $0 == last{p=1} END {exit !p}'; then
error "dmesg overflow, try increasing kernel log buffer size"
fi
}
Expand Down

0 comments on commit 796872f

Please sign in to comment.