func (s *frameworkExampleSuite) TestFrameworkClient(c *check.C) { common.InstallSnap(c, "hello-dbus-fwk.canonical") defer common.RemoveSnap(c, "hello-dbus-fwk.canonical") common.InstallSnap(c, "hello-dbus-app.canonical") defer common.RemoveSnap(c, "hello-dbus-app.canonical") output := cli.ExecCommand(c, "hello-dbus-app.client") expected := "PASS\n" c.Assert(output, check.Equals, expected, check.Commentf("Expected output %s not found, %s", expected, output)) }
func (s *serviceSuite) TearDownTest(c *check.C) { if !common.NeedsReboot() && common.CheckRebootMark("") { common.RemoveSnap(c, data.BasicServiceSnapName) } // run cleanup last s.SnappySuite.TearDownTest(c) }
func (s *installAppSuite) TestCallFailBinaryFromInstalledSnap(c *check.C) { snapPath, err := build.LocalSnap(c, data.BasicBinariesSnapName) defer os.Remove(snapPath) c.Assert(err, check.IsNil, check.Commentf("Error building local snap: %s", err)) common.InstallSnap(c, snapPath) defer common.RemoveSnap(c, data.BasicBinariesSnapName) _, err = cli.ExecCommandErr("basic-binaries.fail") c.Assert(err, check.NotNil, check.Commentf("The binary did not fail")) }
func (s *installAppSuite) TestCallSuccessfulBinaryFromInstalledSnap(c *check.C) { snapPath, err := build.LocalSnap(c, data.BasicBinariesSnapName) defer os.Remove(snapPath) c.Assert(err, check.IsNil, check.Commentf("Error building local snap: %s", err)) common.InstallSnap(c, snapPath) defer common.RemoveSnap(c, data.BasicBinariesSnapName) // Exec command does not fail. cli.ExecCommand(c, "basic-binaries.success") }
func (s *helloWorldExampleSuite) TestCallHelloWorldBinary(c *check.C) { common.InstallSnap(c, "hello-world") s.AddCleanup(func() { common.RemoveSnap(c, "hello-world") }) echoOutput := cli.ExecCommand(c, "hello-world.echo") c.Assert(echoOutput, check.Equals, "Hello World!\n", check.Commentf("Wrong output from hello-world binary")) }
func (s *infoSuite) TestInfoMustPrintInstalledFrameworks(c *check.C) { common.InstallSnap(c, "hello-dbus-fwk.canonical") s.AddCleanup(func() { common.RemoveSnap(c, "hello-dbus-fwk.canonical") }) infoOutput := cli.ExecCommand(c, "snappy", "info") expected := "(?ms)" + ".*" + "^frameworks: .*hello-dbus-fwk.*\n" + ".*" c.Assert(infoOutput, check.Matches, expected) }
func (s *infoSuite) TestInfoMustPrintInstalledApps(c *check.C) { snapPath, err := build.LocalSnap(c, data.BasicSnapName) defer os.Remove(snapPath) c.Assert(err, check.IsNil, check.Commentf("Error building local snap: %s", err)) common.InstallSnap(c, snapPath) defer common.RemoveSnap(c, data.BasicSnapName) infoOutput := cli.ExecCommand(c, "snappy", "info") expected := "(?ms)" + ".*" + "^apps: .*" + data.BasicSnapName + "\\.sideload.*\n" c.Assert(infoOutput, check.Matches, expected) }
func (s *pythonWebserverExampleSuite) TestNetworkingServiceMustBeStarted(c *check.C) { baseAppName := "xkcd-webserver" appName := baseAppName + ".canonical" common.InstallSnap(c, appName) defer common.RemoveSnap(c, appName) err := wait.ForServerOnPort(c, "tcp", 80) c.Assert(err, check.IsNil, check.Commentf("Error waiting for server: %s", err)) resp, err := http.Get("http://localhost") c.Assert(err, check.IsNil, check.Commentf("Error getting the http resource: %s", err)) c.Check(resp.Status, check.Equals, "200 OK", check.Commentf("Wrong reply status")) c.Assert(resp.Proto, check.Equals, "HTTP/1.0", check.Commentf("Wrong reply protocol")) }
func (s *listSuite) TestListMustPrintAppVersion(c *check.C) { common.InstallSnap(c, "hello-world") s.AddCleanup(func() { common.RemoveSnap(c, "hello-world") }) listOutput := cli.ExecCommand(c, "snappy", "list") expected := "(?ms)" + "Name +Date +Version +Developer *\n" + ".*" + "^hello-world +.* +(\\d+)(\\.\\d+)* +.* +.* *\n" + ".*" c.Assert(listOutput, check.Matches, expected) }
func (s *goWebserverExampleSuite) TestGetRootPathMustPrintMessage(c *check.C) { appName := "go-example-webserver" common.InstallSnap(c, appName) defer common.RemoveSnap(c, appName) err := wait.ForServerOnPort(c, "tcp6", 8081) c.Assert(err, check.IsNil, check.Commentf("Error waiting for server: %s", err)) resp, err := http.Get("http://localhost:8081/") defer resp.Body.Close() c.Assert(err, check.IsNil, check.Commentf("Error getting the http resource: %s", err)) c.Check(resp.Status, check.Equals, "200 OK", check.Commentf("Wrong reply status")) body, err := ioutil.ReadAll(resp.Body) c.Assert(err, check.IsNil, check.Commentf("Error reading the reply body: %s", err)) c.Assert(string(body), check.Equals, "Hello World\n", check.Commentf("Wrong reply body")) }
func (s *installAppSuite) TestInstallAppMustPrintPackageInformation(c *check.C) { snapPath, err := build.LocalSnap(c, data.BasicSnapName) defer os.Remove(snapPath) c.Assert(err, check.IsNil, check.Commentf("Error building local snap: %s", err)) installOutput := common.InstallSnap(c, snapPath) defer common.RemoveSnap(c, data.BasicSnapName) expected := "(?ms)" + fmt.Sprintf("Installing %s\n", snapPath) + ".*Signature check failed, but installing anyway as requested\n" + "Name +Date +Version +Developer \n" + ".*" + "^basic +.* +.* +sideload *\n" + ".*" c.Assert(installOutput, check.Matches, expected) }
// Test that there is a proper message if the autopilot runs in the // background func (s *autopilotMsgSuite) TestAutoPilotMessageIsPrinted(c *check.C) { cli.ExecCommand(c, "sudo", "systemctl", "start", "snappy-autopilot") // do not pollute the other tests with the now installed hello-world s.AddCleanup(func() { common.RemoveSnap(c, "hello-world") }) // FIXME: risk of race // (i.e. systemctl start finishes before install runs) snappyOutput, _ := exec.Command("sudo", "snappy", "install", "hello-world").CombinedOutput() expected := "(?ms)" + ".*" + "^The snappy autopilot is updating your system.*\n" + ".*" c.Assert(string(snappyOutput), check.Matches, expected) }
func (s *helloWorldExampleSuite) TestCallHelloWorldEvilMustPrintPermissionDeniedError(c *check.C) { common.InstallSnap(c, "hello-world") s.AddCleanup(func() { common.RemoveSnap(c, "hello-world") }) echoOutput, err := cli.ExecCommandErr("hello-world.evil") c.Assert(err, check.NotNil, check.Commentf("hello-world.evil did not fail")) expected := "" + "Hello Evil World!\n" + "This example demonstrates the app confinement\n" + "You should see a permission denied error next\n" + "/apps/hello-world.canonical/.*/bin/evil: \\d+: " + "/apps/hello-world.canonical/.*/bin/evil: " + "cannot create /var/tmp/myevil.txt: Permission denied\n" c.Assert(string(echoOutput), check.Matches, expected) }
func (s *buildSuite) TestBuildBasicSnapOnSnappy(c *check.C) { // build basic snap and check output snapPath, err := build.LocalSnap(c, data.BasicSnapName) defer os.Remove(snapPath) c.Assert(err, check.IsNil, check.Commentf("Error building local snap: %s", err)) // install built snap and check output installOutput := common.InstallSnap(c, snapPath) defer common.RemoveSnap(c, data.BasicSnapName) expected := "(?ms)" + "Installing " + snapPath + "\n" + ".*Signature check failed, but installing anyway as requested\n" + "Name +Date +Version +Developer \n" + ".*\n" + data.BasicSnapName + " +.* +.* +sideload \n" + ".*\n" c.Check(installOutput, check.Matches, expected) }
func (s *configExampleSuite) TestPrintMessageFromConfig(c *check.C) { for _, t := range configTests { common.InstallSnap(c, t.snap+t.origin) defer common.RemoveSnap(c, t.snap) config := fmt.Sprintf(`config: %s: msg: | %s`, t.snap, t.message) configFile, err := ioutil.TempFile("", "snappy-cfg") defer func() { configFile.Close(); os.Remove(configFile.Name()) }() c.Assert(err, check.IsNil, check.Commentf("Error creating temp file: %s", err)) _, err = configFile.Write([]byte(config)) c.Assert(err, check.IsNil, check.Commentf("Error writing the conf to the temp file: %s", err)) cli.ExecCommand(c, "sudo", "snappy", "config", t.snap, configFile.Name()) output := cli.ExecCommand(c, t.snap+".hello") c.Assert(output, check.Equals, t.message, check.Commentf("Wrong message")) } }
func (s *hwAssignSuite) TearDownTest(c *check.C) { s.SnappySuite.TearDownTest(c) os.Remove(s.snapPath) common.RemoveSnap(c, snapName) }
func (s *snapd10PackagesTestSuite) TearDownTest(c *check.C) { s.snapdTestSuite.TearDownTest(c) os.Remove(s.snapPath) common.RemoveSnap(c, data.BasicConfigSnapName) }
func (s *activateSuite) TearDownTest(c *check.C) { os.Remove(s.snapPath) common.RemoveSnap(c, activateSnapName) s.SnappySuite.TearDownTest(c) }
func tearDownDocker(c *check.C) { common.RemoveSnap(c, "docker") }