diff options
Diffstat (limited to 'pkg/systemd')
-rw-r--r-- | pkg/systemd/activation.go | 6 | ||||
-rw-r--r-- | pkg/systemd/activation_test.go | 32 |
2 files changed, 32 insertions, 6 deletions
diff --git a/pkg/systemd/activation.go b/pkg/systemd/activation.go index 8f75f9cca..9fcfed771 100644 --- a/pkg/systemd/activation.go +++ b/pkg/systemd/activation.go @@ -25,11 +25,5 @@ func SocketActivated() bool { if err != nil || nfds == 0 { return false } - - // "github.com/coreos/go-systemd/v22/activation" will use and validate this variable's - // value. We're just providing a fast fail - if _, found = os.LookupEnv("LISTEN_FDNAMES"); !found { - return false - } return true } diff --git a/pkg/systemd/activation_test.go b/pkg/systemd/activation_test.go new file mode 100644 index 000000000..d2553777b --- /dev/null +++ b/pkg/systemd/activation_test.go @@ -0,0 +1,32 @@ +package systemd + +import ( + "fmt" + "os" + "testing" + + "github.com/stretchr/testify/assert" +) + +func TestSocketActivated(t *testing.T) { + assert := assert.New(t) + + assert.False(SocketActivated()) + + // different pid + assert.NoError(os.Setenv("LISTEN_PID", "1")) + assert.False(SocketActivated()) + + // same pid no fds + assert.NoError(os.Setenv("LISTEN_PID", fmt.Sprintf("%d", os.Getpid()))) + assert.NoError(os.Setenv("LISTEN_FDS", "0")) + assert.False(SocketActivated()) + + // same pid some fds + assert.NoError(os.Setenv("LISTEN_FDS", "1")) + assert.True(SocketActivated()) + + // FDNAME is ok too (but not required) + assert.NoError(os.Setenv("LISTEN_FDNAMES", "/meshuggah/rocks")) + assert.True(SocketActivated()) +} |