Skip to content

Commit 8cb2269

Browse files
rogpeppedeadprogram
authored andcommitted
mcp23017: use new tester package
Also change the `tester` package slightly to use an exposed `Registers` array rather adding yet another accessor method to retrieve a register value. This seems to me more transparent and "obvious" - we aren't trying to hide the fact that there's just a simple memory store there. Also unexport the `assertRegisterRange` method which was never intended to be part of the public API.
1 parent ce5e443 commit 8cb2269

File tree

7 files changed

+78
-169
lines changed

7 files changed

+78
-169
lines changed

adt7410/adt7410_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,13 @@ func TestWhoAmI(t *testing.T) {
1818
c := qt.New(t)
1919
bus := tester.NewI2CBus(c)
2020
fake := tester.NewI2CDevice(c, Address)
21-
fake.SetupRegisters(defaultRegisters())
21+
copy(fake.Registers[:], defaultRegisters())
2222
bus.AddDevice(fake)
2323

2424
dev := New(bus)
2525
c.Assert(dev.Connected(), qt.Equals, true)
2626

27-
fake.SetupRegister(RegID, 0x99)
27+
fake.Registers[RegID] = 0x99
2828
c.Assert(dev.Connected(), qt.Equals, false)
2929
}
3030

lis2mdl/lis2mdl_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,13 @@ func TestWhoAmI(t *testing.T) {
1818
c := qt.New(t)
1919
bus := tester.NewI2CBus(c)
2020
fake := tester.NewI2CDevice(c, ADDRESS)
21-
fake.SetupRegisters(defaultRegisters())
21+
copy(fake.Registers[:], defaultRegisters())
2222
bus.AddDevice(fake)
2323

2424
dev := New(bus)
2525
c.Assert(dev.Connected(), qt.Equals, true)
2626

27-
fake.SetupRegister(WHO_AM_I, 0x99)
27+
fake.Registers[WHO_AM_I] = 0x99
2828
c.Assert(dev.Connected(), qt.Equals, false)
2929
}
3030

mcp23017/device_test.go

Lines changed: 26 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,14 @@ import (
55
"testing"
66

77
qt "github.com/frankban/quicktest"
8+
9+
"tinygo.org/x/drivers/tester"
810
)
911

1012
func TestGetPins(t *testing.T) {
1113
c := qt.New(t)
12-
bus := newBus(c)
13-
fdev := bus.addDevice(0x20)
14+
bus := tester.NewI2CBus(c)
15+
fdev := newDevice(bus, 0x20)
1416
fdev.Registers[rGPIO] = 0b10101100
1517
fdev.Registers[rGPIO|portB] = 0b01010011
1618
dev, err := NewI2C(bus, 0x20)
@@ -22,8 +24,8 @@ func TestGetPins(t *testing.T) {
2224

2325
func TestSetPins(t *testing.T) {
2426
c := qt.New(t)
25-
bus := newBus(c)
26-
fdev := bus.addDevice(0x20)
27+
bus := tester.NewI2CBus(c)
28+
fdev := newDevice(bus, 0x20)
2729
fdev.Registers[rGPIO] = 0b00001111
2830
fdev.Registers[rGPIO|portB] = 0b11110000
2931
dev, err := NewI2C(bus, 0x20)
@@ -52,8 +54,8 @@ func TestSetPins(t *testing.T) {
5254

5355
func TestTogglePins(t *testing.T) {
5456
c := qt.New(t)
55-
bus := newBus(c)
56-
fdev := bus.addDevice(0x20)
57+
bus := tester.NewI2CBus(c)
58+
fdev := newDevice(bus, 0x20)
5759
fdev.Registers[rGPIO] = 0b00001111
5860
fdev.Registers[rGPIO|portB] = 0b11110000
5961
dev, err := NewI2C(bus, 0x20)
@@ -71,8 +73,8 @@ func TestTogglePins(t *testing.T) {
7173

7274
func TestSetGetModes(t *testing.T) {
7375
c := qt.New(t)
74-
bus := newBus(c)
75-
fdev := bus.addDevice(0x20)
76+
bus := tester.NewI2CBus(c)
77+
fdev := newDevice(bus, 0x20)
7678
dev, err := NewI2C(bus, 0x20)
7779
c.Assert(err, qt.IsNil)
7880
// Calling SetModes with less items in than there are
@@ -102,8 +104,8 @@ func TestSetGetModes(t *testing.T) {
102104

103105
func TestPinSetGet(t *testing.T) {
104106
c := qt.New(t)
105-
bus := newBus(c)
106-
fdev := bus.addDevice(0x20)
107+
bus := tester.NewI2CBus(c)
108+
fdev := newDevice(bus, 0x20)
107109
dev, err := NewI2C(bus, 0x20)
108110
c.Assert(err, qt.IsNil)
109111
pin := dev.Pin(1)
@@ -129,8 +131,8 @@ func TestPinSetGet(t *testing.T) {
129131

130132
func TestPinToggle(t *testing.T) {
131133
c := qt.New(t)
132-
bus := newBus(c)
133-
fdev := bus.addDevice(0x20)
134+
bus := tester.NewI2CBus(c)
135+
fdev := newDevice(bus, 0x20)
134136
dev, err := NewI2C(bus, 0x20)
135137
c.Assert(err, qt.IsNil)
136138
pin := dev.Pin(1)
@@ -147,8 +149,8 @@ func TestPinToggle(t *testing.T) {
147149

148150
func TestPinMode(t *testing.T) {
149151
c := qt.New(t)
150-
bus := newBus(c)
151-
fdev := bus.addDevice(0x20)
152+
bus := tester.NewI2CBus(c)
153+
fdev := newDevice(bus, 0x20)
152154
dev, err := NewI2C(bus, 0x20)
153155
c.Assert(err, qt.IsNil)
154156
pin := dev.Pin(1)
@@ -201,10 +203,18 @@ func TestPins(t *testing.T) {
201203

202204
func TestInitWithError(t *testing.T) {
203205
c := qt.New(t)
204-
bus := newBus(c)
205-
fdev := bus.addDevice(0x20)
206+
bus := tester.NewI2CBus(c)
207+
fdev := newDevice(bus, 0x20)
206208
fdev.Err = fmt.Errorf("some error")
207209
dev, err := NewI2C(bus, 0x20)
208210
c.Assert(err, qt.ErrorMatches, `cannot initialize mcp23017 device at 0x20: some error`)
209211
c.Assert(dev, qt.IsNil)
210212
}
213+
214+
func newDevice(bus *tester.I2CBus, addr uint8) *tester.I2CDevice {
215+
fdev := bus.NewDevice(addr)
216+
// IODIRA and IODIRB are all ones by default.
217+
fdev.Registers[rIODIR] = 0xff
218+
fdev.Registers[rIODIR|portB] = 0xff
219+
return fdev
220+
}

mcp23017/fakedev_test.go

Lines changed: 0 additions & 97 deletions
This file was deleted.

mcp23017/multidevice_test.go

Lines changed: 23 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,15 @@ import (
44
"testing"
55

66
qt "github.com/frankban/quicktest"
7+
8+
"tinygo.org/x/drivers/tester"
79
)
810

911
func TestDevicesGetPins(t *testing.T) {
1012
c := qt.New(t)
11-
bus := newBus(c)
12-
fdev0 := bus.addDevice(0x20)
13-
fdev1 := bus.addDevice(0x21)
13+
bus := tester.NewI2CBus(c)
14+
fdev0 := newDevice(bus, 0x20)
15+
fdev1 := newDevice(bus, 0x21)
1416
fdev0.Registers[rGPIO] = 0b10101100
1517
fdev0.Registers[rGPIO|portB] = 0b01010011
1618
fdev1.Registers[rGPIO] = 0b10101101
@@ -31,9 +33,9 @@ func TestDevicesGetPins(t *testing.T) {
3133

3234
func TestDevicesSetPinsAllOff(t *testing.T) {
3335
c := qt.New(t)
34-
bus := newBus(c)
35-
fdev0 := bus.addDevice(0x20)
36-
fdev1 := bus.addDevice(0x21)
36+
bus := tester.NewI2CBus(c)
37+
fdev0 := newDevice(bus, 0x20)
38+
fdev1 := newDevice(bus, 0x21)
3739
fdev0.Registers[rGPIO] = 0b10101100
3840
fdev0.Registers[rGPIO|portB] = 0b01010011
3941
fdev1.Registers[rGPIO] = 0b10101101
@@ -51,9 +53,9 @@ func TestDevicesSetPinsAllOff(t *testing.T) {
5153

5254
func TestDevicesSetPinsAllOn(t *testing.T) {
5355
c := qt.New(t)
54-
bus := newBus(c)
55-
fdev0 := bus.addDevice(0x20)
56-
fdev1 := bus.addDevice(0x21)
56+
bus := tester.NewI2CBus(c)
57+
fdev0 := newDevice(bus, 0x20)
58+
fdev1 := newDevice(bus, 0x21)
5759
fdev0.Registers[rGPIO] = 0b10101100
5860
fdev0.Registers[rGPIO|portB] = 0b01010011
5961
fdev1.Registers[rGPIO] = 0b10101101
@@ -71,9 +73,9 @@ func TestDevicesSetPinsAllOn(t *testing.T) {
7173

7274
func TestDevicesSetPinsMask(t *testing.T) {
7375
c := qt.New(t)
74-
bus := newBus(c)
75-
fdev0 := bus.addDevice(0x20)
76-
fdev1 := bus.addDevice(0x21)
76+
bus := tester.NewI2CBus(c)
77+
fdev0 := newDevice(bus, 0x20)
78+
fdev1 := newDevice(bus, 0x21)
7779
fdev0.Registers[rGPIO] = 0b10101100
7880
fdev0.Registers[rGPIO|portB] = 0b01010011
7981
fdev1.Registers[rGPIO] = 0b10101101
@@ -104,9 +106,9 @@ func TestDevicesSetPinsMask(t *testing.T) {
104106

105107
func TestDevicesTogglePins(t *testing.T) {
106108
c := qt.New(t)
107-
bus := newBus(c)
108-
bus.addDevice(0x20)
109-
bus.addDevice(0x21)
109+
bus := tester.NewI2CBus(c)
110+
newDevice(bus, 0x20)
111+
newDevice(bus, 0x21)
110112
devs, err := NewI2CDevices(bus, 0x20, 0x21)
111113
c.Assert(err, qt.IsNil)
112114

@@ -124,9 +126,9 @@ func TestDevicesTogglePins(t *testing.T) {
124126

125127
func TestDevicesSetGetModes(t *testing.T) {
126128
c := qt.New(t)
127-
bus := newBus(c)
128-
fdev0 := bus.addDevice(0x20)
129-
fdev1 := bus.addDevice(0x21)
129+
bus := tester.NewI2CBus(c)
130+
fdev0 := newDevice(bus, 0x20)
131+
fdev1 := newDevice(bus, 0x21)
130132
devs, err := NewI2CDevices(bus, 0x20, 0x21)
131133
c.Assert(err, qt.IsNil)
132134
// Sanity check that IODIR registers start off all ones.
@@ -154,9 +156,9 @@ func TestDevicesSetGetModes(t *testing.T) {
154156

155157
func TestDevicesPin(t *testing.T) {
156158
c := qt.New(t)
157-
bus := newBus(c)
158-
bus.addDevice(0x20)
159-
fdev1 := bus.addDevice(0x21)
159+
bus := tester.NewI2CBus(c)
160+
newDevice(bus, 0x20)
161+
fdev1 := newDevice(bus, 0x21)
160162
devs, err := NewI2CDevices(bus, 0x20, 0x21)
161163
c.Assert(err, qt.IsNil)
162164
pin := devs.Pin(16)

0 commit comments

Comments
 (0)