Exemple #1
0
def main():
    dev = MockInquiryStandard()
    dev.opcodes = sbc
    s = SCSI(dev)
    i = s.inquiry().result
    assert i['peripheral_qualifier'] == 1
    assert i['peripheral_device_type'] == 5
    assert i['rmb'] == 1
    assert i['version'] == 7
    assert i['normaca'] == 1
    assert i['hisup'] == 0
    assert i['response_data_format'] == 3
    assert i['additional_length'] == 64
    assert i['sccs'] == 1
    assert i['acc'] == 0
    assert i['tpgs'] == 3
    assert i['3pc'] == 1
    assert i['protect'] == 1
    assert i['encserv'] == 1
    assert i['vs'] == 1
    assert i['multip'] == 1
    assert i['addr16'] == 1
    assert i['wbus16'] == 1
    assert i['sync'] == 1
    assert i['cmdque'] == 1
    assert i['vs2'] == 1
    assert i['clocking'] == 2
    assert i['qas'] == 0
    assert i['ius'] == 1
    assert i['t10_vendor_identification'].decode("utf-8") == 'abcdefgh'
    assert i['product_identification'].decode("utf-8") == 'iiiiiiiijjjjjjjj'
    assert i['product_revision_level'].decode("utf-8") == 'revn'

    d = Inquiry.unmarshall_datain(Inquiry.marshall_datain(i))
    assert d == i

    dev = MockLBP()
    dev.opcodes = sbc
    s = SCSI(dev)
    i = s.inquiry(evpd=1, page_code=INQUIRY.VPD.LOGICAL_BLOCK_PROVISIONING).result
    assert i['peripheral_qualifier'] == 0
    assert i['peripheral_qualifier'] == 0
    assert i['threshold_exponent'] == 0x12
    assert i['lbpu'] == 1
    assert i['lpbws'] == 1
    assert i['lbpws10'] == 1
    assert i['lbprz'] == 1
    assert i['anc_sup'] == 1
    assert i['dp'] == 1
    assert i['provisioning_type'] == INQUIRY.PROVISIONING_TYPE.THIN_PROVISIONED

    d = Inquiry.unmarshall_datain(Inquiry.marshall_datain(i), evpd=1)
    assert d == i

    dev = MockUSN()
    dev.opcodes = sbc
    s = SCSI(dev)
    i = s.inquiry(evpd=1, page_code=INQUIRY.VPD.UNIT_SERIAL_NUMBER).result
    assert i['peripheral_qualifier'] == 0
    assert i['peripheral_qualifier'] == 0
    assert i['unit_serial_number'].decode("utf-8") == "ABCD"

    d = Inquiry.unmarshall_datain(Inquiry.marshall_datain(i), evpd=1)
    assert d == i

    dev = MockReferrals()
    dev.opcodes = sbc
    s = SCSI(dev)
    i = s.inquiry(evpd=1, page_code=INQUIRY.VPD.REFERRALS).result
    assert i['peripheral_qualifier'] == 0
    assert i['peripheral_qualifier'] == 0
    assert i['user_data_segment_size'] == 23
    assert i['user_data_segment_multiplier'] == 37

    d = Inquiry.unmarshall_datain(Inquiry.marshall_datain(i), evpd=1)
    assert d == i

    dev = MockExtendedInquiry()
    dev.opcodes = sbc
    s = SCSI(dev)
    i = s.inquiry(evpd=1, page_code=INQUIRY.VPD.EXTENDED_INQUIRY_DATA).result
    assert i['peripheral_qualifier'] == 0
    assert i['peripheral_qualifier'] == 0
    assert i['activate_microcode'] == 1
    assert i['spt'] == 2
    assert i['grd_chk'] == 1
    assert i['app_chk'] == 1
    assert i['ref_chk'] == 1
    assert i['uask_sup'] == 1
    assert i['group_sup'] == 1
    assert i['prior_sup'] == 0
    assert i['headsup'] == 0
    assert i['ordsup'] == 1
    assert i['simpsup'] == 1
    assert i['wu_sup'] == 0
    assert i['crd_sup'] == 1
    assert i['nv_sup'] == 0
    assert i['v_sup'] == 1
    assert i['p_i_i_sup'] == 1
    assert i['luiclr'] == 1
    assert i['r_sup'] == 1
    assert i['cbcs'] == 1
    assert i['multi_it_nexus_microcode_download'] == 3
    assert i['extended_self_test_completion_minutes'] == 15
    assert i['poa_sup'] == 1
    assert i['hra_sup'] == 1
    assert i['vsa_sup'] == 1
    assert i['maximum_supported_sense_data_length'] == 5

    d = Inquiry.unmarshall_datain(Inquiry.marshall_datain(i), evpd=1)
    assert d == i

    dev = MockDevId()
    dev.opcodes = sbc
    s = SCSI(dev)
    i = s.inquiry(evpd=1, page_code=INQUIRY.VPD.DEVICE_IDENTIFICATION).result
    assert i['peripheral_qualifier'] == 0
    assert i['peripheral_qualifier'] == 0
    dd = i['designator_descriptors']
    assert len(dd) == 2
    # T10 designation descriptor
    assert dd[0]['association'] == 2
    assert dd[0]['code_set'] == 2
    assert dd[0]['designator_length'] == 8
    assert dd[0]['designator_type'] == 1
    assert dd[0]['piv'] == 1
    assert dd[0]['protocol_identifier'] == 5
    assert dd[0]['designator']['t10_vendor_id'].decode("utf-8") == 'Test T10'
    assert dd[0]['designator']['vendor_specific_id'].decode("utf-8") == ''
    # EUI-64 designation descriptor
    assert dd[1]['association'] == 2
    assert dd[1]['code_set'] == 1
    assert dd[1]['designator_length'] == 8
    assert dd[1]['designator_type'] == 2
    assert dd[1]['piv'] == 0
    assert not hasattr(dd[1], 'protocol_identifier')
    assert dd[1]['designator']['ieee_company_id'] == 0x112233
    assert dd[1]['designator']['vendor_specific_extension_id'].decode("utf-8") == 'abcde'

    d = Inquiry.unmarshall_datain(Inquiry.marshall_datain(i), evpd=1)
    assert d == i
def main():
    with MockSCSI(MockInquiryStandard(sbc)) as s:
        cmd = s.inquiry()
        i = cmd.result
        assert i['peripheral_qualifier'] == 1
        assert i['peripheral_device_type'] == 5
        assert i['rmb'] == 1
        assert i['version'] == 7
        assert i['normaca'] == 1
        assert i['hisup'] == 0
        assert i['response_data_format'] == 3
        assert i['additional_length'] == 64
        assert i['sccs'] == 1
        assert i['acc'] == 0
        assert i['tpgs'] == 3
        assert i['3pc'] == 1
        assert i['protect'] == 1
        assert i['encserv'] == 1
        assert i['vs'] == 1
        assert i['multip'] == 1
        assert i['addr16'] == 1
        assert i['wbus16'] == 1
        assert i['sync'] == 1
        assert i['cmdque'] == 1
        assert i['vs2'] == 1
        assert i['clocking'] == 2
        assert i['qas'] == 0
        assert i['ius'] == 1
        assert i['t10_vendor_identification'].decode("utf-8") == 'abcdefgh'
        assert i['product_identification'].decode("utf-8") == 'iiiiiiiijjjjjjjj'
        assert i['product_revision_level'].decode("utf-8") == 'revn'

        d = Inquiry.unmarshall_datain(Inquiry.marshall_datain(i))
        assert d == i

    with MockSCSI(MockLBP(sbc)) as s:
        cmd = s.inquiry(evpd=1, page_code=INQUIRY.VPD.LOGICAL_BLOCK_PROVISIONING)
        i = cmd.result
        assert i['peripheral_qualifier'] == 0
        assert i['peripheral_qualifier'] == 0
        assert i['threshold_exponent'] == 0x12
        assert i['lbpu'] == 1
        assert i['lpbws'] == 1
        assert i['lbpws10'] == 1
        assert i['lbprz'] == 1
        assert i['anc_sup'] == 1
        assert i['dp'] == 1
        assert i['provisioning_type'] == INQUIRY.PROVISIONING_TYPE.THIN_PROVISIONED

        d = Inquiry.unmarshall_datain(Inquiry.marshall_datain(i), evpd=1)
        assert d == i

    with MockSCSI(MockUSN(sbc)) as s:
        cmd = s.inquiry(evpd=1, page_code=INQUIRY.VPD.UNIT_SERIAL_NUMBER)
        i = cmd.result
        assert i['peripheral_qualifier'] == 0
        assert i['peripheral_qualifier'] == 0
        assert i['unit_serial_number'].decode("utf-8") == "ABCD"

        d = Inquiry.unmarshall_datain(Inquiry.marshall_datain(i), evpd=1)
        assert d == i

    with MockSCSI(MockReferrals(sbc)) as s:
        cmd = s.inquiry(evpd=1, page_code=INQUIRY.VPD.REFERRALS)
        i = cmd.result
        assert i['peripheral_qualifier'] == 0
        assert i['peripheral_qualifier'] == 0
        assert i['user_data_segment_size'] == 23
        assert i['user_data_segment_multiplier'] == 37

        d = Inquiry.unmarshall_datain(Inquiry.marshall_datain(i), evpd=1)
        assert d == i

    with MockSCSI(MockExtendedInquiry(sbc)) as s:
        cmd = s.inquiry(evpd=1, page_code=INQUIRY.VPD.EXTENDED_INQUIRY_DATA)
        i = cmd.result
        assert i['peripheral_qualifier'] == 0
        assert i['peripheral_qualifier'] == 0
        assert i['activate_microcode'] == 1
        assert i['spt'] == 2
        assert i['grd_chk'] == 1
        assert i['app_chk'] == 1
        assert i['ref_chk'] == 1
        assert i['uask_sup'] == 1
        assert i['group_sup'] == 1
        assert i['prior_sup'] == 0
        assert i['headsup'] == 0
        assert i['ordsup'] == 1
        assert i['simpsup'] == 1
        assert i['wu_sup'] == 0
        assert i['crd_sup'] == 1
        assert i['nv_sup'] == 0
        assert i['v_sup'] == 1
        assert i['p_i_i_sup'] == 1
        assert i['luiclr'] == 1
        assert i['r_sup'] == 1
        assert i['cbcs'] == 1
        assert i['multi_it_nexus_microcode_download'] == 3
        assert i['extended_self_test_completion_minutes'] == 15
        assert i['poa_sup'] == 1
        assert i['hra_sup'] == 1
        assert i['vsa_sup'] == 1
        assert i['maximum_supported_sense_data_length'] == 5

        d = Inquiry.unmarshall_datain(Inquiry.marshall_datain(i), evpd=1)
        assert d == i

        s.device = MockDevId(sbc)
        cmd = s.inquiry(evpd=1, page_code=INQUIRY.VPD.DEVICE_IDENTIFICATION)
        i = cmd.result
        assert i['peripheral_qualifier'] == 0
        assert i['peripheral_qualifier'] == 0
        dd = i['designator_descriptors']
        assert len(dd) == 2
        # T10 designation descriptor
        assert dd[0]['association'] == 2
        assert dd[0]['code_set'] == 2
        assert dd[0]['designator_length'] == 8
        assert dd[0]['designator_type'] == 1
        assert dd[0]['piv'] == 1
        assert dd[0]['protocol_identifier'] == 5
        assert dd[0]['designator']['t10_vendor_id'].decode("utf-8") == 'Test T10'
        assert dd[0]['designator']['vendor_specific_id'].decode("utf-8") == ''
        # EUI-64 designation descriptor
        assert dd[1]['association'] == 2
        assert dd[1]['code_set'] == 1
        assert dd[1]['designator_length'] == 8
        assert dd[1]['designator_type'] == 2
        assert dd[1]['piv'] == 0
        assert not hasattr(dd[1], 'protocol_identifier')
        assert dd[1]['designator']['ieee_company_id'] == 0x112233
        assert dd[1]['designator']['vendor_specific_extension_id'].decode("utf-8") == 'abcde'

        d = Inquiry.unmarshall_datain(Inquiry.marshall_datain(i), evpd=1)
        assert d == i
    def test_main(self):
        with MockSCSI(MockInquiryStandard(sbc)) as s:
            cmd = s.inquiry()
            i = cmd.result
            self.assertEqual(i['peripheral_qualifier'], 1)
            self.assertEqual(i['peripheral_device_type'], 5)
            self.assertEqual(i['rmb'], 1)
            self.assertEqual(i['version'], 7)
            self.assertEqual(i['normaca'], 1)
            self.assertEqual(i['hisup'], 0)
            self.assertEqual(i['response_data_format'], 3)
            self.assertEqual(i['additional_length'], 64)
            self.assertEqual(i['sccs'], 1)
            self.assertEqual(i['acc'], 0)
            self.assertEqual(i['tpgs'], 3)
            self.assertEqual(i['3pc'], 1)
            self.assertEqual(i['protect'], 1)
            self.assertEqual(i['encserv'], 1)
            self.assertEqual(i['vs'], 1)
            self.assertEqual(i['multip'], 1)
            self.assertEqual(i['addr16'], 1)
            self.assertEqual(i['wbus16'], 1)
            self.assertEqual(i['sync'], 1)
            self.assertEqual(i['cmdque'], 1)
            self.assertEqual(i['vs2'], 1)
            self.assertEqual(i['clocking'], 2)
            self.assertEqual(i['qas'], 0)
            self.assertEqual(i['ius'], 1)
            self.assertEqual(i['t10_vendor_identification'].decode("utf-8"), 'abcdefgh')
            self.assertEqual(i['product_identification'].decode("utf-8"), 'iiiiiiiijjjjjjjj')
            self.assertEqual(i['product_revision_level'].decode("utf-8"), 'revn')

            d = Inquiry.unmarshall_datain(Inquiry.marshall_datain(i))
            self.assertEqual(d, i)

        with MockSCSI(MockLBP(sbc)) as s:
            cmd = s.inquiry(evpd=1, page_code=INQUIRY.VPD.LOGICAL_BLOCK_PROVISIONING)
            i = cmd.result
            self.assertEqual(i['peripheral_qualifier'], 0)
            self.assertEqual(i['peripheral_qualifier'], 0)
            self.assertEqual(i['threshold_exponent'], 0x12)
            self.assertEqual(i['lbpu'], 1)
            self.assertEqual(i['lpbws'], 1)
            self.assertEqual(i['lbpws10'], 1)
            self.assertEqual(i['lbprz'], 1)
            self.assertEqual(i['anc_sup'], 1)
            self.assertEqual(i['dp'], 1)
            self.assertEqual(i['provisioning_type'], INQUIRY.PROVISIONING_TYPE.THIN_PROVISIONED)

            d = Inquiry.unmarshall_datain(Inquiry.marshall_datain(i), evpd=1)
            self.assertEqual(d, i)

        with MockSCSI(MockUSN(sbc)) as s:
            cmd = s.inquiry(evpd=1, page_code=INQUIRY.VPD.UNIT_SERIAL_NUMBER)
            i = cmd.result
            self.assertEqual(i['peripheral_qualifier'], 0)
            self.assertEqual(i['peripheral_qualifier'], 0)
            self.assertEqual(i['unit_serial_number'].decode("utf-8"), "ABCD")

            d = Inquiry.unmarshall_datain(Inquiry.marshall_datain(i), evpd=1)
            self.assertEqual(d, i)

        with MockSCSI(MockReferrals(sbc)) as s:
            cmd = s.inquiry(evpd=1, page_code=INQUIRY.VPD.REFERRALS)
            i = cmd.result
            self.assertEqual(i['peripheral_qualifier'], 0)
            self.assertEqual(i['peripheral_qualifier'], 0)
            self.assertEqual(i['user_data_segment_size'], 23)
            self.assertEqual(i['user_data_segment_multiplier'], 37)

            d = Inquiry.unmarshall_datain(Inquiry.marshall_datain(i), evpd=1)
            self.assertEqual(d, i)

        with MockSCSI(MockExtendedInquiry(sbc)) as s:
            cmd = s.inquiry(evpd=1, page_code=INQUIRY.VPD.EXTENDED_INQUIRY_DATA)
            i = cmd.result
            self.assertEqual(i['peripheral_qualifier'], 0)
            self.assertEqual(i['peripheral_qualifier'], 0)
            self.assertEqual(i['activate_microcode'], 1)
            self.assertEqual(i['spt'], 2)
            self.assertEqual(i['grd_chk'], 1)
            self.assertEqual(i['app_chk'], 1)
            self.assertEqual(i['ref_chk'], 1)
            self.assertEqual(i['uask_sup'], 1)
            self.assertEqual(i['group_sup'], 1)
            self.assertEqual(i['prior_sup'], 0)
            self.assertEqual(i['headsup'], 0)
            self.assertEqual(i['ordsup'], 1)
            self.assertEqual(i['simpsup'], 1)
            self.assertEqual(i['wu_sup'], 0)
            self.assertEqual(i['crd_sup'], 1)
            self.assertEqual(i['nv_sup'], 0)
            self.assertEqual(i['v_sup'], 1)
            self.assertEqual(i['p_i_i_sup'], 1)
            self.assertEqual(i['luiclr'], 1)
            self.assertEqual(i['r_sup'], 1)
            self.assertEqual(i['cbcs'], 1)
            self.assertEqual(i['multi_it_nexus_microcode_download'], 3)
            self.assertEqual(i['extended_self_test_completion_minutes'], 15)
            self.assertEqual(i['poa_sup'], 1)
            self.assertEqual(i['hra_sup'], 1)
            self.assertEqual(i['vsa_sup'], 1)
            self.assertEqual(i['maximum_supported_sense_data_length'], 5)

            d = Inquiry.unmarshall_datain(Inquiry.marshall_datain(i), evpd=1)
            self.assertEqual(d, i)

            s.device = MockDevId(sbc)
            cmd = s.inquiry(evpd=1, page_code=INQUIRY.VPD.DEVICE_IDENTIFICATION)
            i = cmd.result
            self.assertEqual(i['peripheral_qualifier'], 0)
            self.assertEqual(i['peripheral_qualifier'], 0)
            dd = i['designator_descriptors']
            self.assertEqual(len(dd), 2)
            # T10 designation descriptor
            self.assertEqual(dd[0]['association'], 2)
            self.assertEqual(dd[0]['code_set'], 2)
            self.assertEqual(dd[0]['designator_length'], 8)
            self.assertEqual(dd[0]['designator_type'], 1)
            self.assertEqual(dd[0]['piv'], 1)
            self.assertEqual(dd[0]['protocol_identifier'], 5)
            self.assertEqual(dd[0]['designator']['t10_vendor_id'].decode("utf-8"), 'Test T10')
            self.assertEqual(dd[0]['designator']['vendor_specific_id'].decode("utf-8"), '')
            # EUI-64 designation descriptor
            self.assertEqual(dd[1]['association'], 2)
            self.assertEqual(dd[1]['code_set'], 1)
            self.assertEqual(dd[1]['designator_length'], 8)
            self.assertEqual(dd[1]['designator_type'], 2)
            self.assertEqual(dd[1]['piv'], 0)
            self.assertFalse(hasattr(dd[1], 'protocol_identifier'))
            self.assertEqual(dd[1]['designator']['ieee_company_id'], 0x112233)
            self.assertEqual(dd[1]['designator']['vendor_specific_extension_id'].decode("utf-8"), 'abcde')

            d = Inquiry.unmarshall_datain(Inquiry.marshall_datain(i), evpd=1)
            self.assertEqual(d, i)