golang.org/x/tools@v0.21.0/internal/bisect/bisect_test.go (about)

     1  // Copyright 2023 The Go Authors. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  package bisect
     6  
     7  import (
     8  	"os"
     9  	"path/filepath"
    10  	"strings"
    11  	"testing"
    12  )
    13  
    14  // In order for package bisect to be copied into the standard library
    15  // and used by very low-level packages such as internal/godebug,
    16  // it needs to have no imports at all.
    17  func TestNoImports(t *testing.T) {
    18  	files, err := filepath.Glob("*.go")
    19  	if err != nil {
    20  		t.Fatal(err)
    21  	}
    22  	for _, file := range files {
    23  		if strings.HasSuffix(file, "_test.go") {
    24  			continue
    25  		}
    26  		data, err := os.ReadFile(file)
    27  		if err != nil {
    28  			t.Error(err)
    29  			continue
    30  		}
    31  		if strings.Contains(string(data), "\nimport") {
    32  			t.Errorf("%s contains imports; package bisect must not import other packages", file)
    33  		}
    34  	}
    35  }