From f735e46665dfca56e768ae5f766b2f9e9d1d825d Mon Sep 17 00:00:00 2001 From: Vincent Bernat Date: Thu, 18 Sep 2025 15:41:15 +0200 Subject: [PATCH] common/daemon: test if sending SIGINT terminates the component --- common/daemon/root_test.go | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/common/daemon/root_test.go b/common/daemon/root_test.go index f713304e..fe835638 100644 --- a/common/daemon/root_test.go +++ b/common/daemon/root_test.go @@ -5,8 +5,10 @@ package daemon import ( "errors" + "syscall" "testing" "testing/synctest" + "time" "gopkg.in/tomb.v2" @@ -43,6 +45,23 @@ func TestTerminate(t *testing.T) { c.Terminate() // Can be called several times. } +func TestTerminateWithSignal(t *testing.T) { + r := reporter.NewMock(t) + c, err := New(r) + if err != nil { + t.Fatalf("New() error:\n%+v", err) + } + helpers.StartStop(t, c) + + syscall.Kill(syscall.Getpid(), syscall.SIGINT) + select { + case <-c.Terminated(): + // OK + case <-time.After(time.Second): + t.Fatalf("Terminated() wasn't closed while we requested it to be") + } +} + func TestStop(t *testing.T) { r := reporter.NewMock(t) c, err := New(r)