mirror of
https://github.com/OffchainLabs/prysm.git
synced 2026-01-10 16:08:26 -05:00
* Ran gopls modernize to fix everything go run golang.org/x/tools/gopls/internal/analysis/modernize/cmd/modernize@latest -fix -test ./... * Override rules_go provided dependency for golang.org/x/tools to v0.38.0. To update this, checked out rules_go, then ran `bazel run //go/tools/releaser -- upgrade-dep -mirror=false org_golang_x_tools` and copied the patches. * Fix buildtag violations and ignore buildtag violations in external * Introduce modernize analyzer package. * Add modernize "any" analyzer. * Fix violations of any analyzer * Add modernize "appendclipped" analyzer. * Fix violations of appendclipped * Add modernize "bloop" analyzer. * Add modernize "fmtappendf" analyzer. * Add modernize "forvar" analyzer. * Add modernize "mapsloop" analyzer. * Add modernize "minmax" analyzer. * Fix violations of minmax analyzer * Add modernize "omitzero" analyzer. * Add modernize "rangeint" analyzer. * Fix violations of rangeint. * Add modernize "reflecttypefor" analyzer. * Fix violations of reflecttypefor analyzer. * Add modernize "slicescontains" analyzer. * Add modernize "slicessort" analyzer. * Add modernize "slicesdelete" analyzer. This is disabled by default for now. See https://go.dev/issue/73686. * Add modernize "stringscutprefix" analyzer. * Add modernize "stringsbuilder" analyzer. * Fix violations of stringsbuilder analyzer. * Add modernize "stringsseq" analyzer. * Add modernize "testingcontext" analyzer. * Add modernize "waitgroup" analyzer. * Changelog fragment * gofmt * gazelle * Add modernize "newexpr" analyzer. * Disable newexpr until go1.26 * Add more details in WORKSPACE on how to update the override * @nalepae feedback on min() * gofmt * Fix violations of forvar
87 lines
2.4 KiB
Go
87 lines
2.4 KiB
Go
// usb - Self contained USB and HID library for Go
|
|
// Copyright 2017 The library Authors
|
|
//
|
|
// This library is free software: you can redistribute it and/or modify it under
|
|
// the terms of the GNU Lesser General Public License as published by the Free
|
|
// Software Foundation, either version 3 of the License, or (at your option) any
|
|
// later version.
|
|
//
|
|
// The library is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
// WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
|
// A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
|
|
//
|
|
// You should have received a copy of the GNU Lesser General Public License along
|
|
// with the library. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
package hid
|
|
|
|
import (
|
|
"os"
|
|
"runtime"
|
|
"sync"
|
|
"testing"
|
|
)
|
|
|
|
// Tests that HID enumeration can be called concurrently from multiple threads.
|
|
func TestThreadedEnumerateHid(t *testing.T) {
|
|
var pend sync.WaitGroup
|
|
for i := range 8 {
|
|
pend.Add(1)
|
|
|
|
go func(index int) {
|
|
defer pend.Done()
|
|
for j := range 512 {
|
|
if _, err := EnumerateHid(uint16(index), 0); err != nil {
|
|
t.Errorf("thread %d, iter %d: failed to enumerate: %v", index, j, err)
|
|
}
|
|
}
|
|
}(i)
|
|
}
|
|
pend.Wait()
|
|
}
|
|
|
|
// Tests that RAW enumeration can be called concurrently from multiple threads.
|
|
func TestThreadedEnumerateRaw(t *testing.T) {
|
|
// Travis does not have usbfs enabled in the Linux kernel
|
|
if os.Getenv("TRAVIS") != "" && runtime.GOOS == "linux" {
|
|
t.Skip("Linux on Travis doesn't have usbfs, skipping test")
|
|
}
|
|
// Yay, we can actually test this
|
|
var pend sync.WaitGroup
|
|
for i := range 8 {
|
|
pend.Add(1)
|
|
|
|
go func(index int) {
|
|
defer pend.Done()
|
|
for j := range 512 {
|
|
if _, err := EnumerateRaw(uint16(index), 0); err != nil {
|
|
t.Errorf("thread %d, iter %d: failed to enumerate: %v", index, j, err)
|
|
}
|
|
}
|
|
}(i)
|
|
}
|
|
pend.Wait()
|
|
}
|
|
|
|
// Tests that generic enumeration can be called concurrently from multiple threads.
|
|
func TestThreadedEnumerate(t *testing.T) {
|
|
// Travis does not have usbfs enabled in the Linux kernel
|
|
if os.Getenv("TRAVIS") != "" && runtime.GOOS == "linux" {
|
|
t.Skip("Linux on Travis doesn't have usbfs, skipping test")
|
|
}
|
|
var pend sync.WaitGroup
|
|
for i := range 8 {
|
|
pend.Add(1)
|
|
|
|
go func(index int) {
|
|
defer pend.Done()
|
|
for j := range 512 {
|
|
if _, err := Enumerate(uint16(index), 0); err != nil {
|
|
t.Errorf("thread %d, iter %d: failed to enumerate: %v", index, j, err)
|
|
}
|
|
}
|
|
}(i)
|
|
}
|
|
pend.Wait()
|
|
}
|