def main(): dev = MockModeSense10() dev.opcodes = smc s = SCSI(dev) # cdb for SMC: ElementAddressAssignment m = s.modesense10( page_code=MODESENSE10.PAGE_CODE.ELEMENT_ADDRESS_ASSIGNMENT) cdb = m.cdb assert cdb[0] == s.device.opcodes.MODE_SENSE_10.value assert cdb[1] == 0 assert cdb[2] == MODESENSE10.PAGE_CODE.ELEMENT_ADDRESS_ASSIGNMENT assert cdb[3] == 0 assert cdb[4:6] == bytearray(2) assert scsi_ba_to_int(cdb[7:9]) == 96 assert cdb[9] == 0 cdb = m.unmarshall_cdb(cdb) assert cdb['opcode'] == s.device.opcodes.MODE_SENSE_10.value assert cdb['dbd'] == 0 assert cdb['llbaa'] == 0 assert cdb['page_code'] == MODESENSE10.PAGE_CODE.ELEMENT_ADDRESS_ASSIGNMENT assert cdb['pc'] == 0 assert cdb['sub_page_code'] == 0 assert cdb['alloc_len'] == 96 d = ModeSense10.unmarshall_cdb(ModeSense10.marshall_cdb(cdb)) assert d == cdb m = s.modesense10(page_code=0, sub_page_code=3, llbaa=1, dbd=1, pc=MODESENSE10.PC.DEFAULT, alloclen=90) cdb = m.cdb assert cdb[0] == s.device.opcodes.MODE_SENSE_10.value assert cdb[1] == 0x18 assert cdb[2] == MODESENSE10.PC.DEFAULT << 6 assert cdb[3] == 3 assert scsi_ba_to_int(cdb[7:9]) == 90 cdb = m.unmarshall_cdb(cdb) assert cdb['opcode'] == s.device.opcodes.MODE_SENSE_10.value assert cdb['dbd'] == 1 assert cdb['pc'] == MODESENSE10.PC.DEFAULT assert cdb['page_code'] == 0 assert cdb['sub_page_code'] == 3 assert cdb['alloc_len'] == 90 assert cdb['llbaa'] == 1 d = ModeSense10.unmarshall_cdb(ModeSense10.marshall_cdb(cdb)) assert d == cdb
def main(): dev = MockModeSense10() dev.opcodes = smc s = SCSI(dev) # cdb for SMC: ElementAddressAssignment m = s.modesense10(page_code=MODESENSE10.PAGE_CODE.ELEMENT_ADDRESS_ASSIGNMENT) cdb = m.cdb assert cdb[0] == s.device.opcodes.MODE_SENSE_10.value assert cdb[1] == 0 assert cdb[2] == MODESENSE10.PAGE_CODE.ELEMENT_ADDRESS_ASSIGNMENT assert cdb[3] == 0 assert cdb[4:6] == bytearray(2) assert scsi_ba_to_int(cdb[7:9]) == 96 assert cdb[9] == 0 cdb = m.unmarshall_cdb(cdb) assert cdb['opcode'] == s.device.opcodes.MODE_SENSE_10.value assert cdb['dbd'] == 0 assert cdb['llbaa'] == 0 assert cdb['page_code'] == MODESENSE10.PAGE_CODE.ELEMENT_ADDRESS_ASSIGNMENT assert cdb['pc'] == 0 assert cdb['sub_page_code'] == 0 assert cdb['alloc_len'] == 96 d = ModeSense10.unmarshall_cdb(ModeSense10.marshall_cdb(cdb)) assert d == cdb m = s.modesense10(page_code=0, sub_page_code=3, llbaa=1, dbd=1, pc=MODESENSE10.PC.DEFAULT, alloclen=90) cdb = m.cdb assert cdb[0] == s.device.opcodes.MODE_SENSE_10.value assert cdb[1] == 0x18 assert cdb[2] == MODESENSE10.PC.DEFAULT << 6 assert cdb[3] == 3 assert scsi_ba_to_int(cdb[7:9]) == 90 cdb = m.unmarshall_cdb(cdb) assert cdb['opcode'] == s.device.opcodes.MODE_SENSE_10.value assert cdb['dbd'] == 1 assert cdb['pc'] == MODESENSE10.PC.DEFAULT assert cdb['page_code'] == 0 assert cdb['sub_page_code'] == 3 assert cdb['alloc_len'] == 90 assert cdb['llbaa'] == 1 d = ModeSense10.unmarshall_cdb(ModeSense10.marshall_cdb(cdb)) assert d == cdb
def test_main(self): with MockSCSI(MockDevice(smc)) as s: # cdb for SMC: ElementAddressAssignment m = s.modesense10(page_code=MODESENSE10.PAGE_CODE.ELEMENT_ADDRESS_ASSIGNMENT) cdb = m.cdb self.assertEqual(cdb[0], s.device.opcodes.MODE_SENSE_10.value) self.assertEqual(cdb[1], 0) self.assertEqual(cdb[2], MODESENSE10.PAGE_CODE.ELEMENT_ADDRESS_ASSIGNMENT) self.assertEqual(cdb[3], 0) self.assertEqual(cdb[4:6], bytearray(2)) self.assertEqual(scsi_ba_to_int(cdb[7:9]), 96) self.assertEqual(cdb[9], 0) cdb = m.unmarshall_cdb(cdb) self.assertEqual(cdb['opcode'], s.device.opcodes.MODE_SENSE_10.value) self.assertEqual(cdb['dbd'], 0) self.assertEqual(cdb['llbaa'], 0) self.assertEqual(cdb['page_code'], MODESENSE10.PAGE_CODE.ELEMENT_ADDRESS_ASSIGNMENT) self.assertEqual(cdb['pc'], 0) self.assertEqual(cdb['sub_page_code'], 0) self.assertEqual(cdb['alloc_len'], 96) d = ModeSense10.unmarshall_cdb(ModeSense10.marshall_cdb(cdb)) self.assertEqual(d, cdb) m = s.modesense10(page_code=0, sub_page_code=3, llbaa=1, dbd=1, pc=MODESENSE10.PC.DEFAULT, alloclen=90) cdb = m.cdb self.assertEqual(cdb[0], s.device.opcodes.MODE_SENSE_10.value) self.assertEqual(cdb[1], 0x18) self.assertEqual(cdb[2], MODESENSE10.PC.DEFAULT << 6) self.assertEqual(cdb[3], 3) self.assertEqual(scsi_ba_to_int(cdb[7:9]), 90) cdb = m.unmarshall_cdb(cdb) self.assertEqual(cdb['opcode'], s.device.opcodes.MODE_SENSE_10.value) self.assertEqual(cdb['dbd'], 1) self.assertEqual(cdb['pc'], MODESENSE10.PC.DEFAULT) self.assertEqual(cdb['page_code'], 0) self.assertEqual(cdb['sub_page_code'], 3) self.assertEqual(cdb['alloc_len'], 90) self.assertEqual(cdb['llbaa'], 1) d = ModeSense10.unmarshall_cdb(ModeSense10.marshall_cdb(cdb)) self.assertEqual(d, cdb)