summaryrefslogtreecommitdiff
path: root/pkg/machine/e2e/ssh_test.go
diff options
context:
space:
mode:
authorBrent Baude <bbaude@redhat.com>2022-04-02 15:25:19 -0500
committerBrent Baude <bbaude@redhat.com>2022-04-25 13:05:35 -0500
commit833456e079c31111a15fedaa3ccd7f852e89e508 (patch)
tree4e06007f5bec3c1cdc763a6b879ecebca5d75a29 /pkg/machine/e2e/ssh_test.go
parent6984a0f35704204fa15374aa2c133c4e6e0b366f (diff)
downloadpodman-833456e079c31111a15fedaa3ccd7f852e89e508.tar.gz
podman-833456e079c31111a15fedaa3ccd7f852e89e508.tar.bz2
podman-833456e079c31111a15fedaa3ccd7f852e89e508.zip
Add podman machine test suite
This PR introduces a test suite for podman machine. It can currently be run on developers' local machines and is not part of the official CI testing; however, the expectation is that any work on machine should come with an accompanying test. At present, the test must be run on Linux. It is untested on Darwin. There is no Makefile target for the test. It can be run like `ginkgo -v pkg/machine/test/.`. It should be run as a unprivileged user. Signed-off-by: Brent Baude <bbaude@redhat.com>
Diffstat (limited to 'pkg/machine/e2e/ssh_test.go')
-rw-r--r--pkg/machine/e2e/ssh_test.go59
1 files changed, 59 insertions, 0 deletions
diff --git a/pkg/machine/e2e/ssh_test.go b/pkg/machine/e2e/ssh_test.go
new file mode 100644
index 000000000..90296fa10
--- /dev/null
+++ b/pkg/machine/e2e/ssh_test.go
@@ -0,0 +1,59 @@
+package e2e
+
+import (
+ . "github.com/onsi/ginkgo"
+ . "github.com/onsi/gomega"
+)
+
+var _ = Describe("podman machine ssh", func() {
+ var (
+ mb *machineTestBuilder
+ testDir string
+ )
+
+ BeforeEach(func() {
+ testDir, mb = setup()
+ })
+ AfterEach(func() {
+ teardown(originalHomeDir, testDir, mb)
+ })
+
+ It("bad machine name", func() {
+ name := randomString(12)
+ ssh := sshMachine{}
+ session, err := mb.setName(name).setCmd(ssh).run()
+ Expect(err).To(BeNil())
+ Expect(session.ExitCode()).To(Equal(125))
+ // TODO seems like stderr is not being returned; re-enabled when fixed
+ //Expect(session.outputToString()).To(ContainSubstring("not exist"))
+ })
+
+ It("ssh to non-running machine", func() {
+ name := randomString(12)
+ i := new(initMachine)
+ session, err := mb.setName(name).setCmd(i.withImagePath(mb.imagePath)).run()
+ Expect(err).To(BeNil())
+ Expect(session.ExitCode()).To(Equal(0))
+
+ ssh := sshMachine{}
+ sshSession, err := mb.setName(name).setCmd(ssh).run()
+ Expect(err).To(BeNil())
+ // TODO seems like stderr is not being returned; re-enabled when fixed
+ //Expect(sshSession.outputToString()).To(ContainSubstring("is not running"))
+ Expect(sshSession.ExitCode()).To(Equal(125))
+ })
+
+ It("ssh to running machine and check os-type", func() {
+ name := randomString(12)
+ i := new(initMachine)
+ session, err := mb.setName(name).setCmd(i.withImagePath(mb.imagePath).withNow()).run()
+ Expect(err).To(BeNil())
+ Expect(session.ExitCode()).To(Equal(0))
+
+ ssh := sshMachine{}
+ sshSession, err := mb.setName(name).setCmd(ssh.withSSHComand([]string{"cat", "/etc/os-release"})).run()
+ Expect(err).To(BeNil())
+ Expect(sshSession.ExitCode()).To(Equal(0))
+ Expect(sshSession.outputToString()).To(ContainSubstring("Fedora CoreOS"))
+ })
+})