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.go | |
| parent | 988becbc29376314b560927043669ba32deaf0d5 (diff) | |
| parent | 4b964d0d7b0d77d4cfcc6ddc1be1d3373cef82b2 (diff) | |
Merge branch 'upstream' into ppa
Merge v0.1.0
Diffstat (limited to 'adapters.go')
| -rw-r--r-- | adapters.go | 28 |
1 files changed, 25 insertions, 3 deletions
diff --git a/adapters.go b/adapters.go index 8419c8b..f6c48cb 100644 --- a/adapters.go +++ b/adapters.go @@ -1,16 +1,38 @@ package planr +import ( + "github.com/BurntSushi/toml" +) + // Test adapters must implement all life cycle hooks // This allows common config, code generation, etc // Test cases matching adapter configurations will be // fed into the adapter interface type Adapter interface { - // Config() AdapterConfig + Init(dirs DirConfig) + // Called once to preform expensive code generation - Build(testCase []*TestCase) + Build(testCase []TestCase) // Called every time source changes - Evaluate(testCase []*TestCase) + Evaluate(testCase []TestCase) []TestResult +} + +// A parser function takes a blob of TOML and decodes it into +// configuration relevant to an adapter +type TomlParser func (toml.Primitive) (InheritableConfig, error) + +// The name under which an adapter registers corresponds +// to a table under the super-table adapters. All corresponding +// TOML will be passed to the ParseConfig method or ParseDefaultConfig +// for parsing. The ParseConfig file parses options in test case files. +// The ParseDefaultConfig is parsed by `defaults.toml` files and can +// be used to establish default configuration that will be inherited +// by all units in a common directory (collection) +type AdapterConfig struct { + Name string + ParseConfig TomlParser + ParseDefaultConfig TomlParser } |
