From: Yu Watanabe Date: Wed, 20 Aug 2025 18:07:26 +0000 (+0900) Subject: TEST-46-HOMED: homectl unregister and friends needs the target is inactive or absent X-Git-Tag: v258-rc4~59^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F38659%2Fhead;p=thirdparty%2Fsystemd.git TEST-46-HOMED: homectl unregister and friends needs the target is inactive or absent Hence, we need to wait for the previous operation finished. Fixes the following failure: ``` TEST-46-HOMED.sh[107]: + homectl unregister signtest TEST-46-HOMED.sh[1449]: Failed to unregister home: Home signtest is currently being used, or an operation on home signtest is currently being executed. ``` Fixes #38643 --- diff --git a/test/units/TEST-46-HOMED.sh b/test/units/TEST-46-HOMED.sh index 2d31c6fcb2a..12a1e3d8841 100755 --- a/test/units/TEST-46-HOMED.sh +++ b/test/units/TEST-46-HOMED.sh @@ -748,6 +748,7 @@ IDENTITY='{"userName":"signtest","storage":"directory","disposition":"regular"," # Try with stripping the foreign signature first, this should just work echo "$IDENTITY" | homectl create -P --identity=- --seize=yes +wait_for_state signtest inactive homectl remove signtest # No try again, and don't strip the signature. It will be refused. @@ -774,6 +775,7 @@ echo "$IDENTITY" | homectl create -P --identity=- --seize=no PASSWORD="test" homectl with signtest true # Remove the key, and check again ,should fail now +wait_for_state signtest inactive homectl remove-signing-key signtest.public wait_for_state signtest inactive (! PASSWORD="test" homectl with signtest true) @@ -785,15 +787,17 @@ homectl list-signing-keys | grep -q local.public # Test unregister + adopt mkdir /home/elsewhere mv /home/signtest.homedir /home/elsewhere/ +wait_for_state signtest absent homectl unregister signtest print_public_key | homectl add-signing-key --key-name=signtest.public homectl adopt /home/elsewhere/signtest.homedir PASSWORD="test" homectl with signtest true -wait_for_state signtest inactive # Test register +wait_for_state signtest inactive homectl unregister signtest homectl register /home/elsewhere/signtest.homedir/.identity +wait_for_state signtest absent homectl unregister signtest # Test automatic fixation for anything in /home/ @@ -801,9 +805,9 @@ mv /home/elsewhere/signtest.homedir /home rmdir /home/elsewhere wait_for_exist signtest PASSWORD="test" homectl with signtest true -wait_for_state signtest inactive # add signing key via credential +wait_for_state signtest inactive homectl remove-signing-key signtest.public (! (homectl list-signing-keys | grep -q signtest.public)) systemd-run --wait -p "SetCredential=home.add-signing-key.signtest.public:$(print_public_key)" homectl firstboot @@ -812,15 +816,17 @@ homectl list-signing-keys | grep -q signtest.public # register user via credential mkdir /home/elsewhere2 mv /home/signtest.homedir /home/elsewhere2/ +wait_for_state signtest absent homectl unregister signtest systemd-run --wait -p "LoadCredential=home.register.signtest:/home/elsewhere2/signtest.homedir/.identity" homectl firstboot homectl inspect signtest +wait_for_state signtest absent homectl unregister signtest mv /home/elsewhere2/signtest.homedir /home/ rmdir /home/elsewhere2 -wait_for_exist signtest # Remove it all again +wait_for_exist signtest homectl remove-signing-key signtest.public homectl remove signtest