diff --git a/tests/integration/integration.go b/tests/integration/integration.go index a0256cffd7ce..28f18ac8e322 100644 --- a/tests/integration/integration.go +++ b/tests/integration/integration.go @@ -229,7 +229,23 @@ func K3sStartServer(inputArgs ...string) (*K3sServer, error) { return &K3sServer{cmd, f}, err } -// K3sKillServer terminates the running K3s server and its children +// K3sStopServer gracefully stops the running K3s server and does not kill its children. +// Equivalent to stoping the K3s service +func K3sStopServer(server *K3sServer) error { + if server.log != nil { + server.log.Close() + } + if err := server.cmd.Process.Kill(); err != nil { + return errors.Wrap(err, "failed to kill k3s process") + } + if _, err := server.cmd.Process.Wait(); err != nil { + return errors.Wrap(err, "failed to wait for k3s process exit") + } + return nil +} + +// K3sKillServer terminates the running K3s server and its children. +// Equivalent to k3s-killall.sh func K3sKillServer(server *K3sServer) error { if server.log != nil { server.log.Close() diff --git a/tests/integration/startup/startup_int_test.go b/tests/integration/startup/startup_int_test.go index e01257e368d3..e161ba0280c5 100644 --- a/tests/integration/startup/startup_int_test.go +++ b/tests/integration/startup/startup_int_test.go @@ -226,11 +226,11 @@ var _ = Describe("startup tests", Ordered, func() { To(ContainSubstring("pod/dummy created")) Eventually(func() (string, error) { return testutil.K3sCmd("kubectl get event -n kube-system --field-selector involvedObject.name=dummy") - }, "20s", "4s").Should(ContainSubstring("Started container dummy")) + }, "60s", "5s").Should(ContainSubstring("Started container dummy")) }) It("restarts the server", func() { var err error - Expect(testutil.K3sKillServer(startupServer)).To(Succeed()) + Expect(testutil.K3sStopServer(startupServer)).To(Succeed()) startupServer, err = testutil.K3sStartServer(startupServerArgs...) Expect(err).ToNot(HaveOccurred()) Eventually(func() error { @@ -260,7 +260,7 @@ var _ = AfterEach(func() { var _ = AfterSuite(func() { if !testutil.IsExistingServer() { if failed { - testutil.K3sDumpLog(startupServer) + testutil.K3sSaveLog(startupServer, false) Expect(testutil.K3sKillServer(startupServer)).To(Succeed()) } Expect(testutil.K3sCleanup(testLock, "")).To(Succeed())