summaryrefslogtreecommitdiff
path: root/vendor/github.com/onsi/ginkgo/internal/specrunner
diff options
context:
space:
mode:
authorValentin Rothberg <rothberg@redhat.com>2019-06-24 11:29:13 +0200
committerValentin Rothberg <rothberg@redhat.com>2019-06-24 13:20:59 +0200
commitd697456dc90adbaf68224ed7c115b38d5855e582 (patch)
tree5fd88c48b34e7bead0028fa97e39f43f03880642 /vendor/github.com/onsi/ginkgo/internal/specrunner
parenta3211b73c62a9fcc13f09305bf629ef507b26d34 (diff)
downloadpodman-d697456dc90adbaf68224ed7c115b38d5855e582.tar.gz
podman-d697456dc90adbaf68224ed7c115b38d5855e582.tar.bz2
podman-d697456dc90adbaf68224ed7c115b38d5855e582.zip
migrate to go-modules
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
Diffstat (limited to 'vendor/github.com/onsi/ginkgo/internal/specrunner')
-rw-r--r--vendor/github.com/onsi/ginkgo/internal/specrunner/spec_runner_suite_test.go13
-rw-r--r--vendor/github.com/onsi/ginkgo/internal/specrunner/spec_runner_test.go785
2 files changed, 0 insertions, 798 deletions
diff --git a/vendor/github.com/onsi/ginkgo/internal/specrunner/spec_runner_suite_test.go b/vendor/github.com/onsi/ginkgo/internal/specrunner/spec_runner_suite_test.go
deleted file mode 100644
index c8388fb6f..000000000
--- a/vendor/github.com/onsi/ginkgo/internal/specrunner/spec_runner_suite_test.go
+++ /dev/null
@@ -1,13 +0,0 @@
-package specrunner_test
-
-import (
- . "github.com/onsi/ginkgo"
- . "github.com/onsi/gomega"
-
- "testing"
-)
-
-func TestSpecRunner(t *testing.T) {
- RegisterFailHandler(Fail)
- RunSpecs(t, "Spec Runner Suite")
-}
diff --git a/vendor/github.com/onsi/ginkgo/internal/specrunner/spec_runner_test.go b/vendor/github.com/onsi/ginkgo/internal/specrunner/spec_runner_test.go
deleted file mode 100644
index a41437922..000000000
--- a/vendor/github.com/onsi/ginkgo/internal/specrunner/spec_runner_test.go
+++ /dev/null
@@ -1,785 +0,0 @@
-package specrunner_test
-
-import (
- . "github.com/onsi/ginkgo"
- "github.com/onsi/ginkgo/internal/spec_iterator"
- . "github.com/onsi/ginkgo/internal/specrunner"
- "github.com/onsi/ginkgo/types"
- . "github.com/onsi/gomega"
-
- "github.com/onsi/ginkgo/config"
- "github.com/onsi/ginkgo/internal/codelocation"
- "github.com/onsi/ginkgo/internal/containernode"
- Failer "github.com/onsi/ginkgo/internal/failer"
- "github.com/onsi/ginkgo/internal/leafnodes"
- "github.com/onsi/ginkgo/internal/spec"
- Writer "github.com/onsi/ginkgo/internal/writer"
- "github.com/onsi/ginkgo/reporters"
-)
-
-var noneFlag = types.FlagTypeNone
-var pendingFlag = types.FlagTypePending
-
-var _ = Describe("Spec Runner", func() {
- var (
- reporter1 *reporters.FakeReporter
- reporter2 *reporters.FakeReporter
- failer *Failer.Failer
- writer *Writer.FakeGinkgoWriter
-
- thingsThatRan []string
-
- runner *SpecRunner
- )
-
- newBefSuite := func(text string, fail bool) leafnodes.SuiteNode {
- return leafnodes.NewBeforeSuiteNode(func() {
- writer.AddEvent(text)
- thingsThatRan = append(thingsThatRan, text)
- if fail {
- failer.Fail(text, codelocation.New(0))
- }
- }, codelocation.New(0), 0, failer)
- }
-
- newAftSuite := func(text string, fail bool) leafnodes.SuiteNode {
- return leafnodes.NewAfterSuiteNode(func() {
- writer.AddEvent(text)
- thingsThatRan = append(thingsThatRan, text)
- if fail {
- failer.Fail(text, codelocation.New(0))
- }
- }, codelocation.New(0), 0, failer)
- }
-
- newSpec := func(text string, flag types.FlagType, fail bool) *spec.Spec {
- subject := leafnodes.NewItNode(text, func() {
- writer.AddEvent(text)
- thingsThatRan = append(thingsThatRan, text)
- if fail {
- failer.Fail(text, codelocation.New(0))
- }
- }, flag, codelocation.New(0), 0, failer, 0)
-
- return spec.New(subject, []*containernode.ContainerNode{}, false)
- }
-
- newFlakySpec := func(text string, flag types.FlagType, failures int) *spec.Spec {
- runs := 0
- subject := leafnodes.NewItNode(text, func() {
- writer.AddEvent(text)
- thingsThatRan = append(thingsThatRan, text)
- runs++
- if runs < failures {
- failer.Fail(text, codelocation.New(0))
- }
- }, flag, codelocation.New(0), 0, failer, 0)
-
- return spec.New(subject, []*containernode.ContainerNode{}, false)
- }
-
- newSpecWithBody := func(text string, body interface{}) *spec.Spec {
- subject := leafnodes.NewItNode(text, body, noneFlag, codelocation.New(0), 0, failer, 0)
-
- return spec.New(subject, []*containernode.ContainerNode{}, false)
- }
-
- newRunner := func(config config.GinkgoConfigType, beforeSuiteNode leafnodes.SuiteNode, afterSuiteNode leafnodes.SuiteNode, specs ...*spec.Spec) *SpecRunner {
- iterator := spec_iterator.NewSerialIterator(specs)
- return New("description", beforeSuiteNode, iterator, afterSuiteNode, []reporters.Reporter{reporter1, reporter2}, writer, config)
- }
-
- BeforeEach(func() {
- reporter1 = reporters.NewFakeReporter()
- reporter2 = reporters.NewFakeReporter()
- writer = Writer.NewFake()
- failer = Failer.New()
-
- thingsThatRan = []string{}
- })
-
- Describe("Running and Reporting", func() {
- var specA, pendingSpec, anotherPendingSpec, failedSpec, specB, skippedSpec *spec.Spec
- var willRunCalls, didCompleteCalls []string
- var conf config.GinkgoConfigType
-
- JustBeforeEach(func() {
- willRunCalls = []string{}
- didCompleteCalls = []string{}
- specA = newSpec("spec A", noneFlag, false)
- pendingSpec = newSpec("pending spec", pendingFlag, false)
- anotherPendingSpec = newSpec("another pending spec", pendingFlag, false)
- failedSpec = newSpec("failed spec", noneFlag, true)
- specB = newSpec("spec B", noneFlag, false)
- skippedSpec = newSpec("skipped spec", noneFlag, false)
- skippedSpec.Skip()
-
- reporter1.SpecWillRunStub = func(specSummary *types.SpecSummary) {
- willRunCalls = append(willRunCalls, "Reporter1")
- }
- reporter2.SpecWillRunStub = func(specSummary *types.SpecSummary) {
- willRunCalls = append(willRunCalls, "Reporter2")
- }
-
- reporter1.SpecDidCompleteStub = func(specSummary *types.SpecSummary) {
- didCompleteCalls = append(didCompleteCalls, "Reporter1")
- }
- reporter2.SpecDidCompleteStub = func(specSummary *types.SpecSummary) {
- didCompleteCalls = append(didCompleteCalls, "Reporter2")
- }
-
- runner = newRunner(conf, newBefSuite("BefSuite", false), newAftSuite("AftSuite", false), specA, pendingSpec, anotherPendingSpec, failedSpec, specB, skippedSpec)
- runner.Run()
- })
-
- BeforeEach(func() {
- conf = config.GinkgoConfigType{RandomSeed: 17}
- })
-
- It("should skip skipped/pending tests", func() {
- Ω(thingsThatRan).Should(Equal([]string{"BefSuite", "spec A", "failed spec", "spec B", "AftSuite"}))
- })
-
- It("should report to any attached reporters", func() {
- Ω(reporter1.Config).Should(Equal(reporter2.Config))
- Ω(reporter1.BeforeSuiteSummary).Should(Equal(reporter2.BeforeSuiteSummary))
- Ω(reporter1.BeginSummary).Should(Equal(reporter2.BeginSummary))
- Ω(reporter1.SpecWillRunSummaries).Should(Equal(reporter2.SpecWillRunSummaries))
- Ω(reporter1.SpecSummaries).Should(Equal(reporter2.SpecSummaries))
- Ω(reporter1.AfterSuiteSummary).Should(Equal(reporter2.AfterSuiteSummary))
- Ω(reporter1.EndSummary).Should(Equal(reporter2.EndSummary))
- })
-
- It("should report that a spec did end in reverse order", func() {
- Ω(willRunCalls[0:4]).Should(Equal([]string{"Reporter1", "Reporter2", "Reporter1", "Reporter2"}))
- Ω(didCompleteCalls[0:4]).Should(Equal([]string{"Reporter2", "Reporter1", "Reporter2", "Reporter1"}))
- })
-
- It("should report the passed in config", func() {
- Ω(reporter1.Config.RandomSeed).Should(BeNumerically("==", 17))
- })
-
- It("should report the beginning of the suite", func() {
- Ω(reporter1.BeginSummary.SuiteDescription).Should(Equal("description"))
- Ω(reporter1.BeginSummary.SuiteID).Should(MatchRegexp("[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}"))
- Ω(reporter1.BeginSummary.NumberOfSpecsBeforeParallelization).Should(Equal(6))
- Ω(reporter1.BeginSummary.NumberOfTotalSpecs).Should(Equal(6))
- Ω(reporter1.BeginSummary.NumberOfSpecsThatWillBeRun).Should(Equal(3))
- Ω(reporter1.BeginSummary.NumberOfPendingSpecs).Should(Equal(-1))
- Ω(reporter1.BeginSummary.NumberOfSkippedSpecs).Should(Equal(-1))
- })
-
- It("should report the end of the suite", func() {
- Ω(reporter1.EndSummary.SuiteDescription).Should(Equal("description"))
- Ω(reporter1.EndSummary.SuiteSucceeded).Should(BeFalse())
- Ω(reporter1.EndSummary.SuiteID).Should(MatchRegexp("[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}"))
- Ω(reporter1.EndSummary.NumberOfSpecsBeforeParallelization).Should(Equal(6))
- Ω(reporter1.EndSummary.NumberOfTotalSpecs).Should(Equal(6))
- Ω(reporter1.EndSummary.NumberOfSpecsThatWillBeRun).Should(Equal(3))
- Ω(reporter1.EndSummary.NumberOfPendingSpecs).Should(Equal(2))
- Ω(reporter1.EndSummary.NumberOfSkippedSpecs).Should(Equal(1))
- Ω(reporter1.EndSummary.NumberOfPassedSpecs).Should(Equal(2))
- Ω(reporter1.EndSummary.NumberOfFailedSpecs).Should(Equal(1))
- })
-
- Context("when told to perform a dry run", func() {
- BeforeEach(func() {
- conf.DryRun = true
- })
-
- It("should report to the reporters", func() {
- Ω(reporter1.Config).Should(Equal(reporter2.Config))
- Ω(reporter1.BeforeSuiteSummary).Should(Equal(reporter2.BeforeSuiteSummary))
- Ω(reporter1.BeginSummary).Should(Equal(reporter2.BeginSummary))
- Ω(reporter1.SpecWillRunSummaries).Should(Equal(reporter2.SpecWillRunSummaries))
- Ω(reporter1.SpecSummaries).Should(Equal(reporter2.SpecSummaries))
- Ω(reporter1.AfterSuiteSummary).Should(Equal(reporter2.AfterSuiteSummary))
- Ω(reporter1.EndSummary).Should(Equal(reporter2.EndSummary))
- })
-
- It("should not actually run anything", func() {
- Ω(thingsThatRan).Should(BeEmpty())
- })
-
- It("report before and after suites as passed", func() {
- Ω(reporter1.BeforeSuiteSummary.State).Should(Equal(types.SpecStatePassed))
- Ω(reporter1.AfterSuiteSummary.State).Should(Equal(types.SpecStatePassed))
- })
-
- It("should report specs as passed", func() {
- summaries := reporter1.SpecSummaries
- Ω(summaries).Should(HaveLen(6))
- Ω(summaries[0].ComponentTexts).Should(ContainElement("spec A"))
- Ω(summaries[0].State).Should(Equal(types.SpecStatePassed))
- Ω(summaries[1].ComponentTexts).Should(ContainElement("pending spec"))
- Ω(summaries[1].State).Should(Equal(types.SpecStatePending))
- Ω(summaries[2].ComponentTexts).Should(ContainElement("another pending spec"))
- Ω(summaries[2].State).Should(Equal(types.SpecStatePending))
- Ω(summaries[3].ComponentTexts).Should(ContainElement("failed spec"))
- Ω(summaries[3].State).Should(Equal(types.SpecStatePassed))
- Ω(summaries[4].ComponentTexts).Should(ContainElement("spec B"))
- Ω(summaries[4].State).Should(Equal(types.SpecStatePassed))
- Ω(summaries[5].ComponentTexts).Should(ContainElement("skipped spec"))
- Ω(summaries[5].State).Should(Equal(types.SpecStateSkipped))
- })
-
- It("should report the end of the suite", func() {
- Ω(reporter1.EndSummary.SuiteDescription).Should(Equal("description"))
- Ω(reporter1.EndSummary.SuiteSucceeded).Should(BeTrue())
- Ω(reporter1.EndSummary.SuiteID).Should(MatchRegexp("[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}"))
- Ω(reporter1.EndSummary.NumberOfSpecsBeforeParallelization).Should(Equal(6))
- Ω(reporter1.EndSummary.NumberOfTotalSpecs).Should(Equal(6))
- Ω(reporter1.EndSummary.NumberOfSpecsThatWillBeRun).Should(Equal(3))
- Ω(reporter1.EndSummary.NumberOfPendingSpecs).Should(Equal(2))
- Ω(reporter1.EndSummary.NumberOfSkippedSpecs).Should(Equal(1))
- Ω(reporter1.EndSummary.NumberOfPassedSpecs).Should(Equal(0))
- Ω(reporter1.EndSummary.NumberOfFailedSpecs).Should(Equal(0))
- })
-
- It("should not report a slow test", func() {
- summaries := reporter1.SpecSummaries
- for _, s := range summaries {
- Expect(s.RunTime).To(BeZero())
- }
- })
- })
- })
-
- Describe("reporting on specs", func() {
- var proceed chan bool
- var ready chan bool
- var finished chan bool
- BeforeEach(func() {
- ready = make(chan bool)
- proceed = make(chan bool)
- finished = make(chan bool)
- skippedSpec := newSpec("SKIP", noneFlag, false)
- skippedSpec.Skip()
-
- runner = newRunner(
- config.GinkgoConfigType{},
- newBefSuite("BefSuite", false),
- newAftSuite("AftSuite", false),
- skippedSpec,
- newSpec("PENDING", pendingFlag, false),
- newSpecWithBody("RUN", func() {
- close(ready)
- <-proceed
- }),
- )
- go func() {
- runner.Run()
- close(finished)
- }()
- })
-
- It("should report about pending/skipped specs", func() {
- <-ready
- Ω(reporter1.SpecWillRunSummaries).Should(HaveLen(3))
-
- Ω(reporter1.SpecWillRunSummaries[0].ComponentTexts[0]).Should(Equal("SKIP"))
- Ω(reporter1.SpecWillRunSummaries[1].ComponentTexts[0]).Should(Equal("PENDING"))
- Ω(reporter1.SpecWillRunSummaries[2].ComponentTexts[0]).Should(Equal("RUN"))
-
- Ω(reporter1.SpecSummaries[0].ComponentTexts[0]).Should(Equal("SKIP"))
- Ω(reporter1.SpecSummaries[1].ComponentTexts[0]).Should(Equal("PENDING"))
- Ω(reporter1.SpecSummaries).Should(HaveLen(2))
-
- close(proceed)
- <-finished
-
- Ω(reporter1.SpecSummaries).Should(HaveLen(3))
- Ω(reporter1.SpecSummaries[2].ComponentTexts[0]).Should(Equal("RUN"))
- })
- })
-
- Describe("Running and Reporting when there's flakes", func() {
- var specA, pendingSpec, flakySpec, failedSpec, specB, skippedSpec *spec.Spec
- var willRunCalls, didCompleteCalls []string
- var conf config.GinkgoConfigType
- var failedSpecFlag = noneFlag
-
- JustBeforeEach(func() {
- willRunCalls = []string{}
- didCompleteCalls = []string{}
- specA = newSpec("spec A", noneFlag, false)
- pendingSpec = newSpec("pending spec", pendingFlag, false)
- flakySpec = newFlakySpec("flaky spec", noneFlag, 3)
- failedSpec = newSpec("failed spec", failedSpecFlag, true)
- specB = newSpec("spec B", noneFlag, false)
- skippedSpec = newSpec("skipped spec", noneFlag, false)
- skippedSpec.Skip()
-
- reporter1.SpecWillRunStub = func(specSummary *types.SpecSummary) {
- willRunCalls = append(willRunCalls, "Reporter1")
- }
- reporter2.SpecWillRunStub = func(specSummary *types.SpecSummary) {
- willRunCalls = append(willRunCalls, "Reporter2")
- }
-
- reporter1.SpecDidCompleteStub = func(specSummary *types.SpecSummary) {
- didCompleteCalls = append(didCompleteCalls, "Reporter1")
- }
- reporter2.SpecDidCompleteStub = func(specSummary *types.SpecSummary) {
- didCompleteCalls = append(didCompleteCalls, "Reporter2")
- }
-
- runner = newRunner(conf, newBefSuite("BefSuite", false), newAftSuite("AftSuite", false), specA, pendingSpec, flakySpec, failedSpec, specB, skippedSpec)
- runner.Run()
- })
-
- BeforeEach(func() {
- failedSpecFlag = noneFlag
- conf = config.GinkgoConfigType{
- RandomSeed: 17,
- FlakeAttempts: 5,
- }
- })
-
- It("should skip skipped/pending tests", func() {
- Ω(thingsThatRan).Should(Equal([]string{"BefSuite", "spec A", "flaky spec", "flaky spec", "flaky spec", "failed spec", "failed spec", "failed spec", "failed spec", "failed spec", "spec B", "AftSuite"}))
- })
-
- It("should report to any attached reporters", func() {
- Ω(reporter1.Config).Should(Equal(reporter2.Config))
- Ω(reporter1.BeforeSuiteSummary).Should(Equal(reporter2.BeforeSuiteSummary))
- Ω(reporter1.BeginSummary).Should(Equal(reporter2.BeginSummary))
- Ω(reporter1.SpecWillRunSummaries).Should(Equal(reporter2.SpecWillRunSummaries))
- Ω(reporter1.SpecSummaries).Should(Equal(reporter2.SpecSummaries))
- Ω(reporter1.AfterSuiteSummary).Should(Equal(reporter2.AfterSuiteSummary))
- Ω(reporter1.EndSummary).Should(Equal(reporter2.EndSummary))
- })
-
- It("should report that a spec did end in reverse order", func() {
- Ω(willRunCalls[0:4]).Should(Equal([]string{"Reporter1", "Reporter2", "Reporter1", "Reporter2"}))
- Ω(didCompleteCalls[0:4]).Should(Equal([]string{"Reporter2", "Reporter1", "Reporter2", "Reporter1"}))
- })
-
- It("should report the passed in config", func() {
- Ω(reporter1.Config.RandomSeed).Should(BeNumerically("==", 17))
- })
-
- It("should report the beginning of the suite", func() {
- Ω(reporter1.BeginSummary.SuiteDescription).Should(Equal("description"))
- Ω(reporter1.BeginSummary.SuiteID).Should(MatchRegexp("[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}"))
- Ω(reporter1.BeginSummary.NumberOfSpecsBeforeParallelization).Should(Equal(6))
- Ω(reporter1.BeginSummary.NumberOfTotalSpecs).Should(Equal(6))
- Ω(reporter1.BeginSummary.NumberOfSpecsThatWillBeRun).Should(Equal(4))
- Ω(reporter1.BeginSummary.NumberOfPendingSpecs).Should(Equal(-1))
- Ω(reporter1.BeginSummary.NumberOfSkippedSpecs).Should(Equal(-1))
- })
-
- It("should report the end of the suite", func() {
- Ω(reporter1.EndSummary.SuiteDescription).Should(Equal("description"))
- Ω(reporter1.EndSummary.SuiteSucceeded).Should(BeFalse())
- Ω(reporter1.EndSummary.SuiteID).Should(MatchRegexp("[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}"))
- Ω(reporter1.EndSummary.NumberOfSpecsBeforeParallelization).Should(Equal(6))
- Ω(reporter1.EndSummary.NumberOfTotalSpecs).Should(Equal(6))
- Ω(reporter1.EndSummary.NumberOfSpecsThatWillBeRun).Should(Equal(4))
- Ω(reporter1.EndSummary.NumberOfPendingSpecs).Should(Equal(1))
- Ω(reporter1.EndSummary.NumberOfSkippedSpecs).Should(Equal(1))
- Ω(reporter1.EndSummary.NumberOfPassedSpecs).Should(Equal(3))
- Ω(reporter1.EndSummary.NumberOfFailedSpecs).Should(Equal(1))
- Ω(reporter1.EndSummary.NumberOfFlakedSpecs).Should(Equal(1))
- })
-
- Context("when nothing fails", func() {
- BeforeEach(func() {
- failedSpecFlag = pendingFlag
- })
-
- It("the suite should pass even with flakes", func() {
- Ω(reporter1.EndSummary.SuiteSucceeded).Should(BeTrue())
- Ω(reporter1.EndSummary.NumberOfFlakedSpecs).Should(Equal(1))
- })
- })
-
- Context("when told to perform a dry run", func() {
- BeforeEach(func() {
- conf.DryRun = true
- })
-
- It("should report to the reporters", func() {
- Ω(reporter1.Config).Should(Equal(reporter2.Config))
- Ω(reporter1.BeforeSuiteSummary).Should(Equal(reporter2.BeforeSuiteSummary))
- Ω(reporter1.BeginSummary).Should(Equal(reporter2.BeginSummary))
- Ω(reporter1.SpecWillRunSummaries).Should(Equal(reporter2.SpecWillRunSummaries))
- Ω(reporter1.SpecSummaries).Should(Equal(reporter2.SpecSummaries))
- Ω(reporter1.AfterSuiteSummary).Should(Equal(reporter2.AfterSuiteSummary))
- Ω(reporter1.EndSummary).Should(Equal(reporter2.EndSummary))
- })
-
- It("should not actually run anything", func() {
- Ω(thingsThatRan).Should(BeEmpty())
- })
-
- It("report before and after suites as passed", func() {
- Ω(reporter1.BeforeSuiteSummary.State).Should(Equal(types.SpecStatePassed))
- Ω(reporter1.AfterSuiteSummary.State).Should(Equal(types.SpecStatePassed))
- })
-
- It("should report specs as passed", func() {
- summaries := reporter1.SpecSummaries
- Ω(summaries).Should(HaveLen(6))
- Ω(summaries[0].ComponentTexts).Should(ContainElement("spec A"))
- Ω(summaries[0].State).Should(Equal(types.SpecStatePassed))
- Ω(summaries[1].ComponentTexts).Should(ContainElement("pending spec"))
- Ω(summaries[1].State).Should(Equal(types.SpecStatePending))
- Ω(summaries[2].ComponentTexts).Should(ContainElement("flaky spec"))
- Ω(summaries[2].State).Should(Equal(types.SpecStatePassed))
- Ω(summaries[3].ComponentTexts).Should(ContainElement("failed spec"))
- Ω(summaries[3].State).Should(Equal(types.SpecStatePassed))
- Ω(summaries[4].ComponentTexts).Should(ContainElement("spec B"))
- Ω(summaries[4].State).Should(Equal(types.SpecStatePassed))
- Ω(summaries[5].ComponentTexts).Should(ContainElement("skipped spec"))
- Ω(summaries[5].State).Should(Equal(types.SpecStateSkipped))
- })
-
- It("should report the end of the suite", func() {
- Ω(reporter1.EndSummary.SuiteDescription).Should(Equal("description"))
- Ω(reporter1.EndSummary.SuiteSucceeded).Should(BeTrue())
- Ω(reporter1.EndSummary.SuiteID).Should(MatchRegexp("[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}"))
- Ω(reporter1.EndSummary.NumberOfSpecsBeforeParallelization).Should(Equal(6))
- Ω(reporter1.EndSummary.NumberOfTotalSpecs).Should(Equal(6))
- Ω(reporter1.EndSummary.NumberOfSpecsThatWillBeRun).Should(Equal(4))
- Ω(reporter1.EndSummary.NumberOfPendingSpecs).Should(Equal(1))
- Ω(reporter1.EndSummary.NumberOfSkippedSpecs).Should(Equal(1))
- Ω(reporter1.EndSummary.NumberOfPassedSpecs).Should(Equal(0))
- Ω(reporter1.EndSummary.NumberOfFailedSpecs).Should(Equal(0))
- })
- })
- })
-
- Describe("Running BeforeSuite & AfterSuite", func() {
- var success bool
- var befSuite leafnodes.SuiteNode
- var aftSuite leafnodes.SuiteNode
- Context("with a nil BeforeSuite & AfterSuite", func() {
- BeforeEach(func() {
- runner = newRunner(
- config.GinkgoConfigType{},
- nil,
- nil,
- newSpec("A", noneFlag, false),
- newSpec("B", noneFlag, false),
- )
- success = runner.Run()
- })
-
- It("should not report about the BeforeSuite", func() {
- Ω(reporter1.BeforeSuiteSummary).Should(BeNil())
- })
-
- It("should not report about the AfterSuite", func() {
- Ω(reporter1.AfterSuiteSummary).Should(BeNil())
- })
-
- It("should run the specs", func() {
- Ω(thingsThatRan).Should(Equal([]string{"A", "B"}))
- })
- })
-
- Context("when the BeforeSuite & AfterSuite pass", func() {
- BeforeEach(func() {
- befSuite = newBefSuite("BefSuite", false)
- aftSuite = newBefSuite("AftSuite", false)
- runner = newRunner(
- config.GinkgoConfigType{},
- befSuite,
- aftSuite,
- newSpec("A", noneFlag, false),
- newSpec("B", noneFlag, false),
- )
- success = runner.Run()
- })
-
- It("should run the BeforeSuite, the AfterSuite and the specs", func() {
- Ω(thingsThatRan).Should(Equal([]string{"BefSuite", "A", "B", "AftSuite"}))
- })
-
- It("should report about the BeforeSuite", func() {
- Ω(reporter1.BeforeSuiteSummary).Should(Equal(befSuite.Summary()))
- })
-
- It("should report about the AfterSuite", func() {
- Ω(reporter1.AfterSuiteSummary).Should(Equal(aftSuite.Summary()))
- })
-
- It("should report success", func() {
- Ω(success).Should(BeTrue())
- Ω(reporter1.EndSummary.SuiteSucceeded).Should(BeTrue())
- Ω(reporter1.EndSummary.NumberOfFailedSpecs).Should(Equal(0))
- })
-
- It("should not dump the writer", func() {
- Ω(writer.EventStream).ShouldNot(ContainElement("DUMP"))
- })
- })
-
- Context("when the BeforeSuite fails", func() {
- BeforeEach(func() {
- befSuite = newBefSuite("BefSuite", true)
- aftSuite = newBefSuite("AftSuite", false)
-
- skipped := newSpec("Skipped", noneFlag, false)
- skipped.Skip()
-
- runner = newRunner(
- config.GinkgoConfigType{},
- befSuite,
- aftSuite,
- newSpec("A", noneFlag, false),
- newSpec("B", noneFlag, false),
- newSpec("Pending", pendingFlag, false),
- skipped,
- )
- success = runner.Run()
- })
-
- It("should not run the specs, but it should run the AfterSuite", func() {
- Ω(thingsThatRan).Should(Equal([]string{"BefSuite", "AftSuite"}))
- })
-
- It("should report about the BeforeSuite", func() {
- Ω(reporter1.BeforeSuiteSummary).Should(Equal(befSuite.Summary()))
- })
-
- It("should report about the AfterSuite", func() {
- Ω(reporter1.AfterSuiteSummary).Should(Equal(aftSuite.Summary()))
- })
-
- It("should report failure", func() {
- Ω(success).Should(BeFalse())
- Ω(reporter1.EndSummary.SuiteSucceeded).Should(BeFalse())
- Ω(reporter1.EndSummary.NumberOfFailedSpecs).Should(Equal(2))
- Ω(reporter1.EndSummary.NumberOfSpecsThatWillBeRun).Should(Equal(2))
- })
-
- It("should dump the writer", func() {
- Ω(writer.EventStream).Should(ContainElement("DUMP"))
- })
- })
-
- Context("when some other test fails", func() {
- BeforeEach(func() {
- aftSuite = newBefSuite("AftSuite", false)
-
- runner = newRunner(
- config.GinkgoConfigType{},
- nil,
- aftSuite,
- newSpec("A", noneFlag, true),
- )
- success = runner.Run()
- })
-
- It("should still run the AfterSuite", func() {
- Ω(thingsThatRan).Should(Equal([]string{"A", "AftSuite"}))
- })
-
- It("should report about the AfterSuite", func() {
- Ω(reporter1.AfterSuiteSummary).Should(Equal(aftSuite.Summary()))
- })
-
- It("should report failure", func() {
- Ω(success).Should(BeFalse())
- Ω(reporter1.EndSummary.SuiteSucceeded).Should(BeFalse())
- Ω(reporter1.EndSummary.NumberOfFailedSpecs).Should(Equal(1))
- Ω(reporter1.EndSummary.NumberOfSpecsThatWillBeRun).Should(Equal(1))
- })
- })
-
- Context("when the AfterSuite fails", func() {
- BeforeEach(func() {
- befSuite = newBefSuite("BefSuite", false)
- aftSuite = newBefSuite("AftSuite", true)
- runner = newRunner(
- config.GinkgoConfigType{},
- befSuite,
- aftSuite,
- newSpec("A", noneFlag, false),
- newSpec("B", noneFlag, false),
- )
- success = runner.Run()
- })
-
- It("should run everything", func() {
- Ω(thingsThatRan).Should(Equal([]string{"BefSuite", "A", "B", "AftSuite"}))
- })
-
- It("should report about the BeforeSuite", func() {
- Ω(reporter1.BeforeSuiteSummary).Should(Equal(befSuite.Summary()))
- })
-
- It("should report about the AfterSuite", func() {
- Ω(reporter1.AfterSuiteSummary).Should(Equal(aftSuite.Summary()))
- })
-
- It("should report failure", func() {
- Ω(success).Should(BeFalse())
- Ω(reporter1.EndSummary.SuiteSucceeded).Should(BeFalse())
- Ω(reporter1.EndSummary.NumberOfFailedSpecs).Should(Equal(0))
- })
-
- It("should dump the writer", func() {
- Ω(writer.EventStream).Should(ContainElement("DUMP"))
- })
- })
- })
-
- Describe("When instructed to fail fast", func() {
- BeforeEach(func() {
- conf := config.GinkgoConfigType{
- FailFast: true,
- }
- runner = newRunner(conf, nil, newAftSuite("after-suite", false), newSpec("passing", noneFlag, false), newSpec("failing", noneFlag, true), newSpec("dont-see", noneFlag, true), newSpec("dont-see", noneFlag, true))
- })
-
- It("should return false, report failure, and not run anything past the failing test", func() {
- Ω(runner.Run()).Should(BeFalse())
- Ω(reporter1.EndSummary.SuiteSucceeded).Should(BeFalse())
- Ω(thingsThatRan).Should(Equal([]string{"passing", "failing", "after-suite"}))
- })
-
- It("should announce the subsequent specs as skipped", func() {
- runner.Run()
- Ω(reporter1.SpecSummaries).Should(HaveLen(4))
- Ω(reporter1.SpecSummaries[2].State).Should(Equal(types.SpecStateSkipped))
- Ω(reporter1.SpecSummaries[3].State).Should(Equal(types.SpecStateSkipped))
- })
-
- It("should mark all subsequent specs as skipped", func() {
- runner.Run()
- Ω(reporter1.EndSummary.NumberOfSkippedSpecs).Should(Equal(2))
- })
- })
-
- Describe("Marking failure and success", func() {
- Context("when all tests pass", func() {
- BeforeEach(func() {
- runner = newRunner(config.GinkgoConfigType{}, nil, nil, newSpec("passing", noneFlag, false), newSpec("pending", pendingFlag, false))
- })
-
- It("should return true and report success", func() {
- Ω(runner.Run()).Should(BeTrue())
- Ω(reporter1.EndSummary.SuiteSucceeded).Should(BeTrue())
- })
- })
-
- Context("when a test fails", func() {
- BeforeEach(func() {
- runner = newRunner(config.GinkgoConfigType{}, nil, nil, newSpec("failing", noneFlag, true), newSpec("pending", pendingFlag, false))
- })
-
- It("should return false and report failure", func() {
- Ω(runner.Run()).Should(BeFalse())
- Ω(reporter1.EndSummary.SuiteSucceeded).Should(BeFalse())
- })
- })
-
- Context("when there is a pending test, but pendings count as failures", func() {
- BeforeEach(func() {
- runner = newRunner(config.GinkgoConfigType{FailOnPending: true}, nil, nil, newSpec("passing", noneFlag, false), newSpec("pending", pendingFlag, false))
- })
-
- It("should return false and report failure", func() {
- Ω(runner.Run()).Should(BeFalse())
- Ω(reporter1.EndSummary.SuiteSucceeded).Should(BeFalse())
- })
- })
- })
-
- Describe("Managing the writer", func() {
- BeforeEach(func() {
- runner = newRunner(
- config.GinkgoConfigType{},
- nil,
- nil,
- newSpec("A", noneFlag, false),
- newSpec("B", noneFlag, true),
- newSpec("C", noneFlag, false),
- )
- reporter1.SpecWillRunStub = func(specSummary *types.SpecSummary) {
- writer.AddEvent("R1.WillRun")
- }
- reporter2.SpecWillRunStub = func(specSummary *types.SpecSummary) {
- writer.AddEvent("R2.WillRun")
- }
- reporter1.SpecDidCompleteStub = func(specSummary *types.SpecSummary) {
- writer.AddEvent("R1.DidComplete")
- }
- reporter2.SpecDidCompleteStub = func(specSummary *types.SpecSummary) {
- writer.AddEvent("R2.DidComplete")
- }
- runner.Run()
- })
-
- It("should truncate between tests, but only dump if a test fails", func() {
- Ω(writer.EventStream).Should(Equal([]string{
- "TRUNCATE",
- "R1.WillRun",
- "R2.WillRun",
- "A",
- "R2.DidComplete",
- "R1.DidComplete",
- "TRUNCATE",
- "R1.WillRun",
- "R2.WillRun",
- "B",
- "BYTES",
- "R2.DidComplete",
- "DUMP",
- "R1.DidComplete",
- "TRUNCATE",
- "R1.WillRun",
- "R2.WillRun",
- "C",
- "R2.DidComplete",
- "R1.DidComplete",
- }))
- })
- })
-
- Describe("CurrentSpecSummary", func() {
- It("should return the spec summary for the currently running spec", func() {
- var summary *types.SpecSummary
- runner = newRunner(
- config.GinkgoConfigType{},
- nil,
- nil,
- newSpec("A", noneFlag, false),
- newSpecWithBody("B", func() {
- var ok bool
- summary, ok = runner.CurrentSpecSummary()
- Ω(ok).Should(BeTrue())
- }),
- newSpec("C", noneFlag, false),
- )
- runner.Run()
-
- Ω(summary.ComponentTexts).Should(Equal([]string{"B"}))
-
- summary, ok := runner.CurrentSpecSummary()
- Ω(summary).Should(BeNil())
- Ω(ok).Should(BeFalse())
- })
- })
-
- Describe("generating a suite id", func() {
- It("should generate an id randomly", func() {
- runnerA := newRunner(config.GinkgoConfigType{}, nil, nil)
- runnerA.Run()
- IDA := reporter1.BeginSummary.SuiteID
-
- runnerB := newRunner(config.GinkgoConfigType{}, nil, nil)
- runnerB.Run()
- IDB := reporter1.BeginSummary.SuiteID
-
- IDRegexp := "[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}"
- Ω(IDA).Should(MatchRegexp(IDRegexp))
- Ω(IDB).Should(MatchRegexp(IDRegexp))
-
- Ω(IDA).ShouldNot(Equal(IDB))
- })
- })
-})