func (s *frameworkExampleSuite) TestFrameworkClient(c *check.C) { common.InstallSnap(c, "hello-dbus-fwk.canonical/edge") defer common.RemoveSnap(c, "hello-dbus-fwk.canonical") common.InstallSnap(c, "hello-dbus-app.canonical/edge") 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 *snapdTestSuite) SetUpTest(c *check.C) { s.SnappySuite.SetUpTest(c) c.Skip("FIXME: we need to update http.chipaca to new-security *and* land auto-connect support in snapd") common.InstallSnap(c, httpClientSnap+"/edge") }
func (s *installAppSuite) TestInstallFromStoreMetadata(c *check.C) { common.InstallSnap(c, "hello-world/edge") defer common.RemoveSnap(c, "hello-world") output := cli.ExecCommand(c, "snappy", "info", "hello-world") c.Check(string(output), check.Matches, "(?ms)^channel: edge") }
func (s *hwAssignSuite) SetUpTest(c *check.C) { s.SnappySuite.SetUpTest(c) var err error s.snapPath, err = build.LocalSnap(c, snapName) c.Assert(err, check.IsNil, check.Commentf("Error building local snap: %s", err)) common.InstallSnap(c, s.snapPath) }
func (s *purgeSuite) SetUpTest(c *check.C) { s.SnappySuite.SetUpTest(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) }
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 *activateSuite) SetUpTest(c *check.C) { s.SnappySuite.SetUpTest(c) if common.Release(c) == "15.04" { c.Skip("activate CLI command not available on 15.04, reenable the test when present") } var err error s.snapPath, err = build.LocalSnap(c, activateSnapName) c.Assert(err, check.IsNil, check.Commentf("Error building local snap: %s", err)) common.InstallSnap(c, s.snapPath) }
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/edge") 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 setUpDocker(c *check.C) { common.InstallSnap(c, "docker/edge") dockerVersion := common.GetCurrentVersion(c, "docker") dockerService := fmt.Sprintf("docker_docker-daemon_%s.service", dockerVersion) err := wait.ForActiveService(c, dockerService) c.Assert(err, check.IsNil, check.Commentf("Error waiting for service: %s", err)) err = wait.ForCommand(c, `(?ms).*docker\.sock\s.*`, "ls", "/run") c.Assert(err, check.IsNil, check.Commentf("Expected nil error, got %s", err)) cli.ExecCommand(c, "docker", "pull", baseContainer) }
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 *pythonWebserverExampleSuite) TestNetworkingServiceMustBeStarted(c *check.C) { baseAppName := "xkcd-webserver" appName := baseAppName + ".canonical" common.InstallSnap(c, appName+"/edge") 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 *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 *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)" + "Name +Version +Developer\n" + ".*" + "^basic +.* *\n" + ".*" c.Assert(installOutput, check.Matches, expected) }
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 *installFrameworkSuite) TestInstallFrameworkMustPrintPackageInformation(c *check.C) { snapPath, err := build.LocalSnap(c, data.BasicFrameworkSnapName) 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.BasicFrameworkSnapName) expected := "(?ms)" + fmt.Sprintf("Installing %s\n", snapPath) + "Name +Date +Version +Developer \n" + ".*" + "^basic-framework +.* +.* +sideload *\n" + ".*" c.Assert(installOutput, check.Matches, expected) }
func (s *goWebserverExampleSuite) TestGetRootPathMustPrintMessage(c *check.C) { appName := "go-example-webserver" common.InstallSnap(c, appName+"/edge") 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 *installDesktopAppSuite) TestInstallsDesktopFile(c *check.C) { c.Skip("port to snapd") snapPath, err := build.LocalSnap(c, data.BasicDesktopSnapName) 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.BasicDesktopSnapName) content, err := ioutil.ReadFile(filepath.Join(dirs.SnapDesktopFilesDir, "basic-desktop_echo.desktop")) c.Assert(err, check.IsNil) c.Assert(string(content), testutil.Contains, `[Desktop Entry] Name=Echo Comment=It echos stuff Exec=/snap/bin/basic-desktop.echo `) }
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" + "Name +Date +Version +Developer \n" + ".*" + data.BasicSnapName + " +.* +.* +sideload \n" + ".*" c.Check(installOutput, check.Matches, expected) }
func (s *helloWorldExampleSuite) TestCallHelloWorldEvilMustPrintPermissionDeniedError(c *check.C) { common.InstallSnap(c, "hello-world/edge") 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" + "/snaps/hello-world.canonical/.*/bin/evil: \\d+: " + "/snaps/hello-world.canonical/.*/bin/evil: " + "cannot create /var/tmp/myevil.txt: Permission denied\n" c.Assert(string(echoOutput), check.Matches, expected) }
func (s *snapdTestSuite) SetUpTest(c *check.C) { s.SnappySuite.SetUpTest(c) trustedKey, err := filepath.Abs("integration-tests/data/trusted.acckey") c.Assert(err, check.IsNil) cli.ExecCommand(c, "sudo", "systemctl", "stop", "ubuntu-snappy.snapd.service", "ubuntu-snappy.snapd.socket") // FIXME: for now pass a test-only trusted key through an env var s.cmd = exec.Command("sudo", "env", "PATH="+os.Getenv("PATH"), "SNAPPY_TRUSTED_ACCOUNT_KEY="+trustedKey, "/lib/systemd/systemd-activate", "-ESNAPPY_TRUSTED_ACCOUNT_KEY", "-l", "/run/snapd.socket", "snapd") s.cmd.Start() common.InstallSnap(c, httpClientSnap+"/edge") }
func (s *configExampleSuite) TestPrintMessageFromConfig(c *check.C) { for _, t := range configTests { common.InstallSnap(c, t.snap+t.origin+"/edge") 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 installSnapWithService(c *check.C) { snapPath, err := build.LocalSnap(c, data.BasicServiceSnapName) defer os.Remove(snapPath) c.Assert(err, check.IsNil, check.Commentf("Error building local snap: %s", err)) common.InstallSnap(c, snapPath) }