make max output settings
Some checks failed
go-test / go test (push) Successful in 12s
Release / Build & publish (push) Failing after 1m7s

This commit is contained in:
2026-06-10 11:37:59 +03:00
parent b44cccf8d1
commit 8cf2584ce5
4 changed files with 39 additions and 2 deletions

View File

@@ -19,6 +19,10 @@ type File struct {
Binary string
Sources string
// MaxOutput caps captured stdout/stderr per test (bytes). Zero means use the
// runner default. Raise it for suites whose expected output is large.
MaxOutput int64
NormalizeCRLF bool
TrimTrailingWS bool

View File

@@ -307,6 +307,17 @@ func (p *Parser) parseFile() (*File, error) {
}
f.MemoryLimit = n
case "max_output":
p.advance()
if _, err := p.expect(TOKEN_ASSIGN); err != nil {
return nil, err
}
n, err := p.parseSize()
if err != nil {
return nil, err
}
f.MaxOutput = n
case "group":
g, err := p.parseGroup(f.Timeout, f.MemoryLimit)
if err != nil {

View File

@@ -37,6 +37,24 @@ group("g") {
}
}
func TestParseMaxOutput(t *testing.T) {
src := `
build "make"
max_output = 64M
group("g") {
weight = 1.0
test("t") { stdout = "ok\n" }
}
`
f, _, err := Parse(src)
if err != nil {
t.Fatalf("parse: %v", err)
}
if f.MaxOutput != 64*1024*1024 {
t.Errorf("MaxOutput = %d, want %d", f.MaxOutput, 64*1024*1024)
}
}
func TestParsePatternStageAllMode(t *testing.T) {
src := `
build "make"