diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index dff1443..43d544d 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -78,13 +78,12 @@ jobs: if: always() run: go vet ./... - name: 'Check: go vet shadow; shadowed variables' - # TODO: Remove true if we make this check ever pass. run: | SHADOW_TOOL="$(which shadow)" if [ -f "${SHADOW_TOOL}.exe" ]; then SHADOW_TOOL="${SHADOW_TOOL}.exe" fi - go vet -vettool=$SHADOW_TOOL ./... || true + go vet -vettool=$SHADOW_TOOL ./... - name: 'Check: golint' if: always() # TODO: Remove true if we make this check ever pass. diff --git a/bmxx80/bmx280smoketest/bmx280smoketest.go b/bmxx80/bmx280smoketest/bmx280smoketest.go index 89fb02c..77688d1 100644 --- a/bmxx80/bmx280smoketest/bmx280smoketest.go +++ b/bmxx80/bmx280smoketest/bmx280smoketest.go @@ -42,7 +42,7 @@ func (s *SmokeTest) Run(f *flag.FlagSet, args []string) (err error) { i2cAddr := f.Uint("ia", 0x76, "I²C bus address to use; either 0x76 (BMx280, the default) or 0x77 (BMP180)") spiID := f.String("spi", "", "SPI port to use") record := f.Bool("r", false, "record operation (for playback unit testing)") - if err := f.Parse(args); err != nil { + if err = f.Parse(args); err != nil { return err } if f.NArg() != 0 { diff --git a/cap1xxx/cap1xxx_test.go b/cap1xxx/cap1xxx_test.go index 8e2772c..be002d8 100644 --- a/cap1xxx/cap1xxx_test.go +++ b/cap1xxx/cap1xxx_test.go @@ -183,7 +183,7 @@ func TestDev_InputStatus(t *testing.T) { } // first check var got [8]TouchStatus - if err := d.InputStatus(got[:]); err != nil { + if err = d.InputStatus(got[:]); err != nil { t.Fatal(err) } if !reflect.DeepEqual(got, [8]TouchStatus{PressedStatus, OffStatus, OffStatus, OffStatus, OffStatus, OffStatus, OffStatus, OffStatus}) { diff --git a/cap1xxx/example_test.go b/cap1xxx/example_test.go index ec9f831..75b64b2 100644 --- a/cap1xxx/example_test.go +++ b/cap1xxx/example_test.go @@ -29,7 +29,7 @@ func Example() { log.Fatal("invalid alert GPIO pin number") } // We set the alert pin to monitor for interrupts. - if err := alertPin.In(gpio.PullUp, gpio.BothEdges); err != nil { + if err = alertPin.In(gpio.PullUp, gpio.BothEdges); err != nil { log.Fatalf("Can't monitor the alert pin") } diff --git a/ina219/ina219smoketest/ina219smoketest.go b/ina219/ina219smoketest/ina219smoketest.go index 828f4ec..cbe5fec 100644 --- a/ina219/ina219smoketest/ina219smoketest.go +++ b/ina219/ina219smoketest/ina219smoketest.go @@ -34,7 +34,7 @@ func (s *SmokeTest) Description() string { func (s *SmokeTest) Run(f *flag.FlagSet, args []string) (err error) { i2cID := f.String("i2c", "", "I²C bus to use") i2cAddr := f.Int("ia", 0x40, "I²C bus address use: 0x40 to 0x4f") - if err := f.Parse(args); err != nil { + if err = f.Parse(args); err != nil { return err } if f.NArg() != 0 { @@ -43,7 +43,7 @@ func (s *SmokeTest) Run(f *flag.FlagSet, args []string) (err error) { } fmt.Println("Starting INA219 Current Sensor\nctrl+c to exit") - if _, err := host.Init(); err != nil { + if _, err = host.Init(); err != nil { return err } diff --git a/inky/example_test.go b/inky/example_test.go index bec6dbb..e3e4583 100644 --- a/inky/example_test.go +++ b/inky/example_test.go @@ -32,7 +32,7 @@ func Example() { log.Fatal(err) } - if _, err := host.Init(); err != nil { + if _, err = host.Init(); err != nil { log.Fatal(err) } diff --git a/inky/inky.go b/inky/inky.go index 729ee26..c746a6d 100644 --- a/inky/inky.go +++ b/inky/inky.go @@ -328,14 +328,14 @@ func (d *Dev) DrawAll(src image.Image) error { return d.Draw(d.Bounds(), src, image.Point{}) } -func (d *Dev) update(border byte, black []byte, red []byte) (err error) { +func (d *Dev) update(border byte, black []byte, red []byte) error { if err := d.reset(); err != nil { return err } - r := make([]byte, 3) - binary.LittleEndian.PutUint16(r, uint16(d.Bounds().Size().Y)) - h := make([]byte, 4) + r := [3]byte{} + binary.LittleEndian.PutUint16(r[:], uint16(d.Bounds().Size().Y)) + h := [4]byte{} binary.LittleEndian.PutUint16(h[2:], uint16(d.Bounds().Size().Y)) type cmdData struct { @@ -343,7 +343,7 @@ func (d *Dev) update(border byte, black []byte, red []byte) (err error) { data []byte } cmds := []cmdData{ - {0x01, r}, // Gate setting + {0x01, r[:]}, // Gate setting {0x74, []byte{0x54}}, // Set Analog Block Control. {0x7e, []byte{0x3b}}, // Set Digital Block Control. {0x03, []byte{0x17}}, // Gate Driving Voltage. @@ -356,7 +356,7 @@ func (d *Dev) update(border byte, black []byte, red []byte) (err error) { {0x3c, []byte{byte(border)}}, // Border colour {0x32, modelLUT[d.color]}, // Set LUTs. {0x44, []byte{0x00, byte(d.Bounds().Size().X/8) - 1}}, // Set RAM Y Start/End - {0x45, h}, // Set RAM X Start/End + {0x45, h[:]}, // Set RAM X Start/End {0x4e, []byte{0x00}}, // Set RAM X Pointer Start {0x4f, []byte{0x00, 0x00}}, // Set RAM Y Pointer Start {0x24, black}, @@ -378,21 +378,16 @@ func (d *Dev) update(border byte, black []byte, red []byte) (err error) { if err := d.busy.In(gpio.PullUp, gpio.FallingEdge); err != nil { return err } - defer func() { - if err2 := d.busy.In(gpio.PullUp, gpio.NoEdge); err2 != nil { - err = err2 - } - }() - if err := d.sendCommand(0x20, nil); err != nil { - return err + var err error + if err = d.sendCommand(0x20, nil); err == nil { + d.busy.WaitForEdge(-1) + // Enter deep sleep. + err = d.sendCommand(0x10, []byte{0x01}) } - - d.busy.WaitForEdge(-1) - - if err := d.sendCommand(0x10, []byte{0x01}); err != nil { // Enter deep sleep. - return err + if err2 := d.busy.In(gpio.PullUp, gpio.NoEdge); err2 != nil { + err = err2 } - return + return err } func (d *Dev) reset() (err error) { diff --git a/lepton/cci/cci.go b/lepton/cci/cci.go index 26dec19..a5174cc 100644 --- a/lepton/cci/cci.go +++ b/lepton/cci/cci.go @@ -430,10 +430,10 @@ func (c *cciConn) set(cmd command, data interface{}) error { if err != nil { return err } - if err := c.r.WriteUint16(regDataLength, uint16(nbWords)); err != nil { + if err = c.r.WriteUint16(regDataLength, uint16(nbWords)); err != nil { return err } - if err := c.r.WriteUint16(regCommandID, uint16(cmd)|1); err != nil { + if err = c.r.WriteUint16(regCommandID, uint16(cmd)|1); err != nil { return err } s, err := c.waitIdle() diff --git a/lirc/lirc.go b/lirc/lirc.go index 768ecd7..ee0d340 100644 --- a/lirc/lirc.go +++ b/lirc/lirc.go @@ -136,8 +136,8 @@ func (c *Conn) readData(r *bufio.Reader) error { } default: // In case of any error, ignore the rest. - line, err := read(r) - if err != nil { + line := "" + if line, err = read(r); err != nil { return err } if line != "SUCCESS" { @@ -154,8 +154,8 @@ func (c *Conn) readData(r *bufio.Reader) error { if line, err = read(r); err != nil { return err } - nbLines, err := strconv.Atoi(line) - if err != nil { + nbLines := 0 + if nbLines, err = strconv.Atoi(line); err != nil { return err } list := make([]string, nbLines) diff --git a/mcp9808/mcp9808_test.go b/mcp9808/mcp9808_test.go index a08dfe0..5adb1d7 100644 --- a/mcp9808/mcp9808_test.go +++ b/mcp9808/mcp9808_test.go @@ -205,8 +205,7 @@ func TestSenseContinuous(t *testing.T) { if tt.Halt { e := <-env - err := mcp9808.Halt() - if err != tt.err { + if err = mcp9808.Halt(); err != tt.err { t.Errorf("SenseContinuous() %s wanted err: %v, but got: %v", tt.name, tt.err, err) } if err == nil && e.Temperature != tt.want { diff --git a/mcp9808/mcp9808smoketest/mcp9808smoketest.go b/mcp9808/mcp9808smoketest/mcp9808smoketest.go index 79830c0..cb4370b 100644 --- a/mcp9808/mcp9808smoketest/mcp9808smoketest.go +++ b/mcp9808/mcp9808smoketest/mcp9808smoketest.go @@ -33,7 +33,7 @@ func (s *SmokeTest) Description() string { func (s *SmokeTest) Run(f *flag.FlagSet, args []string) (err error) { i2cID := f.String("i2c", "", "I²C bus to use") i2cAddr := f.Int("ia", 0x18, "I²C bus address use: 0x18 to 0x1f") - if err := f.Parse(args); err != nil { + if err = f.Parse(args); err != nil { return err } if f.NArg() != 0 { @@ -42,7 +42,7 @@ func (s *SmokeTest) Run(f *flag.FlagSet, args []string) (err error) { } fmt.Println("Starting MCP9808 Temperature Sensor\nctrl+c to exit") - if _, err := host.Init(); err != nil { + if _, err = host.Init(); err != nil { return err } diff --git a/mpu9250/mpu9250.go b/mpu9250/mpu9250.go index d25e8cb..360789e 100644 --- a/mpu9250/mpu9250.go +++ b/mpu9250/mpu9250.go @@ -106,21 +106,21 @@ func (m *MPU9250) Calibrate() error { writeGyroOffset := func(v int16, h, l byte) error { o := (-v) >> 2 - if err := m.transport.writeByte(h, byte(o>>8)); err != nil { - return wrapf("can't write Gyro offset %x(h):%x => %v", h, o, err) + if err = m.transport.writeByte(h, byte(o>>8)); err != nil { + return wrapf("can't write Gyro offset %x(h):%x => %w", h, o, err) } - if err := m.transport.writeByte(l, byte(o&0xFF)); err != nil { - return wrapf("can't write Gyro offset %x(l):%x => %v", l, o, err) + if err = m.transport.writeByte(l, byte(o&0xFF)); err != nil { + return wrapf("can't write Gyro offset %x(l):%x => %w", l, o, err) } return nil } writeAccelOffset := func(o uint16, h, l byte) error { - if err := m.transport.writeByte(h, byte(o>>8)); err != nil { - return wrapf("can't write Accelerator %x(h):%x => %v", h, o, err) + if err = m.transport.writeByte(h, byte(o>>8)); err != nil { + return wrapf("can't write Accelerator %x(h):%x => %w", h, o, err) } - if err := m.transport.writeByte(l, byte(o&0xFF)); err != nil { - return wrapf("can't write Accelerator %x(l):%x => %v", l, o, err) + if err = m.transport.writeByte(l, byte(o&0xFF)); err != nil { + return wrapf("can't write Accelerator %x(l):%x => %w", l, o, err) } return nil } @@ -132,9 +132,9 @@ func (m *MPU9250) Calibrate() error { for i := 0; i < int(packets); i++ { for j := 0; j < registers; j++ { - b, err := m.GetFIFOByte() - if err != nil { - return wrapf("can't read data byte %d of packet %d => %v", j, i, err) + b := byte(0) + if b, err = m.GetFIFOByte(); err != nil { + return wrapf("can't read data byte %d of packet %d => %w", j, i, err) } buffer[j] = b } @@ -177,13 +177,13 @@ func (m *MPU9250) Calibrate() error { } m.debug("Factory gyroscope bias: X:%d, Y:%d, Z:%d\n", int16(factoryGyroBiasX), int16(factoryGyroBiasY), int16(factoryGyroBiasZ)) - if err := writeGyroOffset(gyroXBias, reg.MPU9250_GYRO_XOUT_H, reg.MPU9250_GYRO_XOUT_L); err != nil { + if err = writeGyroOffset(gyroXBias, reg.MPU9250_GYRO_XOUT_H, reg.MPU9250_GYRO_XOUT_L); err != nil { return err } - if err := writeGyroOffset(gyroYBias, reg.MPU9250_GYRO_YOUT_H, reg.MPU9250_GYRO_YOUT_L); err != nil { + if err = writeGyroOffset(gyroYBias, reg.MPU9250_GYRO_YOUT_H, reg.MPU9250_GYRO_YOUT_L); err != nil { return err } - if err := writeGyroOffset(gyroZBias, reg.MPU9250_GYRO_ZOUT_H, reg.MPU9250_GYRO_ZOUT_L); err != nil { + if err = writeGyroOffset(gyroZBias, reg.MPU9250_GYRO_ZOUT_H, reg.MPU9250_GYRO_ZOUT_L); err != nil { return err } diff --git a/nrzled/nrzled_spi_test.go b/nrzled/nrzled_spi_test.go index 9ce3516..6184de1 100644 --- a/nrzled/nrzled_spi_test.go +++ b/nrzled/nrzled_spi_test.go @@ -571,7 +571,7 @@ func benchmarkSPIWrite(b *testing.B, o Opts, length int, f genColor) { if err != nil { b.Fatal(err) } - if _, err := d.Write(pixels[:]); err != nil { + if _, err = d.Write(pixels[:]); err != nil { b.Fatal(err) } b.ResetTimer() diff --git a/ssd1306/ssd1306smoketest/ssd1306smoketest.go b/ssd1306/ssd1306smoketest/ssd1306smoketest.go index b006d7d..a101579 100644 --- a/ssd1306/ssd1306smoketest/ssd1306smoketest.go +++ b/ssd1306/ssd1306smoketest/ssd1306smoketest.go @@ -62,7 +62,7 @@ func (s *SmokeTest) Run(f *flag.FlagSet, args []string) (err error) { rotated := f.Bool("rotated", false, "Rotate the displays by 180°") record := f.Bool("record", false, "record operation (for playback unit testing)") - if err := f.Parse(args); err != nil { + if err = f.Parse(args); err != nil { return err } if f.NArg() != 0 {