From 453e3832b254ea30c2c16982d33b1dc2d781c8a3 Mon Sep 17 00:00:00 2001 From: Sebastian Zagrodzki Date: Mon, 10 Apr 2017 01:28:21 +0200 Subject: [PATCH] Add tests for failed open. Add tests for OutEndpoint.Write --- usb/endpoint_test.go | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/usb/endpoint_test.go b/usb/endpoint_test.go index fc1c0a2..9928b70 100644 --- a/usb/endpoint_test.go +++ b/usb/endpoint_test.go @@ -176,4 +176,45 @@ func TestEndpointIn(t *testing.T) { } else if got != dataTransferred { t.Errorf("ep.Read: got %d, want %d", got, dataTransferred) } + + _, err = d.InEndpoint(1, 0, 0, 1) + if err == nil { + t.Error("InEndpoint(1, 0, 0, 1): got nil, want error") + } +} + +func TestEndpointOut(t *testing.T) { + defer func(i libusbIntf) { libusb = i }(libusb) + + lib := newFakeLibusb() + libusb = lib + + ctx := NewContext() + d, err := ctx.OpenDeviceWithVidPid(0x9999, 0x0001) + if err != nil { + t.Fatalf("OpenDeviceWithVidPid(0x9999, 0x0001): got error %v, want nil", err) + } + ep, err := d.OutEndpoint(1, 0, 0, 1) + if err != nil { + t.Fatalf("OutEndpoint(1, 0, 0, 1): got error %v, want nil", err) + } + dataTransferred := 100 + go func() { + fakeT := lib.waitForSubmitted() + fakeT.length = dataTransferred + fakeT.status = TransferCompleted + close(fakeT.done) + }() + buf := make([]byte, 512) + got, err := ep.Write(buf) + if err != nil { + t.Errorf("ep.Write: got error %v, want nil", err) + } else if got != dataTransferred { + t.Errorf("ep.Write: got %d, want %d", got, dataTransferred) + } + + _, err = d.OutEndpoint(1, 0, 0, 2) + if err == nil { + t.Error("OutEndpoint(1, 0, 0, 2): got nil, want error") + } }