all: implement self-upgrade flag from API

So upgrading don't have to be initiated manually, helping large
deployments to upgrade to latest ctrld version easily.
This commit is contained in:
Cuong Manh Le
2025-03-17 20:44:03 +07:00
committed by Cuong Manh Le
parent f27cbe3525
commit c60cf33af3
9 changed files with 175 additions and 4 deletions
+28
View File
@@ -0,0 +1,28 @@
package cli
import (
"strings"
"testing"
)
func Test_ensureSystemdKillMode(t *testing.T) {
tests := []struct {
name string
unitFile string
wantChange bool
}{
{"no KillMode", "[Service]\nExecStart=/bin/sleep 1", true},
{"not KillMode=process", "[Service]\nExecStart=/bin/sleep 1\nKillMode=mixed", true},
{"KillMode=process", "[Service]\nExecStart=/bin/sleep 1\nKillMode=process", false},
{"invalid unit file", "[Service\nExecStart=/bin/sleep 1\nKillMode=process", false},
}
for _, tc := range tests {
tc := tc
t.Run(tc.name, func(t *testing.T) {
t.Parallel()
if _, change := ensureSystemdKillMode(strings.NewReader(tc.unitFile)); tc.wantChange != change {
t.Errorf("ensureSystemdKillMode(%q) = %v, want %v", tc.unitFile, change, tc.wantChange)
}
})
}
}