def main(): dev = MockRead16() dev.opcodes = sbc s = SCSI(dev) s.blocksize = 512 r = s.read16(1024, 27) cdb = r.cdb assert cdb[0] == s.device.opcodes.READ_16.value assert cdb[1] == 0 assert scsi_ba_to_int(cdb[2:10]) == 1024 assert scsi_ba_to_int(cdb[10:14]) == 27 assert cdb[14] == 0 assert cdb[15] == 0 cdb = r.unmarshall_cdb(cdb) assert cdb['opcode'] == s.device.opcodes.READ_16.value assert cdb['rdprotect'] == 0 assert cdb['dpo'] == 0 assert cdb['fua'] == 0 assert cdb['rarc'] == 0 assert cdb['lba'] == 1024 assert cdb['group'] == 0 assert cdb['tl'] == 27 d = Read16.unmarshall_cdb(Read16.marshall_cdb(cdb)) assert d == cdb r = s.read16(1024, 27, rdprotect=2, dpo=1, fua=1, rarc=1, group=19) cdb = r.cdb assert cdb[0] == s.device.opcodes.READ_16.value assert cdb[1] == 0x5c assert scsi_ba_to_int(cdb[2:10]) == 1024 assert scsi_ba_to_int(cdb[10:14]) == 27 assert cdb[14] == 0x13 assert cdb[15] == 0 cdb = r.unmarshall_cdb(cdb) assert cdb['opcode'] == s.device.opcodes.READ_16.value assert cdb['rdprotect'] == 2 assert cdb['dpo'] == 1 assert cdb['fua'] == 1 assert cdb['rarc'] == 1 assert cdb['lba'] == 1024 assert cdb['group'] == 19 assert cdb['tl'] == 27 d = Read16.unmarshall_cdb(Read16.marshall_cdb(cdb)) assert d == cdb
def main(): dev = MockWrite12() dev.opcodes = sbc s = SCSI(dev) s.blocksize = 512 data = bytearray(27 * 512) w = s.write12(1024, 27, data) cdb = w.cdb assert cdb[0] == s.device.opcodes.WRITE_12.value assert cdb[1] == 0 assert scsi_ba_to_int(cdb[2:6]) == 1024 assert scsi_ba_to_int(cdb[6:10]) == 27 assert cdb[10] == 0 assert cdb[11] == 0 cdb = w.unmarshall_cdb(cdb) assert cdb['opcode'] == s.device.opcodes.WRITE_12.value assert cdb['wrprotect'] == 0 assert cdb['dpo'] == 0 assert cdb['fua'] == 0 assert cdb['lba'] == 1024 assert cdb['group'] == 0 assert cdb['tl'] == 27 d = Write12.unmarshall_cdb(Write12.marshall_cdb(cdb)) assert d == cdb w = s.write12(65536, 27, data, wrprotect=2, dpo=1, fua=1, group=19) cdb = w.cdb assert cdb[0] == s.device.opcodes.WRITE_12.value assert cdb[1] == 0x58 assert scsi_ba_to_int(cdb[2:6]) == 65536 assert scsi_ba_to_int(cdb[6:10]) == 27 assert cdb[10] == 0x13 assert cdb[11] == 0 cdb = w.unmarshall_cdb(cdb) assert cdb['opcode'] == s.device.opcodes.WRITE_12.value assert cdb['wrprotect'] == 2 assert cdb['dpo'] == 1 assert cdb['fua'] == 1 assert cdb['lba'] == 65536 assert cdb['group'] == 19 assert cdb['tl'] == 27 d = Write12.unmarshall_cdb(Write12.marshall_cdb(cdb)) assert d == cdb
def main(): dev = MockWriteSame10() dev.opcodes = sbc s = SCSI(dev) s.blocksize = 512 data = bytearray(512) w = s.writesame10(1024, 27, data) cdb = w.cdb assert cdb[0] == s.device.opcodes.WRITE_SAME_10.value assert cdb[1] == 0 assert scsi_ba_to_int(cdb[2:6]) == 1024 assert cdb[6] == 0 assert scsi_ba_to_int(cdb[7:9]) == 27 assert cdb[9] == 0 cdb = w.unmarshall_cdb(cdb) assert cdb['opcode'] == s.device.opcodes.WRITE_SAME_10.value assert cdb['wrprotect'] == 0 assert cdb['anchor'] == 0 assert cdb['unmap'] == 0 assert cdb['lba'] == 1024 assert cdb['group'] == 0 assert cdb['nb'] == 27 d = WriteSame10.unmarshall_cdb(WriteSame10.marshall_cdb(cdb)) assert d == cdb w = s.writesame10(65536, 27, data, wrprotect=4, anchor=1, group=19) cdb = w.cdb assert cdb[0] == s.device.opcodes.WRITE_SAME_10.value assert cdb[1] == 0x90 assert scsi_ba_to_int(cdb[2:6]) == 65536 assert cdb[6] == 0x13 assert scsi_ba_to_int(cdb[7:9]) == 27 assert cdb[9] == 0 cdb = w.unmarshall_cdb(cdb) assert cdb['opcode'] == s.device.opcodes.WRITE_SAME_10.value assert cdb['wrprotect'] == 4 assert cdb['anchor'] == 1 assert cdb['unmap'] == 0 assert cdb['lba'] == 65536 assert cdb['group'] == 19 assert cdb['nb'] == 27 d = WriteSame10.unmarshall_cdb(WriteSame10.marshall_cdb(cdb)) assert d == cdb w = s.writesame10(65536, 27, data, wrprotect=4, unmap=1) cdb = w.cdb assert cdb[0] == s.device.opcodes.WRITE_SAME_10.value assert cdb[1] == 0x88 assert scsi_ba_to_int(cdb[2:6]) == 65536 assert cdb[6] == 0 assert scsi_ba_to_int(cdb[7:9]) == 27 assert cdb[9] == 0 cdb = w.unmarshall_cdb(cdb) assert cdb['opcode'] == s.device.opcodes.WRITE_SAME_10.value assert cdb['wrprotect'] == 4 assert cdb['anchor'] == 0 assert cdb['unmap'] == 1 assert cdb['lba'] == 65536 assert cdb['group'] == 0 assert cdb['nb'] == 27 d = WriteSame10.unmarshall_cdb(WriteSame10.marshall_cdb(cdb)) assert d == cdb
def main(): dev = MockWriteSame16() dev.opcodes = sbc s = SCSI(dev) s.blocksize = 512 data = bytearray(512) w = s.writesame16(1024, 27, data) cdb = w.cdb assert cdb[0] == s.device.opcodes.WRITE_SAME_16.value assert cdb[1] == 0 assert scsi_ba_to_int(cdb[2:10]) == 1024 assert scsi_ba_to_int(cdb[10:14]) == 27 assert cdb[14] == 0 assert cdb[15] == 0 cdb = w.unmarshall_cdb(cdb) assert cdb['opcode'] == s.device.opcodes.WRITE_SAME_16.value assert cdb['wrprotect'] == 0 assert cdb['anchor'] == 0 assert cdb['unmap'] == 0 assert cdb['ndob'] == 0 assert cdb['lba'] == 1024 assert cdb['group'] == 0 assert cdb['nb'] == 27 d = WriteSame16.unmarshall_cdb(WriteSame16.marshall_cdb(cdb)) assert d == cdb w = s.writesame16(65536, 27, data, wrprotect=4, anchor=1, group=19) cdb = w.cdb assert cdb[0] == s.device.opcodes.WRITE_SAME_16.value assert cdb[1] == 0x90 assert scsi_ba_to_int(cdb[2:10]) == 65536 assert scsi_ba_to_int(cdb[10:14]) == 27 assert cdb[14] == 0x13 assert cdb[15] == 0 cdb = w.unmarshall_cdb(cdb) assert cdb['opcode'] == s.device.opcodes.WRITE_SAME_16.value assert cdb['wrprotect'] == 4 assert cdb['anchor'] == 1 assert cdb['unmap'] == 0 assert cdb['ndob'] == 0 assert cdb['lba'] == 65536 assert cdb['group'] == 19 assert cdb['nb'] == 27 d = WriteSame16.unmarshall_cdb(WriteSame16.marshall_cdb(cdb)) assert d == cdb w = s.writesame16(65536, 27, data, wrprotect=4, unmap=1, ndob=1) cdb = w.cdb assert cdb[0] == s.device.opcodes.WRITE_SAME_16.value assert cdb[1] == 0x89 assert scsi_ba_to_int(cdb[2:10]) == 65536 assert scsi_ba_to_int(cdb[10:14]) == 27 assert cdb[14] == 0 assert cdb[15] == 0 cdb = w.unmarshall_cdb(cdb) assert cdb['opcode'] == s.device.opcodes.WRITE_SAME_16.value assert cdb['wrprotect'] == 4 assert cdb['anchor'] == 0 assert cdb['unmap'] == 1 assert cdb['ndob'] == 1 assert cdb['lba'] == 65536 assert cdb['group'] == 0 assert cdb['nb'] == 27 d = WriteSame16.unmarshall_cdb(WriteSame16.marshall_cdb(cdb)) assert d == cdb