aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/github.com/onsi/gomega/gexec/exit_matcher_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/onsi/gomega/gexec/exit_matcher_test.go')
-rw-r--r--vendor/github.com/onsi/gomega/gexec/exit_matcher_test.go113
1 files changed, 113 insertions, 0 deletions
diff --git a/vendor/github.com/onsi/gomega/gexec/exit_matcher_test.go b/vendor/github.com/onsi/gomega/gexec/exit_matcher_test.go
new file mode 100644
index 0000000..79615dd
--- /dev/null
+++ b/vendor/github.com/onsi/gomega/gexec/exit_matcher_test.go
@@ -0,0 +1,113 @@
+package gexec_test
+
+import (
+ . "github.com/onsi/gomega/gexec"
+ "os/exec"
+ "time"
+
+ . "github.com/onsi/ginkgo"
+ . "github.com/onsi/gomega"
+)
+
+type NeverExits struct{}
+
+func (e NeverExits) ExitCode() int {
+ return -1
+}
+
+var _ = Describe("ExitMatcher", func() {
+ var command *exec.Cmd
+ var session *Session
+
+ BeforeEach(func() {
+ var err error
+ command = exec.Command(fireflyPath, "0")
+ session, err = Start(command, nil, nil)
+ Ω(err).ShouldNot(HaveOccurred())
+ })
+
+ Describe("when passed something that is an Exiter", func() {
+ It("should act normally", func() {
+ failures := InterceptGomegaFailures(func() {
+ Ω(NeverExits{}).Should(Exit())
+ })
+
+ Ω(failures[0]).Should(ContainSubstring("Expected process to exit. It did not."))
+ })
+ })
+
+ Describe("when passed something that is not an Exiter", func() {
+ It("should error", func() {
+ failures := InterceptGomegaFailures(func() {
+ Ω("aardvark").Should(Exit())
+ })
+
+ Ω(failures[0]).Should(ContainSubstring("Exit must be passed a gexec.Exiter"))
+ })
+ })
+
+ Context("with no exit code", func() {
+ It("should say the right things when it fails", func() {
+ Ω(session).ShouldNot(Exit())
+
+ failures := InterceptGomegaFailures(func() {
+ Ω(session).Should(Exit())
+ })
+
+ Ω(failures[0]).Should(ContainSubstring("Expected process to exit. It did not."))
+
+ Eventually(session).Should(Exit())
+
+ Ω(session).Should(Exit())
+
+ failures = InterceptGomegaFailures(func() {
+ Ω(session).ShouldNot(Exit())
+ })
+
+ Ω(failures[0]).Should(ContainSubstring("Expected process not to exit. It did."))
+ })
+ })
+
+ Context("with an exit code", func() {
+ It("should say the right things when it fails", func() {
+ Ω(session).ShouldNot(Exit(0))
+ Ω(session).ShouldNot(Exit(1))
+
+ failures := InterceptGomegaFailures(func() {
+ Ω(session).Should(Exit(0))
+ })
+
+ Ω(failures[0]).Should(ContainSubstring("Expected process to exit. It did not."))
+
+ Eventually(session).Should(Exit(0))
+
+ Ω(session).Should(Exit(0))
+
+ failures = InterceptGomegaFailures(func() {
+ Ω(session).Should(Exit(1))
+ })
+
+ Ω(failures[0]).Should(ContainSubstring("to match exit code:"))
+
+ Ω(session).ShouldNot(Exit(1))
+
+ failures = InterceptGomegaFailures(func() {
+ Ω(session).ShouldNot(Exit(0))
+ })
+
+ Ω(failures[0]).Should(ContainSubstring("not to match exit code:"))
+ })
+ })
+
+ Describe("bailing out early", func() {
+ It("should bail out early once the process exits", func() {
+ t := time.Now()
+
+ failures := InterceptGomegaFailures(func() {
+ Eventually(session).Should(Exit(1))
+ })
+ Ω(time.Since(t)).Should(BeNumerically("<=", 500*time.Millisecond))
+ Ω(failures).Should(HaveLen(1))
+ })
+ })
+})