package dsl import "time" type File struct { Build string BuildLinux string BuildWindows string BuildDarwin string BuildDefaults *BuildConfig Builds []*BuildConfig Toolchains []*ToolchainSpec Timeout time.Duration MemoryLimit int64 Binary string Sources string NormalizeCRLF bool TrimTrailingWS bool Groups []*Group } type Group struct { Name string Weight float64 Timeout time.Duration MemoryLimit int64 Env map[string]string Scoring ScoringMode Wrapper string Tests []*Test Pattern *Pattern } type ScoringMode int const ( ScoringPartial ScoringMode = iota ScoringAllOrNone ) type Pattern struct { InputGlob string OutputGlob string DirsGlob string InputFile string OutputFile string Args []string } func (p *Pattern) IsDirMode() bool { return p.DirsGlob != "" } type Test struct { Name string Timeout time.Duration MemoryLimit int64 Env map[string]string Wrapper string Stdin *string Args []string InFiles map[string]string ExitCode *int Stdout Matcher Stderr Matcher OutFiles map[string]string } type Matcher interface { matcherNode() } type ExactMatcher struct { Value string } func (ExactMatcher) matcherNode() {} type ContainsMatcher struct { Substr string } func (ContainsMatcher) matcherNode() {} type RegexMatcher struct { Pattern string } func (RegexMatcher) matcherNode() {} type NumericEpsMatcher struct { Epsilon float64 Value string } func (NumericEpsMatcher) matcherNode() {} type AnyOrderMatcher struct { Lines []string } func (AnyOrderMatcher) matcherNode() {} type NoMatcher struct{} func (NoMatcher) matcherNode() {}