diff options
| author | Furkan Sahin <furkan-dev@proton.me> | 2021-09-05 04:40:39 -0500 |
|---|---|---|
| committer | Furkan Sahin <furkan-dev@proton.me> | 2021-09-05 04:40:39 -0500 |
| commit | 4d99cb9eb30ffe235196a75b566e1b8b9a5e6d0d (patch) | |
| tree | 3ea4f17f05599ecd2d2dec0f91c8c7929387343f /runner.go | |
| parent | 2b7b5ccc30257f9e816aa3fdcda2b0b16a92f757 (diff) | |
Concurrent Eval Loop
Diffstat (limited to 'runner.go')
| -rw-r--r-- | runner.go | 19 |
1 files changed, 13 insertions, 6 deletions
@@ -111,15 +111,22 @@ func (r Runner) Build(tcs []TestCase) { func (r Runner) Evaluate(tcs []TestCase) []TestResult { testSets := r.groupByAdapter(tcs) results := make([]TestResult, 0) - + + c := make(chan []TestResult) for _, pair := range testSets { - adapter := pair.adapter - cases := pair.tcs + go func (pair adapterTestSet) { + adapter := pair.adapter + cases := pair.tcs - r.setupEnv(adapter) - resultSet := adapter.Evaluate(cases) + r.setupEnv(adapter) + resultSet := adapter.Evaluate(cases) + + c <- resultSet + }(pair) + } - results = append(results, resultSet...) + for range testSets { + results = append(results, (<-c)...) } safeCd(r.dirs.Config()) |
