def main(): with MockSCSI(MockDevice(smc)) as s: # cdb for SMC: ReadElementStatus r = s.readelementstatus( 300, 700, element_type=READELEMENTSTATUS.ELEMENT_TYPE.STORAGE, voltag=1, curdata=1, dvcid=1) cdb = r.cdb assert cdb[0] == s.device.opcodes.READ_ELEMENT_STATUS.value assert cdb[1] == 0x10 | READELEMENTSTATUS.ELEMENT_TYPE.STORAGE assert scsi_ba_to_int(cdb[2:4]) == 300 assert scsi_ba_to_int(cdb[4:6]) == 700 assert cdb[6] == 0x03 assert scsi_ba_to_int(cdb[7:10]) == 16384 cdb = r.unmarshall_cdb(cdb) assert cdb['opcode'] == s.device.opcodes.READ_ELEMENT_STATUS.value assert cdb['voltag'] == 1 assert cdb['element_type'] == READELEMENTSTATUS.ELEMENT_TYPE.STORAGE assert cdb['starting_element_address'] == 300 assert cdb['num_elements'] == 700 assert cdb['curdata'] == 1 assert cdb['dvcid'] == 1 assert cdb['alloc_len'] == 16384 d = ReadElementStatus.unmarshall_cdb( ReadElementStatus.marshall_cdb(cdb)) assert d == cdb
def test_main(self): with MockSCSI(MockDevice(smc)) as s: # cdb for SMC: ReadElementStatus r = s.readelementstatus( 300, 700, element_type=READELEMENTSTATUS.ELEMENT_TYPE.STORAGE, voltag=1, curdata=1, dvcid=1) cdb = r.cdb self.assertEqual(cdb[0], s.device.opcodes.READ_ELEMENT_STATUS.value) self.assertEqual(cdb[1], 0x10 | READELEMENTSTATUS.ELEMENT_TYPE.STORAGE) self.assertEqual(scsi_ba_to_int(cdb[2:4]), 300) self.assertEqual(scsi_ba_to_int(cdb[4:6]), 700) self.assertEqual(cdb[6], 0x03) self.assertEqual(scsi_ba_to_int(cdb[7:10]), 16384) cdb = r.unmarshall_cdb(cdb) self.assertEqual(cdb['opcode'], s.device.opcodes.READ_ELEMENT_STATUS.value) self.assertEqual(cdb['voltag'], 1) self.assertEqual(cdb['element_type'], READELEMENTSTATUS.ELEMENT_TYPE.STORAGE) self.assertEqual(cdb['starting_element_address'], 300) self.assertEqual(cdb['num_elements'], 700) self.assertEqual(cdb['curdata'], 1) self.assertEqual(cdb['dvcid'], 1) self.assertEqual(cdb['alloc_len'], 16384) d = ReadElementStatus.unmarshall_cdb( ReadElementStatus.marshall_cdb(cdb)) self.assertEqual(d, cdb)
def main(): dev = MockReadElementStatus() dev.opcodes = smc s = SCSI(dev) s.device.opcodes = smc # cdb for SMC: ReadElementStatus r = s.readelementstatus(300, 700, element_type=READELEMENTSTATUS.ELEMENT_TYPE.STORAGE, voltag=1, curdata=1, dvcid=1) cdb = r.cdb assert cdb[0] == s.device.opcodes.READ_ELEMENT_STATUS.value assert cdb[1] == 0x10 | READELEMENTSTATUS.ELEMENT_TYPE.STORAGE assert scsi_ba_to_int(cdb[2:4]) == 300 assert scsi_ba_to_int(cdb[4:6]) == 700 assert cdb[6] == 0x03 assert scsi_ba_to_int(cdb[7:10]) == 16384 cdb = r.unmarshall_cdb(cdb) assert cdb['opcode'] == s.device.opcodes.READ_ELEMENT_STATUS.value assert cdb['voltag'] == 1 assert cdb['element_type'] == READELEMENTSTATUS.ELEMENT_TYPE.STORAGE assert cdb['starting_element_address'] == 300 assert cdb['num_elements'] == 700 assert cdb['curdata'] == 1 assert cdb['dvcid'] == 1 assert cdb['alloc_len'] == 16384 d = ReadElementStatus.unmarshall_cdb(ReadElementStatus.marshall_cdb(cdb)) assert d == cdb