From 9ff27e9fad185338b09141886b1041b82478b2d6 Mon Sep 17 00:00:00 2001 From: Robert Griesemer Date: Thu, 3 Dec 2020 11:11:05 -0800 Subject: [PATCH] [dev.typeparams] test: run all errorcheck tests that pass compiler with -G flag Replace existing ad-hoc file exclusion mechanism with list of excluded files; i.e., files for which the compiler with -G option doesn't produce matching error messages yet. Remove -G option since we now always run all passing tests. Change-Id: I0655d2cf8bc135b3f50b1a811b8f49090c427580 Reviewed-on: https://go-review.googlesource.com/c/go/+/275212 Trust: Robert Griesemer Run-TryBot: Robert Griesemer Reviewed-by: Matthew Dempsky --- test/run.go | 303 +++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 255 insertions(+), 48 deletions(-) diff --git a/test/run.go b/test/run.go index d354646552..0a69fa62bc 100644 --- a/test/run.go +++ b/test/run.go @@ -39,7 +39,6 @@ var ( runSkips = flag.Bool("run_skips", false, "run skipped tests (ignore skip and build tags)") linkshared = flag.Bool("linkshared", false, "") updateErrors = flag.Bool("update_errors", false, "update error messages in test file based on compiler output") - newTypechecker = flag.Bool("G", false, "generics typechecker. if set, run basic errorcheck tests also with new typechecker") runoutputLimit = flag.Int("l", defaultRunOutputLimit(), "number of parallel runoutput tests to run") shard = flag.Int("shard", 0, "shard index to run. Only applicable if -shards is non-zero.") @@ -742,10 +741,6 @@ func (t *test) run() { } t.err = t.errorCheck(string(out), wantAuto, long, t.gofile) - if t.err != nil || !*newTypechecker { - return - } - // The following is temporary scaffolding to get types2 typechecker // up and running against the existing test cases. The explicitly // listed files don't pass yet, usually because the error messages @@ -755,53 +750,15 @@ func (t *test) run() { // We can get rid of this code once types2 is fully plugged in. // For now we're done when we can't handle the file or some of the flags. - // The first goal is to eliminate the file list; the second goal is to + // The first goal is to eliminate the excluded list; the second goal is to // eliminate the flag list. // Excluded files. - for _, file := range []string{ - "complit1", - "const2", - "convlit.go", - "copy1.go", - "ddd1.go", - "devirt.go", - "directive.go", - "float_lit3.go", - "func1.go", - "funcdup.go", - "funcdup2.go", - "import1.go", - "import5.go", - "import6.go", - "init.go", - "initializerr.go", - "initloop.go", - "makechan.go", - "makemap.go", - "makenew.go", - "map1.go", - "method2.go", - "method6.go", - "named1.go", - "rename1.go", - "runtime.go", - "shift1.go", - "slice3err.go", - "switch3.go", - "switch4.go", - "switch5.go", - "switch6.go", - "switch7.go", - "typecheck.go", - "typecheckloop.go", - "typeswitch3.go", - "undef.go", - "varerr.go", - } { - if strings.Contains(long, file) { - return // cannot handle file + if excluded[t.goFileName()] { + if *verbose { + fmt.Printf("excl\t%s\n", t.goFileName()) } + return // cannot handle file yet } // Excluded flags. @@ -824,6 +781,9 @@ func (t *test) run() { "nil", } { if strings.Contains(flag, pattern) { + if *verbose { + fmt.Printf("excl\t%s\t%s\n", t.goFileName(), flags) + } return // cannot handle flag } } @@ -1952,3 +1912,250 @@ func overlayDir(dstRoot, srcRoot string) error { return err }) } + +// List of files that the compiler cannot errorcheck with the new typechecker (compiler -G option). +// Temporary scaffolding until we pass all the tests at which point this map can be removed. +var excluded = map[string]bool{ + "complit1.go": true, + "const2.go": true, + "convlit.go": true, + "copy1.go": true, + "ddd1.go": true, + "devirt.go": true, + "directive.go": true, + "float_lit3.go": true, + "func1.go": true, + "funcdup.go": true, + "funcdup2.go": true, + "import1.go": true, + "import5.go": true, + "import6.go": true, + "init.go": true, + "initializerr.go": true, + "initloop.go": true, + "makechan.go": true, + "makemap.go": true, + "makenew.go": true, + "map1.go": true, + "method2.go": true, + "method6.go": true, + "named1.go": true, + "rename1.go": true, + "runtime.go": true, + "shift1.go": true, + "slice3err.go": true, + "switch3.go": true, + "switch4.go": true, + "switch5.go": true, + "switch6.go": true, + "switch7.go": true, + "typecheck.go": true, + "typecheckloop.go": true, + "typeswitch3.go": true, + "undef.go": true, + "varerr.go": true, + + "fixedbugs/bug163.go": true, + "fixedbugs/bug176.go": true, + "fixedbugs/bug192.go": true, + "fixedbugs/bug193.go": true, + "fixedbugs/bug195.go": true, + "fixedbugs/bug213.go": true, + "fixedbugs/bug228.go": true, + "fixedbugs/bug229.go": true, + "fixedbugs/bug231.go": true, + "fixedbugs/bug251.go": true, + "fixedbugs/bug255.go": true, + "fixedbugs/bug256.go": true, + "fixedbugs/bug325.go": true, + "fixedbugs/bug326.go": true, + "fixedbugs/bug340.go": true, + "fixedbugs/bug342.go": true, + "fixedbugs/bug350.go": true, + "fixedbugs/bug351.go": true, + "fixedbugs/bug353.go": true, + "fixedbugs/bug357.go": true, + "fixedbugs/bug362.go": true, + "fixedbugs/bug371.go": true, + "fixedbugs/bug374.go": true, + "fixedbugs/bug379.go": true, + "fixedbugs/bug383.go": true, + "fixedbugs/bug385_64.go": true, + "fixedbugs/bug386.go": true, + "fixedbugs/bug388.go": true, + "fixedbugs/bug389.go": true, + "fixedbugs/bug390.go": true, + "fixedbugs/bug397.go": true, + "fixedbugs/bug412.go": true, + "fixedbugs/bug413.go": true, + "fixedbugs/bug416.go": true, + "fixedbugs/bug418.go": true, + "fixedbugs/bug459.go": true, + "fixedbugs/bug462.go": true, + "fixedbugs/bug463.go": true, + "fixedbugs/bug487.go": true, + "fixedbugs/issue10975.go": true, + "fixedbugs/issue11326.go": true, + "fixedbugs/issue11361.go": true, + "fixedbugs/issue11362.go": true, + "fixedbugs/issue11371.go": true, + "fixedbugs/issue11590.go": true, + "fixedbugs/issue11610.go": true, + "fixedbugs/issue11614.go": true, + "fixedbugs/issue11674.go": true, + "fixedbugs/issue11737.go": true, + "fixedbugs/issue13365.go": true, + "fixedbugs/issue13415.go": true, + "fixedbugs/issue13471.go": true, + "fixedbugs/issue13480.go": true, + "fixedbugs/issue13485.go": true, + "fixedbugs/issue13539.go": true, + "fixedbugs/issue13559.go": true, + "fixedbugs/issue14136.go": true, + "fixedbugs/issue14321.go": true, + "fixedbugs/issue14520.go": true, + "fixedbugs/issue14540.go": true, + "fixedbugs/issue14729.go": true, + "fixedbugs/issue15055.go": true, + "fixedbugs/issue15898.go": true, + "fixedbugs/issue16428.go": true, + "fixedbugs/issue16439.go": true, + "fixedbugs/issue16949.go": true, + "fixedbugs/issue17038.go": true, + "fixedbugs/issue17588.go": true, + "fixedbugs/issue17631.go": true, + "fixedbugs/issue17645.go": true, + "fixedbugs/issue18331.go": true, + "fixedbugs/issue18392.go": true, + "fixedbugs/issue18393.go": true, + "fixedbugs/issue19012.go": true, + "fixedbugs/issue19323.go": true, + "fixedbugs/issue19482.go": true, + "fixedbugs/issue19699b.go": true, + "fixedbugs/issue19880.go": true, + "fixedbugs/issue19947.go": true, + "fixedbugs/issue20185.go": true, + "fixedbugs/issue20227.go": true, + "fixedbugs/issue20233.go": true, + "fixedbugs/issue20245.go": true, + "fixedbugs/issue20298.go": true, + "fixedbugs/issue20415.go": true, + "fixedbugs/issue20529.go": true, + "fixedbugs/issue20749.go": true, + "fixedbugs/issue20780.go": true, + "fixedbugs/issue21273.go": true, + "fixedbugs/issue21882.go": true, + "fixedbugs/issue21979.go": true, + "fixedbugs/issue22200.go": true, + "fixedbugs/issue22200b.go": true, + "fixedbugs/issue22389.go": true, + "fixedbugs/issue22794.go": true, + "fixedbugs/issue22822.go": true, + "fixedbugs/issue22904.go": true, + "fixedbugs/issue22921.go": true, + "fixedbugs/issue23093.go": true, + "fixedbugs/issue23094.go": true, + "fixedbugs/issue23609.go": true, + "fixedbugs/issue23732.go": true, + "fixedbugs/issue23823.go": true, + "fixedbugs/issue24339.go": true, + "fixedbugs/issue24470.go": true, + "fixedbugs/issue25507.go": true, + "fixedbugs/issue25727.go": true, + "fixedbugs/issue25958.go": true, + "fixedbugs/issue26416.go": true, + "fixedbugs/issue26616.go": true, + "fixedbugs/issue27595.go": true, + "fixedbugs/issue28079b.go": true, + "fixedbugs/issue28079c.go": true, + "fixedbugs/issue28268.go": true, + "fixedbugs/issue28450.go": true, + "fixedbugs/issue29855.go": true, + "fixedbugs/issue30085.go": true, + "fixedbugs/issue30087.go": true, + "fixedbugs/issue31747.go": true, + "fixedbugs/issue32133.go": true, + "fixedbugs/issue32723.go": true, + "fixedbugs/issue33460.go": true, + "fixedbugs/issue34329.go": true, + "fixedbugs/issue35291.go": true, + "fixedbugs/issue38117.go": true, + "fixedbugs/issue38745.go": true, + "fixedbugs/issue3925.go": true, + "fixedbugs/issue4085a.go": true, + "fixedbugs/issue41247.go": true, + "fixedbugs/issue41440.go": true, + "fixedbugs/issue41500.go": true, + "fixedbugs/issue41575.go": true, + "fixedbugs/issue42058a.go": true, + "fixedbugs/issue42058b.go": true, + "fixedbugs/issue42075.go": true, + "fixedbugs/issue4215.go": true, + "fixedbugs/issue4232.go": true, + "fixedbugs/issue4251.go": true, + "fixedbugs/issue4429.go": true, + "fixedbugs/issue4452.go": true, + "fixedbugs/issue4458.go": true, + "fixedbugs/issue4470.go": true, + "fixedbugs/issue4517d.go": true, + "fixedbugs/issue4847.go": true, + "fixedbugs/issue4909a.go": true, + "fixedbugs/issue5609.go": true, + "fixedbugs/issue6402.go": true, + "fixedbugs/issue6403.go": true, + "fixedbugs/issue6500.go": true, + "fixedbugs/issue6572.go": true, + "fixedbugs/issue6703a.go": true, + "fixedbugs/issue6703b.go": true, + "fixedbugs/issue6703c.go": true, + "fixedbugs/issue6703d.go": true, + "fixedbugs/issue6703e.go": true, + "fixedbugs/issue6703f.go": true, + "fixedbugs/issue6703g.go": true, + "fixedbugs/issue6703h.go": true, + "fixedbugs/issue6703i.go": true, + "fixedbugs/issue6703j.go": true, + "fixedbugs/issue6703k.go": true, + "fixedbugs/issue6703l.go": true, + "fixedbugs/issue6703m.go": true, + "fixedbugs/issue6703n.go": true, + "fixedbugs/issue6703o.go": true, + "fixedbugs/issue6703p.go": true, + "fixedbugs/issue6703q.go": true, + "fixedbugs/issue6703r.go": true, + "fixedbugs/issue6703s.go": true, + "fixedbugs/issue6703t.go": true, + "fixedbugs/issue6703u.go": true, + "fixedbugs/issue6703v.go": true, + "fixedbugs/issue6703w.go": true, + "fixedbugs/issue6703x.go": true, + "fixedbugs/issue6703y.go": true, + "fixedbugs/issue6703z.go": true, + "fixedbugs/issue6750.go": true, + "fixedbugs/issue6772.go": true, + "fixedbugs/issue6889.go": true, + "fixedbugs/issue7129.go": true, + "fixedbugs/issue7150.go": true, + "fixedbugs/issue7153.go": true, + "fixedbugs/issue7223.go": true, + "fixedbugs/issue7310.go": true, + "fixedbugs/issue7525.go": true, + "fixedbugs/issue7525b.go": true, + "fixedbugs/issue7525c.go": true, + "fixedbugs/issue7525d.go": true, + "fixedbugs/issue7525e.go": true, + "fixedbugs/issue7742.go": true, // type-checking doesn't terminate + "fixedbugs/issue7746.go": true, // type-checking doesn't terminate + "fixedbugs/issue8501.go": true, // crashes + "fixedbugs/issue8507.go": true, // crashes + "fixedbugs/issue8183.go": true, + "fixedbugs/issue8385.go": true, + "fixedbugs/issue8438.go": true, + "fixedbugs/issue8440.go": true, + "fixedbugs/issue8745.go": true, + "fixedbugs/issue9083.go": true, + "fixedbugs/issue9370.go": true, + "fixedbugs/issue9432.go": true, + "fixedbugs/issue9521.go": true, + "fixedbugs/issue9634.go": true, +}