func (s *snapmgrQuerySuite) SetUpTest(c *C) { st := state.New(nil) st.Lock() defer st.Unlock() s.st = st dirs.SetRootDir(c.MkDir()) // Write a snap.yaml with fake name dname := filepath.Join(snap.MountDir("name1", 11), "meta") err := os.MkdirAll(dname, 0775) c.Assert(err, IsNil) fname := filepath.Join(dname, "snap.yaml") err = ioutil.WriteFile(fname, []byte(` name: name0 version: 1.1 description: | Lots of text`), 0644) c.Assert(err, IsNil) dname = filepath.Join(snap.MountDir("name1", 12), "meta") err = os.MkdirAll(dname, 0775) c.Assert(err, IsNil) fname = filepath.Join(dname, "snap.yaml") err = ioutil.WriteFile(fname, []byte(` name: name0 version: 1.2 description: | Lots of text`), 0644) c.Assert(err, IsNil) snapstate.Set(st, "name1", &snapstate.SnapState{ Active: true, Sequence: []*snap.SideInfo{ {OfficialName: "name1", Revision: 11, EditedSummary: "s11"}, {OfficialName: "name1", Revision: 12, EditedSummary: "s12"}, }, }) }
func (s *SquashfsTestSuite) TestRemoveViaSquashfsWorks(c *C) { snapPath := makeTestSnapPackage(c, packageHello) si := &snap.SideInfo{ OfficialName: "hello-snap", Revision: 16, } snap, err := (&Overlord{}).InstallWithSideInfo(snapPath, si, 0, &MockProgressMeter{}) c.Assert(err, IsNil) installedSnap, err := NewInstalledSnap(filepath.Join(snap.MountDir(), "meta", "snap.yaml")) c.Assert(err, IsNil) // after install the blob is in the right dir c.Assert(osutil.FileExists(filepath.Join(dirs.SnapBlobDir, "hello-snap_16.snap")), Equals, true) // now remove and ensure its gone err = (&Overlord{}).Uninstall(installedSnap, &MockProgressMeter{}) c.Assert(err, IsNil) c.Assert(osutil.FileExists(filepath.Join(dirs.SnapBlobDir, "hello-snap_16.snap")), Equals, false) }
func (s *SquashfsTestSuite) TestInstallKernelSnapRemovesKernelAssets(c *C) { files := [][]string{ {"vmlinuz-4.2", "I'm a kernel"}, {"initrd.img-4.2", "...and I'm an initrd"}, } snapPkg := makeTestSnapPackageWithFiles(c, packageKernel, files) si := &snap.SideInfo{ OfficialName: "ubuntu-kernel", Revision: 42, } snap, err := (&Overlord{}).InstallWithSideInfo(snapPkg, si, 0, &MockProgressMeter{}) c.Assert(err, IsNil) installedSnap, err := NewInstalledSnap(filepath.Join(snap.MountDir(), "meta", "snap.yaml")) c.Assert(err, IsNil) installedSnap.isActive = false kernelAssetsDir := filepath.Join(s.bootloader.Dir(), "ubuntu-kernel_42.snap") c.Assert(osutil.FileExists(kernelAssetsDir), Equals, true) // ensure uninstall cleans the kernel assets err = (&Overlord{}).Uninstall(installedSnap, &MockProgressMeter{}) c.Assert(err, IsNil) c.Assert(osutil.FileExists(kernelAssetsDir), Equals, false) }
func (ss *SnapSetup) MountDir() string { return snap.MountDir(ss.Name, ss.Revision) }