mirror of
https://github.com/hybridgroup/gobot.git
synced 2025-05-11 19:29:20 +08:00
build(linter): update linter to v1.56.1 and fix issues
This commit is contained in:
parent
1a66f4b44d
commit
77be292503
@ -61,7 +61,7 @@ jobs:
|
|||||||
|
|
||||||
"fmt_check_examples":
|
"fmt_check_examples":
|
||||||
docker:
|
docker:
|
||||||
- image: golangci/golangci-lint:v1.55.2
|
- image: golangci/golangci-lint:v1.56.1
|
||||||
steps:
|
steps:
|
||||||
- checkout
|
- checkout
|
||||||
- run:
|
- run:
|
||||||
|
2
.github/workflows/golangci-lint.yml
vendored
2
.github/workflows/golangci-lint.yml
vendored
@ -24,7 +24,7 @@ jobs:
|
|||||||
uses: golangci/golangci-lint-action@v3
|
uses: golangci/golangci-lint-action@v3
|
||||||
with:
|
with:
|
||||||
# Optional: version of golangci-lint to use in form of v1.2 or v1.2.3 or `latest` to use the latest version
|
# Optional: version of golangci-lint to use in form of v1.2 or v1.2.3 or `latest` to use the latest version
|
||||||
version: v1.55.2
|
version: v1.56.1
|
||||||
|
|
||||||
# Optional: working directory, useful for monorepos
|
# Optional: working directory, useful for monorepos
|
||||||
# working-directory: v2
|
# working-directory: v2
|
||||||
|
@ -168,6 +168,14 @@ linters-settings:
|
|||||||
# Default: false
|
# Default: false
|
||||||
require-specific: true
|
require-specific: true
|
||||||
|
|
||||||
|
perfsprint:
|
||||||
|
# Optimizes `fmt.Errorf`.
|
||||||
|
# Default: true
|
||||||
|
errorf: false
|
||||||
|
# Optimizes `fmt.Sprintf` with only one argument
|
||||||
|
# Default: true
|
||||||
|
sprintf1: false
|
||||||
|
|
||||||
revive:
|
revive:
|
||||||
rules:
|
rules:
|
||||||
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#unexported-return
|
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#unexported-return
|
||||||
|
@ -184,16 +184,17 @@ func TestTemperatureSensorWithSensorCyclicRead_PublishesError(t *testing.T) {
|
|||||||
func TestTemperatureSensorHalt_WithSensorCyclicRead(t *testing.T) {
|
func TestTemperatureSensorHalt_WithSensorCyclicRead(t *testing.T) {
|
||||||
// arrange
|
// arrange
|
||||||
d := NewTemperatureSensorDriver(newAioTestAdaptor(), "1", WithSensorCyclicRead(10*time.Millisecond))
|
d := NewTemperatureSensorDriver(newAioTestAdaptor(), "1", WithSensorCyclicRead(10*time.Millisecond))
|
||||||
done := make(chan struct{})
|
|
||||||
require.NoError(t, d.Start())
|
require.NoError(t, d.Start())
|
||||||
|
errChan := make(chan error, 1)
|
||||||
// act & assert
|
// act & assert
|
||||||
go func() {
|
go func() {
|
||||||
require.NoError(t, d.Halt())
|
errChan <- d.Halt()
|
||||||
close(done)
|
|
||||||
}()
|
}()
|
||||||
|
|
||||||
// test that the halt is not blocked by any deadlock with mutex and/or channel
|
// test that the halt is not blocked by any deadlock with mutex and/or channel
|
||||||
select {
|
select {
|
||||||
case <-done:
|
case err := <-errChan:
|
||||||
|
require.NoError(t, err)
|
||||||
case <-time.After(100 * time.Millisecond):
|
case <-time.After(100 * time.Millisecond):
|
||||||
require.Fail(t, "Temperature Sensor was not halted")
|
require.Fail(t, "Temperature Sensor was not halted")
|
||||||
}
|
}
|
||||||
|
@ -51,7 +51,7 @@ func TestADS1x15CommandsReadDifferenceWithDefaults(t *testing.T) {
|
|||||||
result := d.Command("ReadDifferenceWithDefaults")(ads1x15TestChannel)
|
result := d.Command("ReadDifferenceWithDefaults")(ads1x15TestChannel)
|
||||||
// assert
|
// assert
|
||||||
assert.Nil(t, result.(map[string]interface{})["err"])
|
assert.Nil(t, result.(map[string]interface{})["err"])
|
||||||
assert.Equal(t, -4.096, result.(map[string]interface{})["val"])
|
assert.InDelta(t, -4.096, result.(map[string]interface{})["val"], 0.0)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestADS1x15CommandsReadDifference(t *testing.T) {
|
func TestADS1x15CommandsReadDifference(t *testing.T) {
|
||||||
@ -61,7 +61,7 @@ func TestADS1x15CommandsReadDifference(t *testing.T) {
|
|||||||
result := d.Command("ReadDifference")(ads1x15TestChannelGainDataRate)
|
result := d.Command("ReadDifference")(ads1x15TestChannelGainDataRate)
|
||||||
// assert
|
// assert
|
||||||
assert.Nil(t, result.(map[string]interface{})["err"])
|
assert.Nil(t, result.(map[string]interface{})["err"])
|
||||||
assert.Equal(t, -2.048, result.(map[string]interface{})["val"])
|
assert.InDelta(t, -2.048, result.(map[string]interface{})["val"], 0.0)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestADS1x15CommandsReadWithDefaults(t *testing.T) {
|
func TestADS1x15CommandsReadWithDefaults(t *testing.T) {
|
||||||
@ -71,7 +71,7 @@ func TestADS1x15CommandsReadWithDefaults(t *testing.T) {
|
|||||||
result := d.Command("ReadWithDefaults")(ads1x15TestChannel)
|
result := d.Command("ReadWithDefaults")(ads1x15TestChannel)
|
||||||
// assert
|
// assert
|
||||||
assert.Nil(t, result.(map[string]interface{})["err"])
|
assert.Nil(t, result.(map[string]interface{})["err"])
|
||||||
assert.Equal(t, -4.096, result.(map[string]interface{})["val"])
|
assert.InDelta(t, -4.096, result.(map[string]interface{})["val"], 0.0)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestADS1x15CommandsRead(t *testing.T) {
|
func TestADS1x15CommandsRead(t *testing.T) {
|
||||||
@ -81,7 +81,7 @@ func TestADS1x15CommandsRead(t *testing.T) {
|
|||||||
result := d.Command("Read")(ads1x15TestChannelGainDataRate)
|
result := d.Command("Read")(ads1x15TestChannelGainDataRate)
|
||||||
// assert
|
// assert
|
||||||
assert.Nil(t, result.(map[string]interface{})["err"])
|
assert.Nil(t, result.(map[string]interface{})["err"])
|
||||||
assert.Equal(t, -2.048, result.(map[string]interface{})["val"])
|
assert.InDelta(t, -2.048, result.(map[string]interface{})["val"], 0.0)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestADS1x15CommandsAnalogRead(t *testing.T) {
|
func TestADS1x15CommandsAnalogRead(t *testing.T) {
|
||||||
|
@ -109,7 +109,7 @@ func TestWiichuckDriverCButton(t *testing.T) {
|
|||||||
done := make(chan bool)
|
done := make(chan bool)
|
||||||
|
|
||||||
_ = d.On(d.Event(C), func(data interface{}) {
|
_ = d.On(d.Event(C), func(data interface{}) {
|
||||||
assert.Equal(t, true, data) //nolint:testifylint // data is an interface
|
assert.Equal(t, true, data)
|
||||||
done <- true
|
done <- true
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -132,7 +132,7 @@ func TestWiichuckDriverZButton(t *testing.T) {
|
|||||||
done := make(chan bool)
|
done := make(chan bool)
|
||||||
|
|
||||||
_ = d.On(d.Event(Z), func(data interface{}) {
|
_ = d.On(d.Event(Z), func(data interface{}) {
|
||||||
assert.Equal(t, true, data) //nolint:testifylint // data is an interface
|
assert.Equal(t, true, data)
|
||||||
done <- true
|
done <- true
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -99,7 +99,7 @@ func main() {
|
|||||||
|
|
||||||
case <-ticker.C:
|
case <-ticker.C:
|
||||||
printAt(1, 0, "-- Press 'q' to Exit --")
|
printAt(1, 0, "-- Press 'q' to Exit --")
|
||||||
printAt(1, 1, fmt.Sprintf("Joystick Name: %s", js.Name()))
|
printAt(1, 1, fmt.Sprintf("Joystick Name: %s", js.Name())) //nolint:perfsprint // ok here
|
||||||
printAt(1, 2, fmt.Sprintf(" Axis Count: %d", js.AxisCount()))
|
printAt(1, 2, fmt.Sprintf(" Axis Count: %d", js.AxisCount()))
|
||||||
printAt(1, 3, fmt.Sprintf(" Button Count: %d", js.ButtonCount()))
|
printAt(1, 3, fmt.Sprintf(" Button Count: %d", js.ButtonCount()))
|
||||||
readJoystick(js)
|
readJoystick(js)
|
||||||
|
@ -189,8 +189,8 @@ func (j *Driver) initConfig() error {
|
|||||||
|
|
||||||
func (j *Driver) initEvents() {
|
func (j *Driver) initEvents() {
|
||||||
for _, value := range j.config.Buttons {
|
for _, value := range j.config.Buttons {
|
||||||
j.AddEvent(fmt.Sprintf("%s_press", value.Name))
|
j.AddEvent(fmt.Sprintf("%s_press", value.Name)) //nolint:perfsprint // ok here
|
||||||
j.AddEvent(fmt.Sprintf("%s_release", value.Name))
|
j.AddEvent(fmt.Sprintf("%s_release", value.Name)) //nolint:perfsprint // ok here
|
||||||
}
|
}
|
||||||
for _, value := range j.config.Axis {
|
for _, value := range j.config.Axis {
|
||||||
j.AddEvent(value.Name)
|
j.AddEvent(value.Name)
|
||||||
@ -214,9 +214,9 @@ func (j *Driver) handleButtons(state js.State) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if buttonPressed {
|
if buttonPressed {
|
||||||
j.Publish(j.Event(fmt.Sprintf("%s_press", name)), nil)
|
j.Publish(j.Event(fmt.Sprintf("%s_press", name)), nil) //nolint:perfsprint // ok here
|
||||||
} else {
|
} else {
|
||||||
j.Publish(j.Event(fmt.Sprintf("%s_release", name)), nil)
|
j.Publish(j.Event(fmt.Sprintf("%s_release", name)), nil) //nolint:perfsprint // ok here
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -194,7 +194,6 @@ func (b *Bebop) Discover() error {
|
|||||||
data := make([]byte, 10240)
|
data := make([]byte, 10240)
|
||||||
|
|
||||||
_, err = b.discoveryClient.Read(data)
|
_, err = b.discoveryClient.Read(data)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -214,7 +213,6 @@ func (b *Bebop) Connect() error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
b.c2dClient, err = net.DialUDP("udp", nil, c2daddr)
|
b.c2dClient, err = net.DialUDP("udp", nil, c2daddr)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -55,8 +55,9 @@ func TestRobotStartAutoRun(t *testing.T) {
|
|||||||
// work,
|
// work,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
errChan := make(chan error, 1)
|
||||||
go func() {
|
go func() {
|
||||||
require.NoError(t, r.Start())
|
errChan <- r.Start() // if no strange things happen, this runs until os.signal occurs
|
||||||
}()
|
}()
|
||||||
|
|
||||||
time.Sleep(10 * time.Millisecond)
|
time.Sleep(10 * time.Millisecond)
|
||||||
@ -65,4 +66,10 @@ func TestRobotStartAutoRun(t *testing.T) {
|
|||||||
// stop it
|
// stop it
|
||||||
require.NoError(t, r.Stop())
|
require.NoError(t, r.Stop())
|
||||||
assert.False(t, r.Running())
|
assert.False(t, r.Running())
|
||||||
|
select {
|
||||||
|
case err := <-errChan:
|
||||||
|
require.NoError(t, err)
|
||||||
|
case <-time.After(10 * time.Millisecond):
|
||||||
|
// because the Start() will run forever, until os.Signal, this is ok here
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user