diff --git a/usb/fakelibusb_test.go b/usb/fakelibusb_test.go index 4a244c5..ca025bc 100644 --- a/usb/fakelibusb_test.go +++ b/usb/fakelibusb_test.go @@ -259,19 +259,18 @@ func (f *fakeLibusb) setAlt(d *libusbDevHandle, intf, alt uint8) error { return nil } -func (f *fakeLibusb) alloc(_ *libusbDevHandle, _ *EndpointInfo, _ time.Duration, _ int, buf []byte) (*libusbTransfer, error) { +func (f *fakeLibusb) alloc(_ *libusbDevHandle, _ *EndpointInfo, _ time.Duration, _ int, buf []byte, done chan struct{}) (*libusbTransfer, error) { f.mu.Lock() defer f.mu.Unlock() t := new(libusbTransfer) - f.ts[t] = &fakeTransfer{buf: buf} + f.ts[t] = &fakeTransfer{buf: buf, done: done} return t, nil } func (f *fakeLibusb) cancel(t *libusbTransfer) error { return errors.New("not implemented") } -func (f *fakeLibusb) submit(t *libusbTransfer, done chan struct{}) error { +func (f *fakeLibusb) submit(t *libusbTransfer) error { f.mu.Lock() ft := f.ts[t] f.mu.Unlock() - ft.done = done f.submitted <- ft return nil } diff --git a/usb/transfer_test.go b/usb/transfer_test.go index 97a2586..a59897a 100644 --- a/usb/transfer_test.go +++ b/usb/transfer_test.go @@ -93,18 +93,18 @@ func TestTransferProtocol(t *testing.T) { ft.length = 5 ft.status = TransferCompleted copy(ft.buf, []byte{1, 2, 3, 4, 5}) - close(ft.done) + ft.done <- struct{}{} ft = f.waitForSubmitted() ft.length = 99 ft.status = TransferCompleted copy(ft.buf, []byte{12, 12, 12, 12, 12}) - close(ft.done) + ft.done <- struct{}{} ft = f.waitForSubmitted() ft.length = 123 ft.status = TransferCancelled - close(ft.done) + ft.done <- struct{}{} }() xfers[0].submit()