aboutsummaryrefslogtreecommitdiff
path: root/adapters/gtest/results.go
diff options
context:
space:
mode:
authorFurkan Sahin <furkan-dev@proton.me>2021-08-05 15:56:10 -0500
committerFurkan Sahin <furkan-dev@proton.me>2021-08-05 15:56:10 -0500
commit0b7a758042348bdece1e4df0fd37d6b12511ae34 (patch)
tree8beff9368bcf3bf8c54a6c100deb70d010868b93 /adapters/gtest/results.go
parente038648bd6713e9f7f190614011172fd6a75a648 (diff)
Runtime & reorganziation
Diffstat (limited to 'adapters/gtest/results.go')
-rw-r--r--adapters/gtest/results.go75
1 files changed, 75 insertions, 0 deletions
diff --git a/adapters/gtest/results.go b/adapters/gtest/results.go
new file mode 100644
index 0000000..f1033f2
--- /dev/null
+++ b/adapters/gtest/results.go
@@ -0,0 +1,75 @@
+package gtest
+
+import (
+ "bytes"
+ "encoding/json"
+ "io"
+ "log"
+ "time"
+
+ "golang.furkistan.com/planr"
+)
+
+type gFailure struct {
+ Failure string `json:"failure"`
+ Type string `json:"type"`
+}
+
+type gTestsuite struct {
+ Name string `json:"name"`
+ Status string `json:"status"`
+ Result string `json:"result"`
+ Timestamp time.Time `json:"timestamp"`
+ Time string `json:"time"`
+ Classname string `json:"classname"`
+ Failures []gFailure `json:"failures"`
+}
+
+type gTestsuites struct {
+ Name string `json:"name"`
+ Tests int `json:"tests"`
+ Failures int `json:"failures"`
+ Disabled int `json:"disabled"`
+ Errors int `json:"errors"`
+ Timestamp time.Time `json:"timestamp"`
+ Time string `json:"time"`
+ Testsuite []gTestsuite `json:"testsuite"`
+}
+
+type gResults struct {
+ Tests int `json:"tests"`
+ Failures int `json:"failures"`
+ Disabled int `json:"disabled"`
+ Errors int `json:"errors"`
+ Timestamp time.Time `json:"timestamp"`
+ Time string `json:"time"`
+ Name string `json:"name"`
+ Testsuites []gTestsuites `json:"testsuites"`
+}
+
+func decodeResults(r io.Reader) []planr.TestResult {
+ var results gResults
+ buf := bytes.Buffer{}
+
+ if _, err := buf.ReadFrom(r); err != nil {
+ log.Fatal(err)
+ }
+
+ if err := json.Unmarshal(buf.Bytes(), &results); err != nil {
+ log.Fatal(err)
+ }
+
+ decoded := make([]planr.TestResult, 0)
+ for _, suite := range results.Testsuites {
+ for _, test := range suite.Testsuite {
+ n := len(test.Failures)
+
+ decoded = append(decoded, planr.TestResult {
+ Id: suite.Name + "_" + test.Name,
+ Pass: n == 0,
+ })
+ }
+ }
+
+ return decoded
+}