// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package test import ( "cmd/go/internal/cfg" "cmd/go/internal/test/internal/genflags" "internal/testenv" "maps" "os" "testing" ) func TestMain(m *testing.M) { cfg.SetGOROOT(testenv.GOROOT(nil), false) os.Exit(m.Run()) } func TestPassFlagToTest(t *testing.T) { wantNames := genflags.ShortTestFlags() missing := map[string]bool{} for _, name := range wantNames { if !passFlagToTest[name] { missing[name] = true } } if len(missing) > 0 { t.Errorf("passFlagToTest is missing entries: %v", missing) } extra := maps.Clone(passFlagToTest) for _, name := range wantNames { delete(extra, name) } if len(extra) > 0 { t.Errorf("passFlagToTest contains extra entries: %v", extra) } if t.Failed() { t.Logf("To regenerate:\n\tgo generate cmd/go/internal/test") } } func TestPassAnalyzersToVet(t *testing.T) { testenv.MustHaveGoBuild(t) // runs 'go tool vet -flags' wantNames, err := genflags.VetAnalyzers() if err != nil { t.Fatal(err) } missing := map[string]bool{} for _, name := range wantNames { if !passAnalyzersToVet[name] { missing[name] = true } } if len(missing) > 0 { t.Errorf("passAnalyzersToVet is missing entries: %v", missing) } extra := maps.Clone(passAnalyzersToVet) for _, name := range wantNames { delete(extra, name) } if len(extra) > 0 { t.Errorf("passFlagToTest contains extra entries: %v", extra) } if t.Failed() { t.Logf("To regenerate:\n\tgo generate cmd/go/internal/test") } }