lis2mdl: better examples showing how to create unit tests

Signed-off-by: deadprogram <ron@hybridgroup.com>
This commit is contained in:
deadprogram
2020-08-27 00:16:15 +02:00
committed by Ron Evans
parent 2ae950e96d
commit 4ad210060f
3 changed files with 79 additions and 39 deletions
+34 -7
View File
@@ -11,22 +11,49 @@ func TestDefaultI2CAddress(t *testing.T) {
c := qt.New(t)
bus := tester.NewI2CBus(c)
dev := New(bus)
c.Assert(dev.Address, qt.Equals, uint8(MAG_ADDRESS))
c.Assert(dev.Address, qt.Equals, uint8(ADDRESS))
}
func TestWhoAmI(t *testing.T) {
c := qt.New(t)
bus := tester.NewI2CBus(c)
fake := tester.NewI2CDevice(c, MAG_ADDRESS)
fake := tester.NewI2CDevice(c, ADDRESS)
fake.SetupRegisters(defaultRegisters())
bus.AddDevice(fake)
dev := New(bus)
fake.SetupRegisters([]uint8{
0x4F: 0x40,
})
c.Assert(dev.Connected(), qt.Equals, true)
fake.SetupRegister(0x4F, 0x99)
fake.SetupRegister(WHO_AM_I, 0x99)
c.Assert(dev.Connected(), qt.Equals, false)
}
// defaultRegisters returns the default values for all of the device's registers.
// see table 22 on page 27 of the datasheet.
func defaultRegisters() []uint8 {
return []uint8{
OFFSET_X_REG_L: 0,
OFFSET_X_REG_H: 0,
OFFSET_Y_REG_L: 0,
OFFSET_Y_REG_H: 0,
OFFSET_Z_REG_L: 0,
OFFSET_Z_REG_H: 0,
WHO_AM_I: 0x40,
CFG_REG_A: 0x03,
CFG_REG_B: 0,
CFG_REG_C: 0,
INT_CRTL_REG: 0xE0,
INT_SOURCE_REG: 0,
INT_THS_L_REG: 0,
INT_THS_H_REG: 0,
STATUS_REG: 0,
OUTX_L_REG: 0,
OUTX_H_REG: 0,
OUTY_L_REG: 0,
OUTY_H_REG: 0,
OUTZ_L_REG: 0,
OUTZ_H_REG: 0,
TEMP_OUT_L_REG: 0,
TEMP_OUT_H_REG: 0,
}
}