本文整理汇总了Golang中github.com/snapcore/snapd/release.MockOnClassic函数的典型用法代码示例。如果您正苦于以下问题:Golang MockOnClassic函数的具体用法?Golang MockOnClassic怎么用?Golang MockOnClassic使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了MockOnClassic函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: TestOnClassic
func (s *ReleaseTestSuite) TestOnClassic(c *C) {
reset := release.MockOnClassic(true)
defer reset()
c.Assert(release.OnClassic, Equals, true)
reset = release.MockOnClassic(false)
defer reset()
c.Assert(release.OnClassic, Equals, false)
}
开发者ID:niemeyer,项目名称:snapd,代码行数:9,代码来源:release_test.go
示例2: TestSetNextBootForKernel
func (s *kernelOSSuite) TestSetNextBootForKernel(c *C) {
restore := release.MockOnClassic(false)
defer restore()
info := &snap.Info{}
info.Type = snap.TypeKernel
info.RealName = "krnl"
info.Revision = snap.R(42)
err := boot.SetNextBoot(info)
c.Assert(err, IsNil)
c.Assert(s.bootloader.BootVars, DeepEquals, map[string]string{
"snap_try_kernel": "krnl_42.snap",
"snap_mode": "try",
})
s.bootloader.BootVars["snap_kernel"] = "krnl_40.snap"
s.bootloader.BootVars["snap_try_kernel"] = "krnl_42.snap"
c.Check(boot.KernelOrOsRebootRequired(info), Equals, true)
// simulate good boot
s.bootloader.BootVars["snap_kernel"] = "krnl_42.snap"
c.Check(boot.KernelOrOsRebootRequired(info), Equals, false)
}
开发者ID:elopio,项目名称:snappy,代码行数:25,代码来源:kernel_os_test.go
示例3: TestAutoImportAssertsNotImportedFromLoop
func (s *SnapSuite) TestAutoImportAssertsNotImportedFromLoop(c *C) {
restore := release.MockOnClassic(false)
defer restore()
fakeAssertData := []byte("bad-assertion")
s.RedirectClientToTestServer(func(w http.ResponseWriter, r *http.Request) {
// assertion is ignored, nothing is posted to this endpoint
panic("not reached")
})
fakeAssertsFn := filepath.Join(c.MkDir(), "auto-import.assert")
err := ioutil.WriteFile(fakeAssertsFn, fakeAssertData, 0644)
c.Assert(err, IsNil)
mockMountInfoFmtWithLoop := `
24 0 8:18 / %s rw,relatime shared:1 - squashfs /dev/loop1 rw,errors=remount-ro,data=ordered`
content := fmt.Sprintf(mockMountInfoFmtWithLoop, filepath.Dir(fakeAssertsFn))
restore = snap.MockMountInfoPath(makeMockMountInfo(c, content))
defer restore()
rest, err := snap.Parser().ParseArgs([]string{"auto-import"})
c.Assert(err, IsNil)
c.Assert(rest, DeepEquals, []string{})
c.Check(s.Stdout(), Equals, "")
c.Check(s.Stderr(), Equals, "")
}
开发者ID:niemeyer,项目名称:snapd,代码行数:27,代码来源:cmd_auto_import_test.go
示例4: TestAutoImportAssertsHappyNotOnClassic
func (s *SnapSuite) TestAutoImportAssertsHappyNotOnClassic(c *C) {
restore := release.MockOnClassic(true)
defer restore()
fakeAssertData := []byte("my-assertion")
s.RedirectClientToTestServer(func(w http.ResponseWriter, r *http.Request) {
c.Errorf("auto-import on classic is disabled, but something tried to do a %q with %s", r.Method, r.URL.Path)
})
fakeAssertsFn := filepath.Join(c.MkDir(), "auto-import.assert")
err := ioutil.WriteFile(fakeAssertsFn, fakeAssertData, 0644)
c.Assert(err, IsNil)
mockMountInfoFmt := `
24 0 8:18 / %s rw,relatime shared:1 - ext4 /dev/sdb2 rw,errors=remount-ro,data=ordered`
content := fmt.Sprintf(mockMountInfoFmt, filepath.Dir(fakeAssertsFn))
restore = snap.MockMountInfoPath(makeMockMountInfo(c, content))
defer restore()
rest, err := snap.Parser().ParseArgs([]string{"auto-import"})
c.Assert(err, IsNil)
c.Assert(rest, DeepEquals, []string{})
c.Check(s.Stdout(), Equals, "")
c.Check(s.Stderr(), Equals, "auto-import is disabled on classic\n")
}
开发者ID:niemeyer,项目名称:snapd,代码行数:25,代码来源:cmd_auto_import_test.go
示例5: TestCheckSnapGadgetNoPrior
func (s *checkSnapSuite) TestCheckSnapGadgetNoPrior(c *C) {
reset := release.MockOnClassic(false)
defer reset()
st := state.New(nil)
st.Lock()
defer st.Unlock()
st.Set("seeded", true)
const yaml = `name: gadget
type: gadget
version: 1
`
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()
st.Unlock()
err = snapstate.CheckSnap(st, "snap-path", nil, nil, snapstate.Flags{})
st.Lock()
c.Check(err, IsNil)
}
开发者ID:niemeyer,项目名称:snapd,代码行数:27,代码来源:check_snap_test.go
示例6: TestCheckSnapGadgetCannotBeInstalledOnClassic
func (s *checkSnapSuite) TestCheckSnapGadgetCannotBeInstalledOnClassic(c *C) {
reset := release.MockOnClassic(true)
defer reset()
st := state.New(nil)
st.Lock()
defer st.Unlock()
const yaml = `name: gadget
type: gadget
version: 1
`
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()
st.Unlock()
err = snapstate.CheckSnap(st, "snap-path", nil, nil, snapstate.Flags{})
st.Lock()
c.Check(err, ErrorMatches, "cannot install a gadget snap on classic")
}
开发者ID:niemeyer,项目名称:snapd,代码行数:27,代码来源:check_snap_test.go
示例7: TestCheckSnapGadgetMissingPrior
func (s *checkSnapSuite) TestCheckSnapGadgetMissingPrior(c *C) {
err := os.MkdirAll(filepath.Dir(dirs.SnapFirstBootStamp), 0755)
c.Assert(err, IsNil)
err = ioutil.WriteFile(dirs.SnapFirstBootStamp, nil, 0644)
c.Assert(err, IsNil)
reset := release.MockOnClassic(false)
defer reset()
st := state.New(nil)
st.Lock()
defer st.Unlock()
const yaml = `name: gadget
type: gadget
version: 1
`
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()
st.Unlock()
err = snapstate.CheckSnap(st, "snap-path", nil, 0)
st.Lock()
c.Check(err, ErrorMatches, "cannot find original gadget snap")
}
开发者ID:clobrano,项目名称:snappy,代码行数:32,代码来源:check_snap_test.go
示例8: TestAutoImportIntoSpoolUnhappyTooBig
func (s *SnapSuite) TestAutoImportIntoSpoolUnhappyTooBig(c *C) {
restore := release.MockOnClassic(false)
defer restore()
dirs.SetRootDir(c.MkDir())
defer dirs.SetRootDir("")
l, err := logger.NewConsoleLog(s.stderr, 0)
c.Assert(err, IsNil)
logger.SetLogger(l)
// fake data is bigger than the default assertion limit
fakeAssertData := make([]byte, 641*1024)
// ensure we can not connect
snap.ClientConfig.BaseURL = "can-not-connect-to-this-url"
fakeAssertsFn := filepath.Join(c.MkDir(), "auto-import.assert")
err = ioutil.WriteFile(fakeAssertsFn, fakeAssertData, 0644)
c.Assert(err, IsNil)
mockMountInfoFmt := `
24 0 8:18 / %s rw,relatime shared:1 - squashfs /dev/sc1 rw,errors=remount-ro,data=ordered`
content := fmt.Sprintf(mockMountInfoFmt, filepath.Dir(fakeAssertsFn))
restore = snap.MockMountInfoPath(makeMockMountInfo(c, content))
defer restore()
_, err = snap.Parser().ParseArgs([]string{"auto-import"})
c.Assert(err, ErrorMatches, "cannot queue .*, file size too big: 656384")
}
开发者ID:niemeyer,项目名称:snapd,代码行数:30,代码来源:cmd_auto_import_test.go
示例9: TestAutoImportFromSpoolHappy
func (s *SnapSuite) TestAutoImportFromSpoolHappy(c *C) {
restore := release.MockOnClassic(false)
defer restore()
fakeAssertData := []byte("my-assertion")
n := 0
total := 2
s.RedirectClientToTestServer(func(w http.ResponseWriter, r *http.Request) {
switch n {
case 0:
c.Check(r.Method, Equals, "POST")
c.Check(r.URL.Path, Equals, "/v2/assertions")
postData, err := ioutil.ReadAll(r.Body)
c.Assert(err, IsNil)
c.Check(postData, DeepEquals, fakeAssertData)
fmt.Fprintln(w, `{"type": "sync", "result": {"ready": true, "status": "Done"}}`)
n++
case 1:
c.Check(r.Method, Equals, "POST")
c.Check(r.URL.Path, Equals, "/v2/create-user")
postData, err := ioutil.ReadAll(r.Body)
c.Assert(err, IsNil)
c.Check(string(postData), Equals, `{"sudoer":true,"known":true}`)
fmt.Fprintln(w, `{"type": "sync", "result": [{"username": "foo"}]}`)
n++
default:
c.Fatalf("unexpected request: %v (expected %d got %d)", r, total, n)
}
})
dirs.SetRootDir(c.MkDir())
defer dirs.SetRootDir("")
fakeAssertsFn := filepath.Join(dirs.SnapAssertsSpoolDir, "1234343")
err := os.MkdirAll(filepath.Dir(fakeAssertsFn), 0755)
c.Assert(err, IsNil)
err = ioutil.WriteFile(fakeAssertsFn, fakeAssertData, 0644)
c.Assert(err, IsNil)
l, err := logger.NewConsoleLog(s.stderr, 0)
c.Assert(err, IsNil)
logger.SetLogger(l)
rest, err := snap.Parser().ParseArgs([]string{"auto-import"})
c.Assert(err, IsNil)
c.Assert(rest, DeepEquals, []string{})
c.Check(s.Stdout(), Equals, `created user "foo"`+"\n")
// matches because we may get a:
// "WARNING: cannot create syslog logger\n"
// in the output
c.Check(s.Stderr(), Matches, fmt.Sprintf("(?ms).*imported %s\n", fakeAssertsFn))
c.Check(n, Equals, total)
c.Check(osutil.FileExists(fakeAssertsFn), Equals, false)
}
开发者ID:niemeyer,项目名称:snapd,代码行数:58,代码来源:cmd_auto_import_test.go
示例10: TestAutoImportAssertsHappy
func (s *SnapSuite) TestAutoImportAssertsHappy(c *C) {
restore := release.MockOnClassic(false)
defer restore()
fakeAssertData := []byte("my-assertion")
n := 0
total := 2
s.RedirectClientToTestServer(func(w http.ResponseWriter, r *http.Request) {
switch n {
case 0:
c.Check(r.Method, Equals, "POST")
c.Check(r.URL.Path, Equals, "/v2/assertions")
postData, err := ioutil.ReadAll(r.Body)
c.Assert(err, IsNil)
c.Check(postData, DeepEquals, fakeAssertData)
fmt.Fprintln(w, `{"type": "sync", "result": {"ready": true, "status": "Done"}}`)
n++
case 1:
c.Check(r.Method, Equals, "POST")
c.Check(r.URL.Path, Equals, "/v2/create-user")
postData, err := ioutil.ReadAll(r.Body)
c.Assert(err, IsNil)
c.Check(string(postData), Equals, `{"sudoer":true,"known":true}`)
fmt.Fprintln(w, `{"type": "sync", "result": [{"username": "foo"}]}`)
n++
default:
c.Fatalf("unexpected request: %v (expected %d got %d)", r, total, n)
}
})
fakeAssertsFn := filepath.Join(c.MkDir(), "auto-import.assert")
err := ioutil.WriteFile(fakeAssertsFn, fakeAssertData, 0644)
c.Assert(err, IsNil)
mockMountInfoFmt := `
24 0 8:18 / %s rw,relatime shared:1 - ext4 /dev/sdb2 rw,errors=remount-ro,data=ordered`
content := fmt.Sprintf(mockMountInfoFmt, filepath.Dir(fakeAssertsFn))
restore = snap.MockMountInfoPath(makeMockMountInfo(c, content))
defer restore()
l, err := logger.NewConsoleLog(s.stderr, 0)
c.Assert(err, IsNil)
logger.SetLogger(l)
rest, err := snap.Parser().ParseArgs([]string{"auto-import"})
c.Assert(err, IsNil)
c.Assert(rest, DeepEquals, []string{})
c.Check(s.Stdout(), Equals, `created user "foo"`+"\n")
// matches because we may get a:
// "WARNING: cannot create syslog logger\n"
// in the output
c.Check(s.Stderr(), Matches, fmt.Sprintf("(?ms).*imported %s\n", fakeAssertsFn))
c.Check(n, Equals, total)
}
开发者ID:niemeyer,项目名称:snapd,代码行数:57,代码来源:cmd_auto_import_test.go
示例11: TestPermanentSlotAppArmorClassic
func (s *MprisInterfaceSuite) TestPermanentSlotAppArmorClassic(c *C) {
restore := release.MockOnClassic(true)
defer restore()
iface := &builtin.MprisInterface{}
snippet, err := iface.PermanentSlotSnippet(s.slot, interfaces.SecurityAppArmor)
c.Assert(err, IsNil)
c.Assert(snippet, Not(IsNil))
// verify classic rule present
c.Check(string(snippet), testutil.Contains, "# Allow unconfined clients to interact with the player on classic\n")
}
开发者ID:pedronis,项目名称:snappy,代码行数:11,代码来源:mpris_test.go
示例12: TestSetNextBootOnClassic
// SetNextBoot should do nothing on classic LP: #1580403
func (s *kernelOSSuite) TestSetNextBootOnClassic(c *C) {
restore := release.MockOnClassic(true)
defer restore()
// Create a fake OS snap that we try to update
snapInfo := snaptest.MockSnap(c, "name: os\ntype: os", "SNAP", &snap.SideInfo{Revision: snap.R(42)})
err := boot.SetNextBoot(snapInfo)
c.Assert(err, IsNil)
c.Assert(s.bootloader.BootVars, HasLen, 0)
}
开发者ID:elopio,项目名称:snappy,代码行数:12,代码来源:kernel_os_test.go
示例13: TestPermanentSlotAppArmorSessionClassic
func (s *DbusInterfaceSuite) TestPermanentSlotAppArmorSessionClassic(c *C) {
restore := release.MockOnClassic(true)
defer restore()
iface := &builtin.DbusInterface{}
snippet, err := iface.PermanentSlotSnippet(s.sessionSlot, interfaces.SecurityAppArmor)
c.Assert(err, IsNil)
c.Assert(snippet, Not(IsNil))
// verify classic rule
c.Check(string(snippet), testutil.Contains, "# allow us to respond to unconfined clients via \"org.test-session-slot{,.*}\"\n")
}
开发者ID:pedronis,项目名称:snappy,代码行数:11,代码来源:dbus_test.go
示例14: TestInterimAutoConnectionHome
func (s *baseDeclSuite) TestInterimAutoConnectionHome(c *C) {
restore := release.MockOnClassic(true)
defer restore()
cand := s.connectCand(c, "home", "", "")
err := cand.CheckAutoConnect()
c.Check(err, IsNil)
release.OnClassic = false
err = cand.CheckAutoConnect()
c.Check(err, ErrorMatches, `auto-connection denied by slot rule of interface \"home\"`)
}
开发者ID:chipaca,项目名称:snappy,代码行数:11,代码来源:basedeclaration_test.go
示例15: TestFirstBootnableEther
func (s *FirstBootTestSuite) TestFirstBootnableEther(c *C) {
release.MockOnClassic(false)
firstBootEnableFirstEtherRun := false
restore := boot.MockFirstbootInitialNetworkConfig(func() error {
firstBootEnableFirstEtherRun = true
return nil
})
defer restore()
c.Assert(boot.FirstBoot(), IsNil)
c.Assert(firstBootEnableFirstEtherRun, Equals, true)
}
开发者ID:clobrano,项目名称:snappy,代码行数:12,代码来源:firstboot_test.go
示例16: TestAddImplicitSlotsOnClassic
func (s *InfoSnapYamlTestSuite) TestAddImplicitSlotsOnClassic(c *C) {
restore := release.MockOnClassic(true)
defer restore()
osYaml := []byte("name: ubuntu-core\ntype: os\n")
info, err := snap.InfoFromSnapYaml(osYaml)
c.Assert(err, IsNil)
snap.AddImplicitSlots(info)
c.Assert(info.Slots["unity7"].Interface, Equals, "unity7")
c.Assert(info.Slots["unity7"].Name, Equals, "unity7")
c.Assert(info.Slots["unity7"].Snap, Equals, info)
// Ensure that we have *some* implicit slots
c.Assert(len(info.Slots) > 10, Equals, true)
}
开发者ID:niemeyer,项目名称:snapd,代码行数:14,代码来源:implicit_test.go
示例17: TestOnClassicInstallation
func (s *policySuite) TestOnClassicInstallation(c *C) {
r1 := release.MockOnClassic(false)
defer r1()
r2 := release.MockReleaseInfo(&release.ReleaseInfo)
defer r2()
tests := []struct {
distro string // "" => not classic
installYaml string
err string // "" => no error
}{
{"", `name: install-snap
slots:
install-slot-on-classic-distros:`, `installation not allowed by "install-slot-on-classic-distros" slot rule.*`},
{"debian", `name: install-snap
slots:
install-slot-on-classic-distros:`, ""},
{"", `name: install-snap
plugs:
install-plug-on-classic-distros:`, `installation not allowed by "install-plug-on-classic-distros" plug rule.*`},
{"debian", `name: install-snap
plugs:
install-plug-on-classic-distros:`, ""},
}
for _, t := range tests {
if t.distro == "" {
release.OnClassic = false
} else {
release.OnClassic = true
release.ReleaseInfo = release.OS{
ID: t.distro,
}
}
installSnap := snaptest.MockInfo(c, t.installYaml, nil)
cand := policy.InstallCandidate{
Snap: installSnap,
BaseDeclaration: s.baseDecl,
}
err := cand.Check()
if t.err == "" {
c.Check(err, IsNil)
} else {
c.Check(err, ErrorMatches, t.err)
}
}
}
开发者ID:niemeyer,项目名称:snapd,代码行数:49,代码来源:policy_test.go
示例18: SetUpTest
func (bs *bootedSuite) SetUpTest(c *C) {
dirs.SetRootDir(c.MkDir())
err := os.MkdirAll(filepath.Dir(dirs.SnapStateFile), 0755)
c.Assert(err, IsNil)
// booted is not running on classic
release.MockOnClassic(false)
bs.bootloader = boottest.NewMockBootloader("mock", c.MkDir())
bs.bootloader.BootVars["snap_core"] = "ubuntu-core_2.snap"
bs.bootloader.BootVars["snap_kernel"] = "canonical-pc-linux_2.snap"
partition.ForceBootloader(bs.bootloader)
ovld, err := overlord.New()
c.Assert(err, IsNil)
bs.overlord = ovld
}
开发者ID:clobrano,项目名称:snappy,代码行数:17,代码来源:booted_test.go
示例19: TestSetNextBootForKernelForTheSameKernel
func (s *kernelOSSuite) TestSetNextBootForKernelForTheSameKernel(c *C) {
restore := release.MockOnClassic(false)
defer restore()
info := &snap.Info{}
info.Type = snap.TypeKernel
info.RealName = "krnl"
info.Revision = snap.R(40)
s.bootloader.BootVars["snap_kernel"] = "krnl_40.snap"
err := boot.SetNextBoot(info)
c.Assert(err, IsNil)
c.Assert(s.bootloader.BootVars, DeepEquals, map[string]string{
"snap_kernel": "krnl_40.snap",
})
}
开发者ID:elopio,项目名称:snappy,代码行数:18,代码来源:kernel_os_test.go
示例20: TestSetNextBootForCore
func (s *kernelOSSuite) TestSetNextBootForCore(c *C) {
restore := release.MockOnClassic(false)
defer restore()
info := &snap.Info{}
info.Type = snap.TypeOS
info.RealName = "core"
info.Revision = snap.R(100)
err := boot.SetNextBoot(info)
c.Assert(err, IsNil)
c.Assert(s.bootloader.BootVars, DeepEquals, map[string]string{
"snap_try_core": "core_100.snap",
"snap_mode": "try",
})
c.Check(boot.KernelOrOsRebootRequired(info), Equals, true)
}
开发者ID:elopio,项目名称:snappy,代码行数:19,代码来源:kernel_os_test.go
注:本文中的github.com/snapcore/snapd/release.MockOnClassic函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论