Skip to content

Commit 807da53

Browse files
committed
Add tests for LED slot API add
Signed-off-by: Tony Asleson <[email protected]>
1 parent 4cbe2af commit 807da53

File tree

1 file changed

+78
-0
lines changed

1 file changed

+78
-0
lines changed

test/lsm_test.go

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1518,6 +1518,84 @@ func TestVolumeEnableSerDes(t *testing.T) {
15181518
assert.Equal(t, "Volume", volDes.Class)
15191519
}
15201520

1521+
func TestLocalDiskLedSlotsHandleGet(t *testing.T) {
1522+
1523+
var handle, err = disks.LedSlotsHandleGet()
1524+
assert.Nil(t, err)
1525+
disks.LedSlotsHandleFree(handle)
1526+
}
1527+
1528+
func TestLocalDiskLedSlotsGet(t *testing.T) {
1529+
1530+
var slots []disks.LedSlot
1531+
var handle, err = disks.LedSlotsHandleGet()
1532+
assert.Nil(t, err)
1533+
1534+
slots, err = handle.Slots()
1535+
assert.Nil(t, err)
1536+
1537+
for _, s := range slots {
1538+
assert.True(t, (len(s.SlotId) > 0))
1539+
}
1540+
1541+
assert.Nil(t, err)
1542+
disks.LedSlotsHandleFree(handle)
1543+
}
1544+
1545+
func toggle_status(curr lsm.DiskLedStatusBitField) lsm.DiskLedStatusBitField {
1546+
var rc lsm.DiskLedStatusBitField
1547+
if curr&lsm.DiskLedStatusIdentOn == lsm.DiskLedStatusIdentOn {
1548+
rc |= lsm.DiskLedStatusIdentOff
1549+
} else {
1550+
rc |= lsm.DiskLedStatusIdentOn
1551+
}
1552+
if curr&lsm.DiskLedStatusFaultOn == lsm.DiskLedStatusFaultOn {
1553+
rc |= lsm.DiskLedStatusFaultOff
1554+
} else {
1555+
rc |= lsm.DiskLedStatusFaultOn
1556+
}
1557+
1558+
return rc
1559+
}
1560+
1561+
func TestLocalDiskLedSlotsGetSet(t *testing.T) {
1562+
1563+
var slots []disks.LedSlot
1564+
var handle, err = disks.LedSlotsHandleGet()
1565+
assert.Nil(t, err)
1566+
1567+
slots, err = handle.Slots()
1568+
assert.Nil(t, err)
1569+
1570+
for _, s := range slots {
1571+
1572+
if len(s.Device) > 0 {
1573+
// We have a device node
1574+
path_status, err := disks.LedStatusGet(s.Device)
1575+
assert.Nil(t, err)
1576+
1577+
slot_status, err := handle.StatusGet(&s)
1578+
assert.Nil(t, err)
1579+
1580+
assert.Equal(t, path_status, slot_status)
1581+
1582+
var expected_status = toggle_status(slot_status)
1583+
err = handle.StatusSet(&s, expected_status)
1584+
assert.Nil(t, err)
1585+
new_status, err := disks.LedStatusGet(s.Device)
1586+
assert.Nil(t, err)
1587+
assert.Equal(t, new_status, expected_status)
1588+
1589+
// Put led state to original
1590+
err = handle.StatusSet(&s, path_status)
1591+
assert.Nil(t, err)
1592+
}
1593+
}
1594+
1595+
assert.Nil(t, err)
1596+
disks.LedSlotsHandleFree(handle)
1597+
}
1598+
15211599
func TestClassSerDes(t *testing.T) {
15221600
objs := map[string]interface{}{
15231601
"System": &lsm.System{},

0 commit comments

Comments
 (0)