mirror of
https://github.com/opencloud-eu/opencloud.git
synced 2026-07-13 09:02:09 -04:00
build(deps): bump github.com/onsi/ginkgo/v2 from 2.31.0 to 2.32.0
Bumps [github.com/onsi/ginkgo/v2](https://github.com/onsi/ginkgo) from 2.31.0 to 2.32.0. - [Release notes](https://github.com/onsi/ginkgo/releases) - [Changelog](https://github.com/onsi/ginkgo/blob/master/CHANGELOG.md) - [Commits](https://github.com/onsi/ginkgo/compare/v2.31.0...v2.32.0) --- updated-dependencies: - dependency-name: github.com/onsi/ginkgo/v2 dependency-version: 2.32.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
This commit is contained in:
5
vendor/github.com/onsi/ginkgo/v2/CHANGELOG.md
generated
vendored
5
vendor/github.com/onsi/ginkgo/v2/CHANGELOG.md
generated
vendored
@@ -1,3 +1,8 @@
|
||||
## 2.32.0
|
||||
|
||||
`-fd` generate RSpec-style documentation output. Thank @woodie !
|
||||
--sleep-on-failure pauses a failed spec before teardown. Thanks @qinqon !
|
||||
|
||||
## 2.31.0
|
||||
|
||||
Add a bunch of Claude Skills via the marketplace:
|
||||
|
||||
4
vendor/github.com/onsi/ginkgo/v2/ginkgo/run/run_command.go
generated
vendored
4
vendor/github.com/onsi/ginkgo/v2/ginkgo/run/run_command.go
generated
vendored
@@ -39,6 +39,10 @@ func BuildRunCommand() command.Command {
|
||||
cliConfig, goFlagsConfig, errors = types.VetAndInitializeCLIAndGoConfig(cliConfig, goFlagsConfig)
|
||||
command.AbortIfErrors("Ginkgo detected configuration issues:", errors)
|
||||
|
||||
if types.ReconcileFdOutputConfiguration(reporterConfig, &suiteConfig, &cliConfig) {
|
||||
fmt.Println("--fd is incompatible with parallel runs (-p/-procs) and -randomize-all; ignoring those flags and running specs in series, in declaration order.")
|
||||
}
|
||||
|
||||
runner := &SpecRunner{
|
||||
cliConfig: cliConfig,
|
||||
goFlagsConfig: goFlagsConfig,
|
||||
|
||||
4
vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/watch_command.go
generated
vendored
4
vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/watch_command.go
generated
vendored
@@ -37,6 +37,10 @@ func BuildWatchCommand() command.Command {
|
||||
cliConfig, goFlagsConfig, errors = types.VetAndInitializeCLIAndGoConfig(cliConfig, goFlagsConfig)
|
||||
command.AbortIfErrors("Ginkgo detected configuration issues:", errors)
|
||||
|
||||
if types.ReconcileFdOutputConfiguration(reporterConfig, &suiteConfig, &cliConfig) {
|
||||
fmt.Println("--fd is incompatible with parallel runs (-p/-procs) and -randomize-all; ignoring those flags and running specs in series, in declaration order.")
|
||||
}
|
||||
|
||||
watcher := &SpecWatcher{
|
||||
cliConfig: cliConfig,
|
||||
goFlagsConfig: goFlagsConfig,
|
||||
|
||||
37
vendor/github.com/onsi/ginkgo/v2/internal/suite.go
generated
vendored
37
vendor/github.com/onsi/ginkgo/v2/internal/suite.go
generated
vendored
@@ -996,6 +996,7 @@ func (suite *Suite) runNode(node Node, specDeadline time.Time, text string) (typ
|
||||
} else {
|
||||
failure.Message, failure.Location, failure.ForwardedPanic, failure.TimelineLocation = failureFromRun.Message, failureFromRun.Location, failureFromRun.ForwardedPanic, failureFromRun.TimelineLocation
|
||||
suite.reporter.EmitFailure(outcomeFromRun, failure)
|
||||
suite.pauseOnFailureIfRequested(node)
|
||||
return outcomeFromRun, failure
|
||||
}
|
||||
case <-gracePeriodChannel:
|
||||
@@ -1079,6 +1080,42 @@ func (suite *Suite) runNode(node Node, specDeadline time.Time, text string) (typ
|
||||
}
|
||||
}
|
||||
|
||||
// pauseOnFailureIfRequested pauses the suite at the moment a failure is identified,
|
||||
// when the user has set --sleep-on-failure. This hooks directly into runNode's failure
|
||||
// path so the pause happens immediately at the point of failure - before any teardown
|
||||
// or cleanup runs - leaving the system live for inspection.
|
||||
//
|
||||
// We only pause for failures in setup and subject nodes (It, Before*, BeforeSuite...),
|
||||
// i.e. nodes that run before teardown. Pausing on a failure in a teardown/cleanup or
|
||||
// reporting node would be pointless (the system is already being torn down) and could
|
||||
// interfere with interrupt handling, so those are skipped.
|
||||
//
|
||||
// The pause is interruptible: pressing ^C (or any interrupt) ends the pause early and
|
||||
// the suite proceeds to run cleanup as usual. It is a no-op if the feature is disabled.
|
||||
func (suite *Suite) pauseOnFailureIfRequested(node Node) {
|
||||
if suite.config.SleepOnFailure <= 0 {
|
||||
return
|
||||
}
|
||||
// only pause before teardown - skip teardown/cleanup/reporting nodes
|
||||
if node.NodeType.Is(types.NodeTypesAllowedDuringCleanupInterrupt | types.NodeTypesAllowedDuringReportInterrupt) {
|
||||
return
|
||||
}
|
||||
|
||||
duration := suite.config.SleepOnFailure
|
||||
report := suite.generateProgressReport(false)
|
||||
report.Message = fmt.Sprintf("{{bold}}{{orange}}Paused on failure for up to %s.{{/}}\nThe spec failed and Ginkgo has paused before running any teardown so you can inspect the live system.\nPress {{bold}}^C{{/}} to end the pause and proceed to cleanup.", duration)
|
||||
suite.emitProgressReport(report)
|
||||
|
||||
timer := time.NewTimer(duration)
|
||||
defer timer.Stop()
|
||||
// wait for the pause to elapse, or for the user to interrupt - in which case we end
|
||||
// the pause early and let runNode return so cleanup can proceed
|
||||
select {
|
||||
case <-timer.C:
|
||||
case <-suite.interruptHandler.Status().Channel:
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: search for usages and consider if reporter.EmitFailure() is necessary
|
||||
func (suite *Suite) failureForLeafNodeWithMessage(node Node, message string) types.Failure {
|
||||
return types.Failure{
|
||||
|
||||
54
vendor/github.com/onsi/ginkgo/v2/reporters/default_reporter.go
generated
vendored
54
vendor/github.com/onsi/ginkgo/v2/reporters/default_reporter.go
generated
vendored
@@ -31,6 +31,7 @@ type DefaultReporter struct {
|
||||
specDenoter string
|
||||
retryDenoter string
|
||||
formatter formatter.Formatter
|
||||
fdHierarchy []string
|
||||
|
||||
runningInParallel bool
|
||||
lock *sync.Mutex
|
||||
@@ -82,6 +83,8 @@ func (r *DefaultReporter) SuiteWillBegin(report types.Report) {
|
||||
if report.SuiteConfig.ParallelTotal > 1 {
|
||||
r.emit(r.f("- %d procs ", report.SuiteConfig.ParallelTotal))
|
||||
}
|
||||
} else if r.conf.FdOutput {
|
||||
return
|
||||
} else {
|
||||
banner := r.f("Running Suite: %s - %s", report.SuiteDescription, report.SuitePath)
|
||||
r.emitBlock(banner)
|
||||
@@ -124,7 +127,7 @@ func (r *DefaultReporter) SuiteWillBegin(report types.Report) {
|
||||
|
||||
func (r *DefaultReporter) SuiteDidEnd(report types.Report) {
|
||||
failures := report.SpecReports.WithState(types.SpecStateFailureStates)
|
||||
if len(failures) > 0 {
|
||||
if !r.conf.FdOutput && len(failures) > 0 {
|
||||
r.emitBlock("\n")
|
||||
if len(failures) > 1 {
|
||||
r.emitBlock(r.f("{{red}}{{bold}}Summarizing %d Failures:{{/}}", len(failures)))
|
||||
@@ -227,6 +230,10 @@ func (r *DefaultReporter) DidRun(report types.SpecReport) {
|
||||
return
|
||||
}
|
||||
|
||||
if r.conf.FdOutput {
|
||||
r.didRunFd(report)
|
||||
return
|
||||
}
|
||||
header := r.specDenoter
|
||||
if report.LeafNodeType.Is(types.NodeTypesForSuiteLevelNodes) {
|
||||
header = fmt.Sprintf("[%s]", report.LeafNodeType)
|
||||
@@ -358,6 +365,51 @@ func (r *DefaultReporter) DidRun(report types.SpecReport) {
|
||||
r.emitDelimiter(0)
|
||||
}
|
||||
|
||||
func (r *DefaultReporter) didRunFd(report types.SpecReport) {
|
||||
r.lock.Lock()
|
||||
defer r.lock.Unlock()
|
||||
|
||||
if !report.LeafNodeType.Is(types.NodeTypeIt) {
|
||||
return
|
||||
}
|
||||
|
||||
hierarchy := report.ContainerHierarchyTexts
|
||||
|
||||
// blank line when top-level container changes
|
||||
if len(r.fdHierarchy) > 0 &&
|
||||
(len(hierarchy) == 0 || hierarchy[0] != r.fdHierarchy[0]) {
|
||||
fmt.Fprintln(r.writer)
|
||||
}
|
||||
|
||||
// emit newly-diverged container lines
|
||||
divergeAt := 0
|
||||
for divergeAt < len(r.fdHierarchy) && divergeAt < len(hierarchy) &&
|
||||
r.fdHierarchy[divergeAt] == hierarchy[divergeAt] {
|
||||
divergeAt++
|
||||
}
|
||||
for i := divergeAt; i < len(hierarchy); i++ {
|
||||
fmt.Fprintf(r.writer, "%s%s\n", strings.Repeat(" ", i), hierarchy[i])
|
||||
}
|
||||
|
||||
// leaf label
|
||||
depth := len(hierarchy)
|
||||
indent := strings.Repeat(" ", depth)
|
||||
label := report.LeafNodeText
|
||||
|
||||
switch report.State {
|
||||
case types.SpecStateFailed, types.SpecStatePanicked:
|
||||
label = fmt.Sprintf("%s (FAILED)", label)
|
||||
case types.SpecStatePending:
|
||||
label = fmt.Sprintf("%s (PENDING)", label)
|
||||
case types.SpecStateSkipped:
|
||||
label = fmt.Sprintf("%s (SKIPPED)", label)
|
||||
}
|
||||
|
||||
color := r.highlightColorForState(report.State)
|
||||
fmt.Fprintf(r.writer, "%s%s\n", indent, r.f(color+"%s{{/}}", label))
|
||||
r.fdHierarchy = hierarchy
|
||||
}
|
||||
|
||||
func (r *DefaultReporter) highlightColorForState(state types.SpecState) string {
|
||||
switch state {
|
||||
case types.SpecStatePassed:
|
||||
|
||||
39
vendor/github.com/onsi/ginkgo/v2/types/config.go
generated
vendored
39
vendor/github.com/onsi/ginkgo/v2/types/config.go
generated
vendored
@@ -38,6 +38,7 @@ type SuiteConfig struct {
|
||||
OutputInterceptorMode string
|
||||
SourceRoots []string
|
||||
GracePeriod time.Duration
|
||||
SleepOnFailure time.Duration
|
||||
|
||||
ParallelProcess int
|
||||
ParallelTotal int
|
||||
@@ -94,6 +95,7 @@ type ReporterConfig struct {
|
||||
GithubOutput bool
|
||||
SilenceSkips bool
|
||||
ForceNewlines bool
|
||||
FdOutput bool
|
||||
|
||||
JSONReport string
|
||||
GoJSONReport string
|
||||
@@ -293,6 +295,8 @@ var SuiteConfigFlags = GinkgoFlags{
|
||||
Usage: "Make up to this many attempts to run each spec. If any of the attempts succeed, the suite will not be failed."},
|
||||
{KeyPath: "S.FailOnEmpty", Name: "fail-on-empty", SectionKey: "failure",
|
||||
Usage: "If set, ginkgo will mark the test suite as failed if no specs are run."},
|
||||
{KeyPath: "S.SleepOnFailure", Name: "sleep-on-failure", SectionKey: "failure", UsageDefaultValue: "0 - disabled",
|
||||
Usage: "If set, ginkgo will pause for this duration after a spec fails - before its teardown (AfterEach/JustAfterEach/DeferCleanup) runs - so you can inspect the live system. Press ^C to end the pause early and proceed to cleanup. Serial only: cannot be combined with -p/--procs."},
|
||||
|
||||
{KeyPath: "S.DryRun", Name: "dry-run", SectionKey: "debug", DeprecatedName: "dryRun", DeprecatedDocLink: "changed-command-line-flags",
|
||||
Usage: "If set, ginkgo will walk the test hierarchy without actually running anything. Best paired with -v."},
|
||||
@@ -358,7 +362,8 @@ var ReporterConfigFlags = GinkgoFlags{
|
||||
Usage: "If set, default reporter will not print out skipped tests."},
|
||||
{KeyPath: "R.ForceNewlines", Name: "force-newlines", SectionKey: "output",
|
||||
Usage: "If set, default reporter will ensure a newline appears after each test."},
|
||||
|
||||
{KeyPath: "R.FdOutput", Name: "fd", SectionKey: "output",
|
||||
Usage: "If set, emits RSpec-style 'format documentation' output instead of Ginkgo's default output. --fd is exclusive: it overrides -p/-procs and -randomize-all, forcing specs to run serially in declaration order, since fd's hierarchical output can't be rendered sensibly when specs are parallelized or randomized."},
|
||||
{KeyPath: "R.JSONReport", Name: "json-report", UsageArgument: "filename.json", SectionKey: "output",
|
||||
Usage: "If set, Ginkgo will generate a JSON-formatted test report at the specified location."},
|
||||
{KeyPath: "R.GoJSONReport", Name: "gojson-report", UsageArgument: "filename.json", SectionKey: "output",
|
||||
@@ -429,6 +434,14 @@ func VetConfig(flagSet GinkgoFlagSet, suiteConfig SuiteConfig, reporterConfig Re
|
||||
errors = append(errors, GinkgoErrors.GracePeriodCannotBeZero())
|
||||
}
|
||||
|
||||
if suiteConfig.SleepOnFailure < 0 {
|
||||
errors = append(errors, GinkgoErrors.InvalidSleepOnFailureConfiguration())
|
||||
}
|
||||
|
||||
if suiteConfig.SleepOnFailure > 0 && suiteConfig.ParallelTotal > 1 {
|
||||
errors = append(errors, GinkgoErrors.SleepOnFailureInParallelConfiguration())
|
||||
}
|
||||
|
||||
if len(suiteConfig.FocusFiles) > 0 {
|
||||
_, err := ParseFileFilters(suiteConfig.FocusFiles)
|
||||
if err != nil {
|
||||
@@ -476,6 +489,30 @@ func VetConfig(flagSet GinkgoFlagSet, suiteConfig SuiteConfig, reporterConfig Re
|
||||
return errors
|
||||
}
|
||||
|
||||
// ReconcileFdOutputConfiguration forces serial, in-order execution when --fd is combined with
|
||||
// -p, -procs (>1), or -randomize-all. fd's RSpec-style hierarchical output assumes specs run
|
||||
// one at a time, in declaration order -- parallelism and randomization both break that assumption
|
||||
// and produce fragmented, hard-to-read output. Rather than refusing to run, Ginkgo ignores those
|
||||
// flags and runs in series instead. suiteConfig and cliConfig are mutated in place; the return
|
||||
// value is true if anything was overridden, so callers can let the user know what was ignored.
|
||||
func ReconcileFdOutputConfiguration(reporterConfig ReporterConfig, suiteConfig *SuiteConfig, cliConfig *CLIConfig) bool {
|
||||
if !reporterConfig.FdOutput {
|
||||
return false
|
||||
}
|
||||
|
||||
changed := false
|
||||
if cliConfig.ComputedProcs() > 1 {
|
||||
cliConfig.Procs = 1
|
||||
cliConfig.Parallel = false
|
||||
changed = true
|
||||
}
|
||||
if suiteConfig.RandomizeAllSpecs {
|
||||
suiteConfig.RandomizeAllSpecs = false
|
||||
changed = true
|
||||
}
|
||||
return changed
|
||||
}
|
||||
|
||||
// GinkgoCLISharedFlags provides flags shared by the Ginkgo CLI's build, watch, and run commands
|
||||
var GinkgoCLISharedFlags = GinkgoFlags{
|
||||
{KeyPath: "C.Recurse", Name: "r", SectionKey: "multiple-suites",
|
||||
|
||||
17
vendor/github.com/onsi/ginkgo/v2/types/errors.go
generated
vendored
17
vendor/github.com/onsi/ginkgo/v2/types/errors.go
generated
vendored
@@ -455,7 +455,7 @@ func (g ginkgoErrors) InvalidEmptyComponentForSemVerConstraint(cl CodeLocation)
|
||||
Heading: "Invalid Empty Component for ComponentSemVerConstraint",
|
||||
Message: "ComponentSemVerConstraint requires a non-empty component name",
|
||||
CodeLocation: cl,
|
||||
DocLink: "spec-semantic-version-filtering",
|
||||
DocLink: "spec-semantic-version-filtering",
|
||||
}
|
||||
}
|
||||
|
||||
@@ -621,6 +621,21 @@ func (g ginkgoErrors) GracePeriodCannotBeZero() error {
|
||||
}
|
||||
}
|
||||
|
||||
func (g ginkgoErrors) InvalidSleepOnFailureConfiguration() error {
|
||||
return GinkgoError{
|
||||
Heading: "Ginkgo requires a non-negative --sleep-on-failure.",
|
||||
Message: "Please set --sleep-on-failure to a positive duration (e.g. 5m), or 0 to disable it.",
|
||||
}
|
||||
}
|
||||
|
||||
func (g ginkgoErrors) SleepOnFailureInParallelConfiguration() error {
|
||||
return GinkgoError{
|
||||
Heading: "Ginkgo only supports --sleep-on-failure in serial mode.",
|
||||
Message: "--sleep-on-failure pauses a failed spec on a live system for inspection, which only makes sense when the suite runs serially. Please run again without -p or --procs, or unset --sleep-on-failure.",
|
||||
DocLink: "spec-timeouts-and-interruptible-nodes",
|
||||
}
|
||||
}
|
||||
|
||||
func (g ginkgoErrors) ConflictingVerbosityConfiguration() error {
|
||||
return GinkgoError{
|
||||
Heading: "Conflicting reporter verbosity settings.",
|
||||
|
||||
2
vendor/github.com/onsi/ginkgo/v2/types/version.go
generated
vendored
2
vendor/github.com/onsi/ginkgo/v2/types/version.go
generated
vendored
@@ -1,3 +1,3 @@
|
||||
package types
|
||||
|
||||
const VERSION = "2.31.0"
|
||||
const VERSION = "2.32.0"
|
||||
|
||||
Reference in New Issue
Block a user