1 env GO111MODULE=off
2
3 # issue 28491: errors in test source files should not prevent
4 # "go list -test" from returning useful information.
5
6 # go list prints information for package, internal test,
7 # external test, but not testmain package when there is a
8 # syntax error in test sources.
9 ! go list -test -deps syntaxerr
10 stdout pkgdep
11 stdout testdep_a
12 stdout testdep_b
13 stdout ^syntaxerr$
14 stdout '^syntaxerr \[syntaxerr.test\]'
15 stdout '^syntaxerr_test \[syntaxerr.test\]'
16 ! stdout '^syntaxerr\.test'
17 stderr 'expected declaration'
18
19 # go list -e prints information for all test packages.
20 # The syntax error is shown in the package error field.
21 go list -e -test -deps -f '{{.ImportPath}} {{.Error | printf "%q"}}' syntaxerr
22 stdout 'pkgdep <nil>'
23 stdout 'testdep_a <nil>'
24 stdout 'testdep_b <nil>'
25 stdout 'syntaxerr <nil>'
26 stdout 'syntaxerr \[syntaxerr.test\] <nil>'
27 stdout 'syntaxerr_test \[syntaxerr.test\] <nil>'
28 stdout 'syntaxerr\.test "[^"]*expected declaration'
29 ! stderr 'expected declaration'
30
31 [short] stop
32
33 # go list prints partial information with test naming error
34 ! go list -test -deps nameerr
35 stdout pkgdep
36 stdout testdep_a
37 stdout testdep_b
38 stderr 'wrong signature for TestBad'
39
40 go list -e -test -deps -f '{{.ImportPath}} {{.Error | printf "%q"}}' nameerr
41 stdout 'pkgdep <nil>'
42 stdout 'testdep_a <nil>'
43 stdout 'testdep_b <nil>'
44 stdout 'nameerr\.test "[^"]*wrong signature for TestBad'
45 ! stderr 'wrong signature for TestBad'
46
47 # go list prints partial information with error if test has cyclic import
48 ! go list -test -deps cycleerr
49 stdout cycleerr
50 stderr 'import cycle not allowed in test'
51
52 go list -e -test -deps -f '{{.ImportPath}} {{.Error | printf "%q"}}' cycleerr
53 stdout 'cycleerr <nil>'
54 stdout 'testdep_a <nil>'
55 stdout 'testdep_cycle <nil>'
56 stdout 'cycleerr \[cycleerr.test\] "[^"]*import cycle not allowed in test'
57 ! stderr 'import cycle not allowed in test'
58
59 -- syntaxerr/syntaxerr.go --
60 package syntaxerr
61
62 import _ "pkgdep"
63
64 -- syntaxerr/syntaxerr_ie_test.go --
65 package syntaxerr
66
67 !!!syntax error
68
69 -- syntaxerr/syntaxerr_xe_test.go --
70 package syntaxerr_test
71
72 !!!syntax error
73
74 -- syntaxerr/syntaxerr_i_test.go --
75 package syntaxerr
76
77 import _ "testdep_a"
78
79 -- syntaxerr/syntaxerr_x_test.go --
80 package syntaxerr
81
82 import _ "testdep_b"
83
84 -- nameerr/nameerr.go --
85 package nameerr
86
87 import _ "pkgdep"
88
89 -- nameerr/nameerr_i_test.go --
90 package nameerr
91
92 import (
93 _ "testdep_a"
94 "testing"
95 )
96
97 func TestBad(t *testing.B) {}
98
99 -- nameerr/nameerr_x_test.go --
100 package nameerr_test
101
102 import (
103 _ "testdep_b"
104 "testing"
105 )
106
107 func TestBad(t *testing.B) {}
108
109 -- cycleerr/cycleerr_test.go --
110 package cycleerr
111
112 import (
113 _ "testdep_a"
114 _ "testdep_cycle"
115 )
116
117 -- pkgdep/pkgdep.go --
118 package pkgdep
119
120 -- testdep_a/testdep_a.go --
121 package testdep_a
122
123 -- testdep_b/testdep_b.go --
124 package testdep_b
125
126 -- testdep_cycle/testdep_cycle.go --
127 package testdep_cycle
128
129 import _ "cycleerr"
130
View as plain text