suite_nodes.go 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. package leafnodes
  2. import (
  3. "time"
  4. "github.com/onsi/ginkgo/internal/failer"
  5. "github.com/onsi/ginkgo/types"
  6. )
  7. type SuiteNode interface {
  8. Run(parallelNode int, parallelTotal int, syncHost string) bool
  9. Passed() bool
  10. Summary() *types.SetupSummary
  11. }
  12. type simpleSuiteNode struct {
  13. runner *runner
  14. outcome types.SpecState
  15. failure types.SpecFailure
  16. runTime time.Duration
  17. }
  18. func (node *simpleSuiteNode) Run(parallelNode int, parallelTotal int, syncHost string) bool {
  19. t := time.Now()
  20. node.outcome, node.failure = node.runner.run()
  21. node.runTime = time.Since(t)
  22. return node.outcome == types.SpecStatePassed
  23. }
  24. func (node *simpleSuiteNode) Passed() bool {
  25. return node.outcome == types.SpecStatePassed
  26. }
  27. func (node *simpleSuiteNode) Summary() *types.SetupSummary {
  28. return &types.SetupSummary{
  29. ComponentType: node.runner.nodeType,
  30. CodeLocation: node.runner.codeLocation,
  31. State: node.outcome,
  32. RunTime: node.runTime,
  33. Failure: node.failure,
  34. }
  35. }
  36. func NewBeforeSuiteNode(body interface{}, codeLocation types.CodeLocation, timeout time.Duration, failer *failer.Failer) SuiteNode {
  37. return &simpleSuiteNode{
  38. runner: newRunner(body, codeLocation, timeout, failer, types.SpecComponentTypeBeforeSuite, 0),
  39. }
  40. }
  41. func NewAfterSuiteNode(body interface{}, codeLocation types.CodeLocation, timeout time.Duration, failer *failer.Failer) SuiteNode {
  42. return &simpleSuiteNode{
  43. runner: newRunner(body, codeLocation, timeout, failer, types.SpecComponentTypeAfterSuite, 0),
  44. }
  45. }