power: a lock problem is no longer said once the lock is held

This commit is contained in:
jochen
2026-10-05 10:03:30 +02:00
parent a3c8086d52
commit 815a55a9fd
2 changed files with 12 additions and 0 deletions
+3
View File
@@ -164,6 +164,9 @@ func (w *Watcher) inhibit(l Login1) {
return
}
w.lock = f
if strings.HasPrefix(w.issue, "no delay lock") || strings.HasPrefix(w.issue, "logind") {
w.issue = "" // solved: a problem that no longer holds is not said
}
}
// stillHeld says whether the lock's descriptor is still logind's reference; replaceable in tests.
+9
View File
@@ -68,6 +68,15 @@ func TestALostLockIsTakenAgain(t *testing.T) {
}
}
func TestAProblemIsNoLongerSaidOnceTheLockIsHeld(t *testing.T) {
w := watcher(t, machine(t, nil), &bus{})
w.problem("no delay lock: Permission denied")
w.inhibit(&fakeLogin{})
if s := w.Snapshot(); !s.Inhibiting || s.Problem != "" {
t.Fatalf("%+v", s)
}
}
func TestStdinIsNeverTakenForALock(t *testing.T) {
if IsInhibitor(0) || IsInhibitor(1) || IsInhibitor(2) {
t.Fatal("a standard descriptor was taken for logind's lock")