aboutsummaryrefslogtreecommitdiff
path: root/adapters/bash/config.go
diff options
context:
space:
mode:
authorFurkan Sahin <furkan-dev@proton.me>2021-09-05 20:37:19 -0500
committerFurkan Sahin <furkan-dev@proton.me>2021-09-05 20:37:19 -0500
commitc36afa4b348a5450c59645b2be4e513a408fb54d (patch)
tree790801a4ccd23190c6b08a02a6d92c4709ce6010 /adapters/bash/config.go
parent988becbc29376314b560927043669ba32deaf0d5 (diff)
parent4b964d0d7b0d77d4cfcc6ddc1be1d3373cef82b2 (diff)
Merge branch 'upstream' into ppa
Merge v0.1.0
Diffstat (limited to 'adapters/bash/config.go')
-rw-r--r--adapters/bash/config.go64
1 files changed, 64 insertions, 0 deletions
diff --git a/adapters/bash/config.go b/adapters/bash/config.go
new file mode 100644
index 0000000..bcae5c7
--- /dev/null
+++ b/adapters/bash/config.go
@@ -0,0 +1,64 @@
+package bash
+
+import (
+ "log"
+ "golang.furkistan.com/planr"
+ "github.com/BurntSushi/toml"
+)
+
+const (
+ DEFAULT_TIMEOUT=1000
+)
+
+type Defaults struct {
+ Testfile string
+ Timeout uint
+}
+
+func (child *Defaults) Inherit(p interface{}) {
+ parent := p.(*Defaults)
+
+ if(child.Timeout == 0) { child.Timeout = parent.Timeout }
+}
+
+type Config struct {
+ Defaults
+}
+
+func (c *Config) finalize(path string) {
+ if c.Testfile == "" {
+ log.Fatalf("\"Testfile\" is not defined for unit %s\n", path)
+ }
+
+ if c.Timeout == 0 {
+ c.Timeout = DEFAULT_TIMEOUT;
+ }
+}
+
+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) {
+ config := Config {}
+
+ if err := toml.PrimitiveDecode(prim, &config); err != nil {
+ return nil, err
+ }
+
+ return &config, nil
+}
+
+func ParseDefaultConfig(prim toml.Primitive) (planr.InheritableConfig, error) {
+ config := Defaults{}
+
+ if err := toml.PrimitiveDecode(prim, &config); err != nil {
+ return nil, err
+ }
+
+ return &config, nil
+}