func (s *checkSnapSuite) TestCheckSnapCheckCallbackFail(c *C) { const yaml = `name: foo version: 1.0` info, err := snap.InfoFromSnapYaml([]byte(yaml)) c.Assert(err, IsNil) var openSnapFile = func(path string, si *snap.SideInfo) (*snap.Info, snap.Container, error) { return info, nil, nil } restore := snapstate.MockOpenSnapFile(openSnapFile) defer restore() fail := errors.New("bad snap") checkCb := func(st *state.State, s, cur *snap.Info, flags snapstate.Flags) error { return fail } r2 := snapstate.MockCheckSnapCallbacks(nil) defer r2() snapstate.AddCheckSnapCallback(checkCb) err = snapstate.CheckSnap(s.st, "snap-path", nil, nil, snapstate.Flags{}) c.Check(err, Equals, fail) }
func init() { // hook interface checks into snapstate installation logic snapstate.AddCheckSnapCallback(func(st *state.State, snapInfo, _ *snap.Info, _ snapstate.Flags) error { return CheckInterfaces(st, snapInfo) }) }
func init() { snapstate.AddCheckSnapCallback(checkGadgetOrKernel) }