Files
prysm/third_party/hid/usb_test.go
Preston Van Loon 2fd6bd8150 Add golang.org/x/tools modernize static analyzer and fix violations (#15946)
* 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
2025-11-14 01:27:22 +00:00

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()
}