Use a new behavior of newFakeLibusb.
Add a benchmark for subslicing.
This commit is contained in:
@@ -20,9 +20,8 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func TestOpenEndpoint(t *testing.T) {
|
func TestOpenEndpoint(t *testing.T) {
|
||||||
origLib := libusb
|
_, done := newFakeLibusb()
|
||||||
defer func() { libusb = origLib }()
|
defer done()
|
||||||
libusb = newFakeLibusb()
|
|
||||||
|
|
||||||
c := NewContext()
|
c := NewContext()
|
||||||
defer c.Close()
|
defer c.Close()
|
||||||
|
@@ -20,7 +20,9 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func TestEndpoint(t *testing.T) {
|
func TestEndpoint(t *testing.T) {
|
||||||
defer func(i libusbIntf) { libusb = i }(libusb)
|
lib, done := newFakeLibusb()
|
||||||
|
defer done()
|
||||||
|
|
||||||
for _, epData := range []struct {
|
for _, epData := range []struct {
|
||||||
ei EndpointInfo
|
ei EndpointInfo
|
||||||
intf InterfaceSetting
|
intf InterfaceSetting
|
||||||
@@ -83,9 +85,6 @@ func TestEndpoint(t *testing.T) {
|
|||||||
wantErr: true,
|
wantErr: true,
|
||||||
},
|
},
|
||||||
} {
|
} {
|
||||||
lib := newFakeLibusb()
|
|
||||||
libusb = lib
|
|
||||||
|
|
||||||
ep := newEndpoint(nil, epData.intf, epData.ei)
|
ep := newEndpoint(nil, epData.intf, epData.ei)
|
||||||
go func() {
|
go func() {
|
||||||
fakeT := lib.waitForSubmitted()
|
fakeT := lib.waitForSubmitted()
|
||||||
@@ -150,8 +149,8 @@ func TestEndpointInfo(t *testing.T) {
|
|||||||
func TestEndpointIn(t *testing.T) {
|
func TestEndpointIn(t *testing.T) {
|
||||||
defer func(i libusbIntf) { libusb = i }(libusb)
|
defer func(i libusbIntf) { libusb = i }(libusb)
|
||||||
|
|
||||||
lib := newFakeLibusb()
|
lib, done := newFakeLibusb()
|
||||||
libusb = lib
|
defer done()
|
||||||
|
|
||||||
ctx := NewContext()
|
ctx := NewContext()
|
||||||
defer ctx.Close()
|
defer ctx.Close()
|
||||||
@@ -187,8 +186,8 @@ func TestEndpointIn(t *testing.T) {
|
|||||||
func TestEndpointOut(t *testing.T) {
|
func TestEndpointOut(t *testing.T) {
|
||||||
defer func(i libusbIntf) { libusb = i }(libusb)
|
defer func(i libusbIntf) { libusb = i }(libusb)
|
||||||
|
|
||||||
lib := newFakeLibusb()
|
lib, done := newFakeLibusb()
|
||||||
libusb = lib
|
defer done()
|
||||||
|
|
||||||
ctx := NewContext()
|
ctx := NewContext()
|
||||||
defer ctx.Close()
|
defer ctx.Close()
|
||||||
|
@@ -20,8 +20,8 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func TestNewTransfer(t *testing.T) {
|
func TestNewTransfer(t *testing.T) {
|
||||||
defer func(i libusbIntf) { libusb = i }(libusb)
|
_, done := newFakeLibusb()
|
||||||
libusb = newFakeLibusb()
|
defer done()
|
||||||
|
|
||||||
for _, tc := range []struct {
|
for _, tc := range []struct {
|
||||||
desc string
|
desc string
|
||||||
@@ -62,6 +62,7 @@ func TestNewTransfer(t *testing.T) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("newUSBTransfer(): %v", err)
|
t.Fatalf("newUSBTransfer(): %v", err)
|
||||||
}
|
}
|
||||||
|
defer xfer.free()
|
||||||
if got, want := len(xfer.buf), tc.wantLength; got != want {
|
if got, want := len(xfer.buf), tc.wantLength; got != want {
|
||||||
t.Errorf("xfer.buf: got %d bytes, want %d", got, want)
|
t.Errorf("xfer.buf: got %d bytes, want %d", got, want)
|
||||||
}
|
}
|
||||||
@@ -69,10 +70,8 @@ func TestNewTransfer(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestTransferProtocol(t *testing.T) {
|
func TestTransferProtocol(t *testing.T) {
|
||||||
defer func(i libusbIntf) { libusb = i }(libusb)
|
f, done := newFakeLibusb()
|
||||||
|
defer done()
|
||||||
f := newFakeLibusb()
|
|
||||||
libusb = f
|
|
||||||
|
|
||||||
xfers := make([]*usbTransfer, 2)
|
xfers := make([]*usbTransfer, 2)
|
||||||
var err error
|
var err error
|
||||||
@@ -140,3 +139,20 @@ func TestTransferProtocol(t *testing.T) {
|
|||||||
x.free()
|
x.free()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func BenchmarkSubSlice(b *testing.B) {
|
||||||
|
x := make([]byte, 512)
|
||||||
|
start, len := 50, 50
|
||||||
|
b.Run("start:start+len", func(b *testing.B) {
|
||||||
|
for i := 0; i < b.N; i++ {
|
||||||
|
y := x
|
||||||
|
y = y[start : start+len]
|
||||||
|
}
|
||||||
|
})
|
||||||
|
b.Run("[start:][:len]", func(b *testing.B) {
|
||||||
|
for i := 0; i < b.N; i++ {
|
||||||
|
y := x
|
||||||
|
y = y[start:][:len]
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
@@ -18,9 +18,8 @@ package usb
|
|||||||
import "testing"
|
import "testing"
|
||||||
|
|
||||||
func TestListDevices(t *testing.T) {
|
func TestListDevices(t *testing.T) {
|
||||||
orig := libusb
|
_, done := newFakeLibusb()
|
||||||
defer func() { libusb = orig }()
|
defer done()
|
||||||
libusb = newFakeLibusb()
|
|
||||||
|
|
||||||
c := NewContext()
|
c := NewContext()
|
||||||
defer c.Close()
|
defer c.Close()
|
||||||
@@ -55,9 +54,8 @@ func TestListDevices(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestOpenDeviceWithVidPid(t *testing.T) {
|
func TestOpenDeviceWithVidPid(t *testing.T) {
|
||||||
orig := libusb
|
_, done := newFakeLibusb()
|
||||||
defer func() { libusb = orig }()
|
defer done()
|
||||||
libusb = newFakeLibusb()
|
|
||||||
|
|
||||||
for _, d := range []struct {
|
for _, d := range []struct {
|
||||||
vid, pid ID
|
vid, pid ID
|
||||||
|
Reference in New Issue
Block a user