@@ -34,8 +34,9 @@ func TestPoll_Windows(t *testing.T) {
34
34
t .Run ("peekNamedPipe should report the correct state of incoming data in the pipe" , func (t * testing.T ) {
35
35
r , w , err := os .Pipe ()
36
36
require .NoError (t , err )
37
+ defer r .Close ()
38
+ defer w .Close ()
37
39
rh := syscall .Handle (r .Fd ())
38
- wh := syscall .Handle (w .Fd ())
39
40
40
41
// Ensure the pipe has no data.
41
42
n , err := peekNamedPipe (rh )
@@ -45,8 +46,8 @@ func TestPoll_Windows(t *testing.T) {
45
46
// Write to the channel.
46
47
msg , err := syscall .ByteSliceFromString ("test\n " )
47
48
require .NoError (t , err )
48
- _ , err = syscall . Write ( wh , msg )
49
- require .NoError ( t , err )
49
+ _ , err = write ( w , msg )
50
+ require .EqualErrno ( t , 0 , err )
50
51
51
52
// Ensure the pipe has data.
52
53
n , err = peekNamedPipe (rh )
@@ -132,7 +133,10 @@ func TestPoll_Windows(t *testing.T) {
132
133
})
133
134
134
135
t .Run ("poll should return immediately when duration is zero (no data)" , func (t * testing.T ) {
135
- r , _ , err := os .Pipe ()
136
+ r , w , err := os .Pipe ()
137
+ defer r .Close ()
138
+ defer w .Close ()
139
+
136
140
require .NoError (t , err )
137
141
fds := []pollFd {{fd : r .Fd (), events : _POLLIN }}
138
142
n , err := _poll (fds , 0 )
@@ -143,14 +147,15 @@ func TestPoll_Windows(t *testing.T) {
143
147
t .Run ("poll should return immediately when duration is zero (data)" , func (t * testing.T ) {
144
148
r , w , err := os .Pipe ()
145
149
require .NoError (t , err )
150
+ defer r .Close ()
151
+ defer w .Close ()
146
152
fds := []pollFd {{fd : r .Fd (), events : _POLLIN }}
147
- wh := syscall .Handle (w .Fd ())
148
153
149
154
// Write to the channel immediately.
150
155
msg , err := syscall .ByteSliceFromString ("test\n " )
151
156
require .NoError (t , err )
152
- _ , err = syscall . Write ( wh , msg )
153
- require .NoError ( t , err )
157
+ _ , err = write ( w , msg )
158
+ require .EqualErrno ( t , 0 , err )
154
159
155
160
// Verify that the write is reported.
156
161
n , err := _poll (fds , 0 )
@@ -159,8 +164,10 @@ func TestPoll_Windows(t *testing.T) {
159
164
})
160
165
161
166
t .Run ("poll should wait forever when duration is nil (no writes)" , func (t * testing.T ) {
162
- r , _ , err := os .Pipe ()
167
+ r , w , err := os .Pipe ()
163
168
require .NoError (t , err )
169
+ defer r .Close ()
170
+ defer w .Close ()
164
171
165
172
ch := make (chan result , 1 )
166
173
go pollToChannel (r .Fd (), - 1 , ch )
@@ -173,7 +180,8 @@ func TestPoll_Windows(t *testing.T) {
173
180
t .Run ("poll should wait forever when duration is nil" , func (t * testing.T ) {
174
181
r , w , err := os .Pipe ()
175
182
require .NoError (t , err )
176
- wh := syscall .Handle (w .Fd ())
183
+ defer r .Close ()
184
+ defer w .Close ()
177
185
178
186
ch := make (chan result , 1 )
179
187
go pollToChannel (r .Fd (), - 1 , ch )
@@ -185,8 +193,8 @@ func TestPoll_Windows(t *testing.T) {
185
193
// Write a message to the pipe.
186
194
msg , err := syscall .ByteSliceFromString ("test\n " )
187
195
require .NoError (t , err )
188
- _ , err = syscall . Write ( wh , msg )
189
- require .NoError ( t , err )
196
+ _ , err = write ( w , msg )
197
+ require .EqualErrno ( t , 0 , err )
190
198
191
199
// Ensure that the write occurs (panic after an arbitrary timeout).
192
200
select {
@@ -201,7 +209,8 @@ func TestPoll_Windows(t *testing.T) {
201
209
t .Run ("poll should wait for the given duration" , func (t * testing.T ) {
202
210
r , w , err := os .Pipe ()
203
211
require .NoError (t , err )
204
- wh := syscall .Handle (w .Fd ())
212
+ defer r .Close ()
213
+ defer w .Close ()
205
214
206
215
ch := make (chan result , 1 )
207
216
go pollToChannel (r .Fd (), 500 , ch )
@@ -213,8 +222,8 @@ func TestPoll_Windows(t *testing.T) {
213
222
// Write a message to the pipe.
214
223
msg , err := syscall .ByteSliceFromString ("test\n " )
215
224
require .NoError (t , err )
216
- _ , err = syscall . Write ( wh , msg )
217
- require .NoError ( t , err )
225
+ _ , err = write ( w , msg )
226
+ require .EqualErrno ( t , 0 , err )
218
227
219
228
// Ensure that the write occurs before the timer expires.
220
229
select {
@@ -227,8 +236,10 @@ func TestPoll_Windows(t *testing.T) {
227
236
})
228
237
229
238
t .Run ("poll should timeout after the given duration" , func (t * testing.T ) {
230
- r , _ , err := os .Pipe ()
239
+ r , w , err := os .Pipe ()
231
240
require .NoError (t , err )
241
+ defer r .Close ()
242
+ defer w .Close ()
232
243
233
244
ch := make (chan result , 1 )
234
245
go pollToChannel (r .Fd (), 200 , ch )
@@ -242,7 +253,8 @@ func TestPoll_Windows(t *testing.T) {
242
253
t .Run ("poll should return when a write occurs before the given duration" , func (t * testing.T ) {
243
254
r , w , err := os .Pipe ()
244
255
require .NoError (t , err )
245
- wh := syscall .Handle (w .Fd ())
256
+ defer r .Close ()
257
+ defer w .Close ()
246
258
247
259
ch := make (chan result , 1 )
248
260
go pollToChannel (r .Fd (), 800 , ch )
@@ -252,8 +264,8 @@ func TestPoll_Windows(t *testing.T) {
252
264
253
265
msg , err := syscall .ByteSliceFromString ("test\n " )
254
266
require .NoError (t , err )
255
- _ , err = syscall . Write ( wh , msg )
256
- require .NoError ( t , err )
267
+ _ , err = write ( w , msg )
268
+ require .EqualErrno ( t , 0 , err )
257
269
258
270
res := <- ch
259
271
require .Zero (t , res .err )
@@ -262,7 +274,9 @@ func TestPoll_Windows(t *testing.T) {
262
274
263
275
t .Run ("poll should return when a regular file is given" , func (t * testing.T ) {
264
276
f , err := os .CreateTemp (t .TempDir (), "ex" )
277
+ require .NoError (t , err )
265
278
defer f .Close ()
279
+
266
280
require .NoError (t , err )
267
281
fds := []pollFd {{fd : f .Fd (), events : _POLLIN }}
268
282
n , errno := _poll (fds , 0 )
0 commit comments