func (s *linkSnapSuite) TestDoLinkSnapSuccess(c *C) { s.state.Lock() t := s.state.NewTask("link-snap", "test") t.Set("snap-setup", &snapstate.SnapSetup{ SideInfo: &snap.SideInfo{ RealName: "foo", Revision: snap.R(33), }, Channel: "beta", }) s.state.NewChange("dummy", "...").AddTask(t) s.state.Unlock() s.snapmgr.Ensure() s.snapmgr.Wait() s.state.Lock() defer s.state.Unlock() var snapst snapstate.SnapState err := snapstate.Get(s.state, "foo", &snapst) c.Assert(err, IsNil) typ, err := snapst.Type() c.Check(err, IsNil) c.Check(typ, Equals, snap.TypeApp) c.Check(snapst.Active, Equals, true) c.Check(snapst.Sequence, HasLen, 1) c.Check(snapst.Current, Equals, snap.R(33)) c.Check(snapst.Channel, Equals, "beta") c.Check(t.Status(), Equals, state.DoneStatus) c.Check(s.stateBackend.restartRequested, Equals, false) }
func (s *linkSnapSuite) TestDoLinkSnapSuccessCoreRestarts(c *C) { restore := release.MockOnClassic(true) defer restore() s.state.Lock() si := &snap.SideInfo{ RealName: "core", Revision: snap.R(33), } t := s.state.NewTask("link-snap", "test") t.Set("snap-setup", &snapstate.SnapSetup{ SideInfo: si, }) s.state.NewChange("dummy", "...").AddTask(t) s.state.Unlock() s.snapmgr.Ensure() s.snapmgr.Wait() s.state.Lock() defer s.state.Unlock() var snapst snapstate.SnapState err := snapstate.Get(s.state, "core", &snapst) c.Assert(err, IsNil) typ, err := snapst.Type() c.Check(err, IsNil) c.Check(typ, Equals, snap.TypeOS) c.Check(t.Status(), Equals, state.DoneStatus) c.Check(s.stateBackend.restartRequested, Equals, true) c.Check(t.Log(), HasLen, 1) c.Check(t.Log()[0], Matches, `.*INFO Requested daemon restart\.`) }