func (s *InterfaceSuite) TestRequestRebootNowNoProcess(c *gc.C) { // A normal hook run or a juju-run command will record the *os.Process // object of the running command, in HookContext. When requesting a // reboot with the --now flag, the process is killed and only // then will we set the reboot priority. This test basically simulates // the case when the process calling juju-reboot is not recorded. ctx := runner.HookContext{} err := ctx.RequestReboot(jujuc.RebootNow) c.Assert(err, gc.ErrorMatches, "no process to kill") priority := ctx.GetRebootPriority() c.Assert(priority, gc.Equals, jujuc.RebootNow) }
func (s *InterfaceSuite) TestRequestRebootNow(c *gc.C) { ctx := runner.HookContext{} p := s.startProcess(c) ctx.SetProcess(p) go func() { _, err := p.Wait() c.Assert(err, jc.ErrorIsNil) }() err := ctx.RequestReboot(jujuc.RebootNow) c.Assert(err, jc.ErrorIsNil) priority := ctx.GetRebootPriority() c.Assert(priority, gc.Equals, jujuc.RebootNow) }
func (s *InterfaceSuite) TestRequestRebootAfterHook(c *gc.C) { if runtime.GOOS == "windows" { c.Skip("bug 1403084: Cannot send sigterm on windows") } ctx := runner.HookContext{} p := s.startProcess(c) ctx.SetProcess(p) err := ctx.RequestReboot(jujuc.RebootAfterHook) c.Assert(err, jc.ErrorIsNil) err = p.Signal(syscall.SIGTERM) c.Assert(err, jc.ErrorIsNil) _, err = p.Wait() c.Assert(err, jc.ErrorIsNil) priority := ctx.GetRebootPriority() c.Assert(priority, gc.Equals, jujuc.RebootAfterHook) }