diff options
| author | Furkan Sahin <furkan-dev@proton.me> | 2021-09-05 20:37:19 -0500 |
|---|---|---|
| committer | Furkan Sahin <furkan-dev@proton.me> | 2021-09-05 20:37:19 -0500 |
| commit | c36afa4b348a5450c59645b2be4e513a408fb54d (patch) | |
| tree | 790801a4ccd23190c6b08a02a6d92c4709ce6010 /adapters/bash/config.go | |
| parent | 988becbc29376314b560927043669ba32deaf0d5 (diff) | |
| parent | 4b964d0d7b0d77d4cfcc6ddc1be1d3373cef82b2 (diff) | |
Merge branch 'upstream' into ppa
Merge v0.1.0
Diffstat (limited to 'adapters/bash/config.go')
| -rw-r--r-- | adapters/bash/config.go | 64 |
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 +} |
