From c668a8c5314793f20c99edc605730d15d3f76c8f Mon Sep 17 00:00:00 2001 From: Colin Walters Date: Thu, 9 Nov 2023 14:08:41 -0500 Subject: [PATCH] tests: Work around systemd regression for boot id parsing cc https://github.com/systemd/systemd/issues/29275 --- tests/kolainst/destructive/boot-automount.sh | 12 +++++++----- tests/kolainst/destructive/staged-delay.sh | 3 ++- tests/kolainst/destructive/staged-deploy.sh | 3 ++- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/tests/kolainst/destructive/boot-automount.sh b/tests/kolainst/destructive/boot-automount.sh index d6d1732e7c..17e44acaed 100755 --- a/tests/kolainst/destructive/boot-automount.sh +++ b/tests/kolainst/destructive/boot-automount.sh @@ -60,7 +60,8 @@ EOF # Check that the finalize and hold services succeeded in the # previous boot. Dump them to the test log to help debugging. prepare_tmpdir - journalctl -b -1 -o short-monotonic \ + prev_bootid=$(journalctl --list-boots -o json |jq -r '.[] | select(.index == -1) | .boot_id') + journalctl -b "${prev_bootid}" -o short-monotonic \ -u ostree-finalize-staged.service \ -u ostree-finalize-staged-hold.service \ -u boot.mount \ @@ -72,10 +73,11 @@ EOF # Check that the hold service remained active and kept /boot mounted until # the finalize service completed. - finalize_stopped=$(journalctl -b -1 -o json -g Stopped -u ostree-finalize-staged.service | tail -n1 | jq -r .__MONOTONIC_TIMESTAMP) - hold_stopping=$(journalctl -b -1 -o json -g Stopping -u ostree-finalize-staged-hold.service | tail -n1 | jq -r .__MONOTONIC_TIMESTAMP) - hold_stopped=$(journalctl -b -1 -o json -g Stopped -u ostree-finalize-staged-hold.service | tail -n1 | jq -r .__MONOTONIC_TIMESTAMP) - boot_unmounting=$(journalctl -b -1 -o json -g Unmounting -u boot.mount | tail -n1 | jq -r .__MONOTONIC_TIMESTAMP) + prev_bootid=$(journalctl --list-boots -o json |jq -r '.[] | select(.index == -1) | .boot_id') + finalize_stopped=$(journalctl -b $prev_bootid -o json -g Stopped -u ostree-finalize-staged.service | tail -n1 | jq -r .__MONOTONIC_TIMESTAMP) + hold_stopping=$(journalctl -b $prev_bootid -o json -g Stopping -u ostree-finalize-staged-hold.service | tail -n1 | jq -r .__MONOTONIC_TIMESTAMP) + hold_stopped=$(journalctl -b $prev_bootid -o json -g Stopped -u ostree-finalize-staged-hold.service | tail -n1 | jq -r .__MONOTONIC_TIMESTAMP) + boot_unmounting=$(journalctl -b $prev_bootid -o json -g Unmounting -u boot.mount | tail -n1 | jq -r .__MONOTONIC_TIMESTAMP) test "${finalize_stopped}" -lt "${hold_stopping}" test "${hold_stopped}" -lt "${boot_unmounting}" ;; diff --git a/tests/kolainst/destructive/staged-delay.sh b/tests/kolainst/destructive/staged-delay.sh index 699c35509f..12cf9d0125 100755 --- a/tests/kolainst/destructive/staged-delay.sh +++ b/tests/kolainst/destructive/staged-delay.sh @@ -24,7 +24,8 @@ rpm-ostree kargs --append=somedummykarg=1 ;; "2") -journalctl -b -1 -u ostree-finalize-staged > logs.txt +prev_bootid=$(journalctl --list-boots -o json |jq -r '.[] | select(.index == -1) | .boot_id') +journalctl -b $prev_bootid -u ostree-finalize-staged > logs.txt assert_file_has_content_literal logs.txt 'ostree-finalize-staged found /boot/loader/entries' # older systemd doesn't output the success message if systemctl --version | head -1 | grep -qF -e 'systemd 239'; then diff --git a/tests/kolainst/destructive/staged-deploy.sh b/tests/kolainst/destructive/staged-deploy.sh index 01c2b48916..ff6f8d7a8d 100755 --- a/tests/kolainst/destructive/staged-deploy.sh +++ b/tests/kolainst/destructive/staged-deploy.sh @@ -72,7 +72,8 @@ EOF # Check that deploy-staged service worked rpm-ostree status # Assert that the previous boot had a journal entry for it - journalctl -b "-1" -u ostree-finalize-staged.service > svc.txt + prev_bootid=$(journalctl --list-boots -o json |jq -r '.[] | select(.index == -1) | .boot_id') + journalctl -b $prev_bootid -u ostree-finalize-staged.service > svc.txt assert_file_has_content svc.txt 'Bootloader updated; bootconfig swap: yes;.*deployment count change: 1' # Also validate ignoring socket and fifo assert_file_has_content svc.txt 'Ignoring.*during /etc merge:.*sock-to-ignore'