From 2b4812a472dc793e954fa71a1b61773a428bdf88 Mon Sep 17 00:00:00 2001 From: Alexander Potapenko Date: Thu, 25 Jul 2024 13:13:15 +0200 Subject: pkg/runtest: report invalid programs as failing Instead of bailing out on the first program with e.g. parsing errors, create a "failing" runRequest for each of such programs. --- pkg/runtest/run.go | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) (limited to 'pkg') diff --git a/pkg/runtest/run.go b/pkg/runtest/run.go index e0fefc31a..62d11ebdb 100644 --- a/pkg/runtest/run.go +++ b/pkg/runtest/run.go @@ -42,9 +42,10 @@ type runRequest struct { results *flatrpc.ProgInfo // the expected results repeat int // only relevant for C tests - name string - broken string - skip string + name string + broken string + failing string + skip string } type Context struct { @@ -84,6 +85,10 @@ func (ctx *Context) Run(waitCtx context.Context) error { broken++ result = fmt.Sprintf("BROKEN (%v)", req.broken) verbose = true + } else if req.failing != "" { + fail++ + result = fmt.Sprintf("FAIL (%v)", req.failing) + verbose = true } else if req.skip != "" { skip++ result = fmt.Sprintf("SKIP (%v)", req.skip) @@ -178,7 +183,12 @@ func (ctx *Context) generatePrograms() error { } for _, file := range files { if err := ctx.generateFile(sandboxes, cover, file); err != nil { - return err + // Treat invalid programs as failing. + ctx.createTest(&runRequest{ + name: file, + failing: err.Error(), + }) + continue } } return nil @@ -398,7 +408,7 @@ func (ctx *Context) produceTest(req *runRequest, name string, properties, func (ctx *Context) createTest(req *runRequest) { req.executor = ctx.executor.Append() ctx.requests = append(ctx.requests, req) - if req.skip != "" || req.broken != "" { + if req.skip != "" || req.broken != "" || req.failing != "" { return } if req.sourceOpts == nil { -- cgit mrf-deployment