29
29
)
30
30
31
31
// TODO only works for Chrome for now
32
-
33
32
// TODO support verbose mode in some way
34
33
35
34
func main () {
@@ -106,50 +105,53 @@ func main() {
106
105
}
107
106
108
107
for _ , pkg := range pkgs {
109
- tf , err := ioutil .TempFile ("" , "" )
110
- if err != nil {
111
- panic (err )
112
- }
113
-
114
- bpkg , err := build .Import (pkg , wd , build .FindOnly )
115
- if err != nil {
116
- panic (err )
117
- }
118
-
119
- args := []string {"test" , "--tags" , * fTags , "-c" , "-o" , tf .Name ()}
108
+ func () {
109
+ tf , err := ioutil .TempFile ("" , "gjbt" )
110
+ if err != nil {
111
+ panic (err )
112
+ }
113
+ defer func () {
114
+ n := tf .Name ()
115
+ os .Remove (n )
116
+ os .Remove (n + ".map" )
117
+ }()
118
+
119
+ bpkg , err := build .Import (pkg , wd , build .FindOnly )
120
+ if err != nil {
121
+ panic (err )
122
+ }
120
123
121
- args = append ( args , pkg )
124
+ args := [] string { "test" , "--tags" , * fTags , "-c" , "-o" , tf . Name ()}
122
125
123
- cmd := exec .Command ("gopherjs" , args ... )
124
- cmd .Stdout = os .Stdout
125
- cmd .Stderr = os .Stderr
126
+ args = append (args , pkg )
126
127
127
- err = cmd .Run ()
128
- if err != nil {
129
- os .Remove (tf .Name ())
130
- fmt .Printf ("%v\n " , err )
131
- failed = true
132
- continue
133
- }
128
+ cmd := exec .Command ("gopherjs" , args ... )
129
+ cmd .Stdout = os .Stdout
130
+ cmd .Stderr = os .Stderr
134
131
135
- test , err := ioutil .ReadFile (tf .Name ())
136
- if err != nil {
137
- panic (err )
138
- }
132
+ err = cmd .Run ()
133
+ if err != nil {
134
+ fmt .Printf ("%v\n " , err )
135
+ failed = true
136
+ return
137
+ }
139
138
140
- os .Remove (tf .Name ())
139
+ test , err := ioutil .ReadFile (tf .Name ())
140
+ if err != nil {
141
+ panic (err )
142
+ }
141
143
142
- p , err := driver .NewPage ()
143
- if err != nil {
144
- panic (err )
145
- }
144
+ p , err := driver .NewPage ()
145
+ if err != nil {
146
+ panic (err )
147
+ }
146
148
147
- var ec res
149
+ var ec res
148
150
149
- status := "ok "
150
- start := time .Now ()
151
+ status := "ok "
152
+ start := time .Now ()
151
153
152
- err = p .RunScript (`try {
154
+ err = p .RunScript (`try {
153
155
` + string (test )+ `
154
156
}
155
157
catch (e) {
@@ -165,40 +167,41 @@ func main() {
165
167
};
166
168
return window.$GopherJSTestResult` , nil , & ec )
167
169
168
- if err != nil {
169
- panic (err )
170
- }
170
+ if err != nil {
171
+ panic (err )
172
+ }
171
173
172
- if ec .ExitCode != 0 {
173
- status = "FAIL"
174
- failed = true
175
- }
174
+ if ec .ExitCode != 0 {
175
+ status = "FAIL"
176
+ failed = true
177
+ }
176
178
177
- if ec .Error != "" {
178
- fmt .Println (ec .Error )
179
- }
180
- fmt .Printf ("%s\t %s\t %.3fs\n " , status , bpkg .ImportPath , time .Since (start ).Seconds ())
179
+ if ec .Error != "" {
180
+ fmt .Println (ec .Error )
181
+ }
182
+ fmt .Printf ("%s\t %s\t %.3fs\n " , status , bpkg .ImportPath , time .Since (start ).Seconds ())
181
183
182
- logs , err := p .ReadNewLogs ("browser" )
183
- if err != nil {
184
- panic (err )
185
- }
184
+ logs , err := p .ReadNewLogs ("browser" )
185
+ if err != nil {
186
+ panic (err )
187
+ }
186
188
187
- for _ , l := range logs {
188
- parts := strings .SplitN (l .Message , " " , 3 )
189
+ for _ , l := range logs {
190
+ parts := strings .SplitN (l .Message , " " , 3 )
189
191
190
- line := parts [2 ]
192
+ line := parts [2 ]
191
193
192
- if strings .HasPrefix (line , "\" " ) && strings .HasSuffix (line , "\" " ) {
193
- l , err := strconv .Unquote (parts [2 ])
194
- if err != nil {
195
- panic (err )
194
+ if strings .HasPrefix (line , "\" " ) && strings .HasSuffix (line , "\" " ) {
195
+ l , err := strconv .Unquote (parts [2 ])
196
+ if err != nil {
197
+ panic (err )
198
+ }
199
+ line = l
196
200
}
197
- line = l
198
- }
199
201
200
- fmt .Println (line )
201
- }
202
+ fmt .Println (line )
203
+ }
204
+ }()
202
205
}
203
206
204
207
if err := driver .Stop (); err != nil {
0 commit comments