summaryrefslogtreecommitdiff
path: root/adapters/gtest/config.go
diff options
context:
space:
mode:
Diffstat (limited to 'adapters/gtest/config.go')
-rw-r--r--adapters/gtest/config.go58
1 files changed, 38 insertions, 20 deletions
diff --git a/adapters/gtest/config.go b/adapters/gtest/config.go
index 3305977..04d426c 100644
--- a/adapters/gtest/config.go
+++ b/adapters/gtest/config.go
@@ -2,10 +2,10 @@ package gtest
import (
"log"
- "golang.flu0r1ne.net/planr"
"strings"
- "github.com/BurntSushi/toml"
"path"
+ "golang.flu0r1ne.net/planr"
+ "github.com/BurntSushi/toml"
)
const (
@@ -16,7 +16,7 @@ type Defaults struct {
Name *string
Suite *string
Testfile *string
- Srcs *[]string
+ Srcs []string
Timeout *uint
}
@@ -26,7 +26,7 @@ func (child *Defaults) Inherit(p interface{}) {
if(child.Name == nil) { child.Name = parent.Name }
if(child.Suite == nil) { child.Suite = parent.Suite }
if(child.Testfile == nil) { child.Testfile = parent.Testfile }
- if(child.Srcs == nil) { child.Srcs = parent.Srcs }
+ if(len(child.Srcs) == 0) { child.Srcs = parent.Srcs }
if(child.Timeout == nil) { child.Timeout = parent.Timeout }
}
@@ -35,34 +35,52 @@ type Config struct {
Defaults
}
-func (g Config) ensureSatisfied(path string) {
- if g.Name == nil {
+func (c * Config) finalize(path string) {
+ if c.Name == nil {
log.Fatalf("\"name\" is not defined for unit: %s\n", path)
- } else if g.Suite == nil {
+ } else if c.Suite == nil {
log.Fatalf("\"suite\" is not defined for unit: %s\n", path)
- } else if g.Testfile == nil {
+ } else if c.Testfile == nil {
log.Fatalf("\"testfile\" is not defined for unit: %s\n", path)
}
- if g.Timeout == nil {
- g.Timeout = new(uint)
- *g.Timeout = DEFAULT_TIMEOUT;
+ if c.Timeout == nil {
+ c.Timeout = new(uint)
+ *c.Timeout = DEFAULT_TIMEOUT;
}
}
-func (cfg Config) srcList(srcDir string) string {
- var srcList string
+func srcList(srcdir string, srcs []string) string {
+ builder := strings.Builder {}
- if cfg.Srcs != nil {
- srcs := make([]string, len(*cfg.Srcs))
- for i, src := range *cfg.Srcs {
- srcs[i] = "\"" + path.Join(srcDir, src) + "\""
- }
+ for _, src := range srcs {
+ builder.WriteString("\"")
+ builder.WriteString(path.Join(srcdir, src))
+ builder.WriteString("\"\n ")
+ }
+
+ return builder.String()
+}
+
+func cmakeUnits(e []executable, dirs planr.DirConfig) []cmakeUnit {
+
+ units := make([]cmakeUnit, len(e))
+ for i, exe := range e {
+ testpath := path.Join(dirs.Tests(), exe.testpath)
+ srclist := srcList(dirs.Src(), exe.srcs)
- srcList = strings.Join(srcs, "\n ")
+ units[i] = cmakeUnit { exe.exeNm, testpath, srclist }
}
- return srcList
+ return units
+}
+
+func finalizeConfigs(tcs []planr.TestCase) {
+ for i := range tcs {
+ cfg := tcs[i].AdapterConfig().(*Config)
+
+ cfg.finalize(tcs[i].Path)
+ }
}
func ParseConfig(prim toml.Primitive) (planr.InheritableConfig, error) {