Exemple #1
0
    def test_sapdiag_atoms(self):
        """Test dissection of Diag Items and Dynt Atom Items"""
        diag_items = SAPDiagItems(read_data_file('nw_703_login_screen_decompressed.data'))
        diag_packet = SAPDiag(message=diag_items.message)
        diag_atoms = diag_packet.get_item(0x12, 0x09, 0x02)

        for atom in diag_atoms:
            for atom_item in atom.item_value.items:
                self.assertIsInstance(atom_item, SAPDiagDyntAtomItem)
Exemple #2
0
    def test_sapdiag_atoms(self):
        """Test dissection of Diag Items and Dynt Atom Items"""
        diag_items = SAPDiagItems(read_data_file('nw_703_login_screen_decompressed.data'))
        diag_packet = SAPDiag(message=diag_items.message)
        diag_atoms = diag_packet.get_item(0x12, 0x09, 0x02)

        for atom in diag_atoms:
            for atom_item in atom.item_value.items:
                self.assertIsInstance(atom_item, SAPDiagDyntAtomItem)
Exemple #3
0
    def test_sapdiag_items_lookup(self):
        """Test lookup and filtering of SAPDiagItems inside a SAPDiag
        packet"""
        sapdiag = SAPDiag()

        sapdiag_ses_item = SAPDiagItem(item_type="SES")
        sapdiag.message.append(sapdiag_ses_item)

        sapdiag_appl_item = SAPDiagItem(item_type="APPL",
                                        item_id="ST_USER",
                                        item_sid="RFC_PARENT_UUID")
        sapdiag.message.append(sapdiag_appl_item)

        self.assertIn(sapdiag_ses_item, sapdiag.get_item(0x1))
        self.assertIn(sapdiag_ses_item, sapdiag.get_item("SES"))
        self.assertNotIn(sapdiag_ses_item, sapdiag.get_item(0x10))
        self.assertNotIn(sapdiag_ses_item, sapdiag.get_item("APPL"))

        self.assertIn(sapdiag_appl_item, sapdiag.get_item(0x10))
        self.assertIn(sapdiag_appl_item, sapdiag.get_item("APPL"))
        self.assertIn(sapdiag_appl_item, sapdiag.get_item("APPL", 0x04))
        self.assertIn(sapdiag_appl_item, sapdiag.get_item("APPL", "ST_USER"))
        self.assertIn(sapdiag_appl_item, sapdiag.get_item("APPL", 0x04, 0x10))
        self.assertIn(sapdiag_appl_item,
                      sapdiag.get_item("APPL", "ST_USER", 0x10))
        self.assertIn(sapdiag_appl_item,
                      sapdiag.get_item("APPL", "ST_USER", "RFC_PARENT_UUID"))
        self.assertNotIn(sapdiag_appl_item, sapdiag.get_item(0x1))
        self.assertNotIn(sapdiag_appl_item, sapdiag.get_item("APPL4"))
        self.assertNotIn(sapdiag_appl_item, sapdiag.get_item("APPL", 0x06))
        self.assertNotIn(sapdiag_appl_item,
                         sapdiag.get_item("APPL", "ST_R3INFO"))
        self.assertNotIn(sapdiag_appl_item,
                         sapdiag.get_item("APPL", 0x04, 0x02))
        self.assertNotIn(sapdiag_appl_item,
                         sapdiag.get_item("APPL", "ST_USER", 0x02))
        self.assertNotIn(sapdiag_appl_item,
                         sapdiag.get_item("APPL", "ST_USER", "CONNECT"))

        self.assertListEqual([sapdiag_ses_item, sapdiag_appl_item],
                             sapdiag.get_item([0x01, 0x10]))
        self.assertListEqual([sapdiag_ses_item, sapdiag_appl_item],
                             sapdiag.get_item(["SES", "APPL"]))
        self.assertIn(sapdiag_appl_item,
                      sapdiag.get_item(["APPL"], [0x04, 0x06]))
        self.assertIn(sapdiag_appl_item,
                      sapdiag.get_item(["APPL"], ["ST_USER", "ST_R3INFO"]))
        self.assertIn(sapdiag_appl_item,
                      sapdiag.get_item(["APPL"], 0x04, [0x02, 0x10]))
        self.assertIn(
            sapdiag_appl_item,
            sapdiag.get_item(["APPL"], "ST_USER",
                             ["RFC_PARENT_UUID", "CONNECT"]))
        self.assertNotIn(sapdiag_appl_item, sapdiag.get_item(["SES", "APPL4"]))
        self.assertNotIn(sapdiag_appl_item,
                         sapdiag.get_item(["APPL"], ["ST_R3INFO"]))
        self.assertNotIn(sapdiag_appl_item,
                         sapdiag.get_item(["APPL"], ["ST_USER"], ["CONNECT"]))

        # Insert a wrong item and observe that the lookup still works
        sapdiag.message.append(Raw("\x00" * 10))
        self.assertIn(sapdiag_ses_item, sapdiag.get_item("SES"))
        self.assertIn(
            sapdiag_appl_item,
            sapdiag.get_item(["APPL"], "ST_USER",
                             ["RFC_PARENT_UUID", "CONNECT"]))
Exemple #4
0
    def test_sapdiag_items_lookup(self):
        """Test lookup and filtering of SAPDiagItems inside a SAPDiag
        packet"""
        sapdiag = SAPDiag()

        sapdiag_ses_item = SAPDiagItem(item_type="SES")
        sapdiag.message.append(sapdiag_ses_item)

        sapdiag_appl_item = SAPDiagItem(item_type="APPL",
                                        item_id="ST_USER",
                                        item_sid="RFC_PARENT_UUID")
        sapdiag.message.append(sapdiag_appl_item)

        self.assertIn(sapdiag_ses_item, sapdiag.get_item(0x1))
        self.assertIn(sapdiag_ses_item, sapdiag.get_item("SES"))
        self.assertNotIn(sapdiag_ses_item, sapdiag.get_item(0x10))
        self.assertNotIn(sapdiag_ses_item, sapdiag.get_item("APPL"))

        self.assertIn(sapdiag_appl_item, sapdiag.get_item(0x10))
        self.assertIn(sapdiag_appl_item, sapdiag.get_item("APPL"))
        self.assertIn(sapdiag_appl_item, sapdiag.get_item("APPL", 0x04))
        self.assertIn(sapdiag_appl_item, sapdiag.get_item("APPL", "ST_USER"))
        self.assertIn(sapdiag_appl_item, sapdiag.get_item("APPL", 0x04, 0x10))
        self.assertIn(sapdiag_appl_item, sapdiag.get_item("APPL", "ST_USER", 0x10))
        self.assertIn(sapdiag_appl_item, sapdiag.get_item("APPL", "ST_USER", "RFC_PARENT_UUID"))
        self.assertNotIn(sapdiag_appl_item, sapdiag.get_item(0x1))
        self.assertNotIn(sapdiag_appl_item, sapdiag.get_item("APPL4"))
        self.assertNotIn(sapdiag_appl_item, sapdiag.get_item("APPL", 0x06))
        self.assertNotIn(sapdiag_appl_item, sapdiag.get_item("APPL", "ST_R3INFO"))
        self.assertNotIn(sapdiag_appl_item, sapdiag.get_item("APPL", 0x04, 0x02))
        self.assertNotIn(sapdiag_appl_item, sapdiag.get_item("APPL", "ST_USER", 0x02))
        self.assertNotIn(sapdiag_appl_item, sapdiag.get_item("APPL", "ST_USER", "CONNECT"))

        self.assertListEqual([sapdiag_ses_item, sapdiag_appl_item], sapdiag.get_item([0x01, 0x10]))
        self.assertListEqual([sapdiag_ses_item, sapdiag_appl_item], sapdiag.get_item(["SES", "APPL"]))
        self.assertIn(sapdiag_appl_item, sapdiag.get_item(["APPL"], [0x04, 0x06]))
        self.assertIn(sapdiag_appl_item, sapdiag.get_item(["APPL"], ["ST_USER", "ST_R3INFO"]))
        self.assertIn(sapdiag_appl_item, sapdiag.get_item(["APPL"], 0x04, [0x02, 0x10]))
        self.assertIn(sapdiag_appl_item, sapdiag.get_item(["APPL"], "ST_USER", ["RFC_PARENT_UUID", "CONNECT"]))
        self.assertNotIn(sapdiag_appl_item, sapdiag.get_item(["SES", "APPL4"]))
        self.assertNotIn(sapdiag_appl_item, sapdiag.get_item(["APPL"], ["ST_R3INFO"]))
        self.assertNotIn(sapdiag_appl_item, sapdiag.get_item(["APPL"], ["ST_USER"], ["CONNECT"]))

        # Insert a wrong item and observe that the lookup still works
        sapdiag.message.append(Raw("\x00" * 10))
        self.assertIn(sapdiag_ses_item, sapdiag.get_item("SES"))
        self.assertIn(sapdiag_appl_item, sapdiag.get_item(["APPL"], "ST_USER", ["RFC_PARENT_UUID", "CONNECT"]))