diff options
Diffstat (limited to 'adapters')
| -rw-r--r-- | adapters/gtest/adapter.go | 21 | 
1 files changed, 14 insertions, 7 deletions
| diff --git a/adapters/gtest/adapter.go b/adapters/gtest/adapter.go index ec11748..2961f29 100644 --- a/adapters/gtest/adapter.go +++ b/adapters/gtest/adapter.go @@ -59,17 +59,24 @@ func (adapter *Adapter) Evaluate(tcs []planr.TestCase) [] planr.TestResult {    exes := createExecutables(tcs) +  c := make(chan []planr.TestResult, len(exes))    for i := range exes { -    succeed, buildFailures := exes[i].compile(buildDir) +    go func(exe *executable) { +      succeed, buildFailures := exe.compile(buildDir) -    if ! succeed { -      results = append(results, buildFailures...) -      continue -    } +      if ! succeed { +        c <- buildFailures +        return +      } -    runtimeResults := exes[i].execute(buildDir) +      runtimeResults := exe.execute(buildDir) -    results = append(results, runtimeResults...) +      c <- runtimeResults +    }(&exes[i]) +  } + +  for range exes { +    results = append(results, (<-c)...)    }    return results | 
