github.com/powerman/golang-tools@v0.1.11-0.20220410185822-5ad214d8d803/go/pointer/testdata/a_test.go (about)

     1  //go:build ignore
     2  // +build ignore
     3  
     4  package a
     5  
     6  // This test exercises the synthesis of testmain packages for tests.
     7  // The test framework doesn't directly let us perform negative
     8  // assertions (i.e. that TestingQuux isn't called, or that its
     9  // parameter's PTS is empty) so this test is rather roundabout.
    10  
    11  import "testing"
    12  
    13  func log(f func(*testing.T)) {
    14  	// The PTS of f is the set of called tests.  TestingQuux is not present.
    15  	print(f) // @pointsto command-line-arguments.Test | command-line-arguments.TestFoo
    16  }
    17  
    18  func Test(t *testing.T) {
    19  	// Don't assert @pointsto(t) since its label contains a fragile line number.
    20  	log(Test)
    21  }
    22  
    23  func TestFoo(t *testing.T) {
    24  	// Don't assert @pointsto(t) since its label contains a fragile line number.
    25  	log(TestFoo)
    26  }
    27  
    28  func TestingQuux(t *testing.T) {
    29  	// We can't assert @pointsto(t) since this is dead code.
    30  	log(TestingQuux)
    31  }
    32  
    33  func BenchmarkFoo(b *testing.B) {
    34  }
    35  
    36  func ExampleBar() {
    37  	// Output:
    38  }
    39  
    40  // Excludes TestingQuux.
    41  // @calls testing.tRunner -> command-line-arguments.Test
    42  // @calls testing.tRunner -> command-line-arguments.TestFoo
    43  // @calls (*testing.B).runN -> command-line-arguments.BenchmarkFoo
    44  // @calls testing.runExample -> command-line-arguments.ExampleBar