diff options
Diffstat (limited to 'cmd/planr/sub')
-rw-r--r-- | cmd/planr/sub/build.go | 19 | ||||
-rw-r--r-- | cmd/planr/sub/evaluate.go | 52 |
2 files changed, 71 insertions, 0 deletions
diff --git a/cmd/planr/sub/build.go b/cmd/planr/sub/build.go new file mode 100644 index 0000000..58c3a38 --- /dev/null +++ b/cmd/planr/sub/build.go @@ -0,0 +1,19 @@ +package sub + +import ( + "golang.flu0r1ne.net/planr" + "golang.flu0r1ne.net/planr/adapters/gtest" +) + +func Runner() planr.Runner { + r := planr.Runner {} + r.RegisterAdapter(>est.GtestAdapter{}) + return r +} + +func Build(params []string) { + + rd := planr.RubricDir() + + Runner().Build(rd) +} diff --git a/cmd/planr/sub/evaluate.go b/cmd/planr/sub/evaluate.go new file mode 100644 index 0000000..1174b3f --- /dev/null +++ b/cmd/planr/sub/evaluate.go @@ -0,0 +1,52 @@ +package sub + +import ( + "fmt" + "golang.flu0r1ne.net/planr" +) + +func Evaluate(params []string) { + rd := planr.RubricDir() + + tcs := Runner().Evaluate(rd) + + fmt.Printf("\n\nREPORT:\n=======\n\n") + + earned := 0.0 + total := 0.0 + for _, tc := range tcs { + cfg := tc.Config + + name := tc.Cname + if cfg.Title != nil { + name = *cfg.Title + } + + var points float64 = 0.0 + if cfg.Points != nil { + points = float64(*cfg.Points) + } + + status := "SILENT" + if tc.Result != nil { + if tc.Result.Pass { + status = "PASS" + earned += points + } else { + status = "FAIL" + } + } + + total += points + + fmt.Printf("[%s] %s (%f)\n", status, name, points) + + if cfg.Description != nil { + fmt.Printf("> %s\n", *cfg.Description) + } + + fmt.Println() + } + + fmt.Printf("Score: %f (%f%%)\n", earned, (earned / total) * 100) +} |