From e120a9f5955551fcf314543c8889e58277aefb20 Mon Sep 17 00:00:00 2001
From: Flu0r1ne <flur01ne@flu0r1ne.net>
Date: Sun, 5 Sep 2021 01:29:24 -0500
Subject: Add concurrency to evaluate

---
 adapters/gtest/adapter.go | 21 ++++++++++++++-------
 1 file changed, 14 insertions(+), 7 deletions(-)

(limited to 'adapters')

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
-- 
cgit v1.2.3