| package leafnodes |
| |
| import ( |
| "time" |
| |
| "github.com/onsi/ginkgo/internal/failer" |
| "github.com/onsi/ginkgo/types" |
| ) |
| |
| type SuiteNode interface { |
| Run(parallelNode int, parallelTotal int, syncHost string) bool |
| Passed() bool |
| Summary() *types.SetupSummary |
| } |
| |
| type simpleSuiteNode struct { |
| runner *runner |
| outcome types.SpecState |
| failure types.SpecFailure |
| runTime time.Duration |
| } |
| |
| func (node *simpleSuiteNode) Run(parallelNode int, parallelTotal int, syncHost string) bool { |
| t := time.Now() |
| node.outcome, node.failure = node.runner.run() |
| node.runTime = time.Since(t) |
| |
| return node.outcome == types.SpecStatePassed |
| } |
| |
| func (node *simpleSuiteNode) Passed() bool { |
| return node.outcome == types.SpecStatePassed |
| } |
| |
| func (node *simpleSuiteNode) Summary() *types.SetupSummary { |
| return &types.SetupSummary{ |
| ComponentType: node.runner.nodeType, |
| CodeLocation: node.runner.codeLocation, |
| State: node.outcome, |
| RunTime: node.runTime, |
| Failure: node.failure, |
| } |
| } |
| |
| func NewBeforeSuiteNode(body interface{}, codeLocation types.CodeLocation, timeout time.Duration, failer *failer.Failer) SuiteNode { |
| return &simpleSuiteNode{ |
| runner: newRunner(body, codeLocation, timeout, failer, types.SpecComponentTypeBeforeSuite, 0), |
| } |
| } |
| |
| func NewAfterSuiteNode(body interface{}, codeLocation types.CodeLocation, timeout time.Duration, failer *failer.Failer) SuiteNode { |
| return &simpleSuiteNode{ |
| runner: newRunner(body, codeLocation, timeout, failer, types.SpecComponentTypeAfterSuite, 0), |
| } |
| } |