Пример #1
0
 def testOnlyHashError(self):
     noc_rg = init()
     filename = "tests/resources/noerror.results"
     module_dict = {
         'xbar': 'peninsula',
         'arbiter': '134771791c89f5bbd306e5156023e1e19409b73f',
         'lbdr': '8ca292256f6e056fe592ee5fcfa84b9e39e5c8bb',
         'fifo': '1209a2e8847e82d48828b5e5fe336d19de9d2816'
     }
     errornous, results = evaluate_file(noc_rg,
                                        filename,
                                        module_reference=module_dict,
                                        print_verbose=True)
     self.assertEqual(len(errornous), 0)
     self.assertEqual(len(results), 1)
     res: Result = results[0]
     self.assertFalse(results[0].errornous
                      or results[0].connection_counter_invalid
                      or results[0].unexpected_len_sent
                      or results[0].unexpected_len_recv)
     self.assertEqual(results[0].recv_invalid, 0)
     self.assertEqual(results[0].sents_invalid, 0)
     self.assertEqual(results[0].misrouted_recv, 0)
     self.assertEqual(results[0].misrouted_sent, 0)
     self.assertEqual(results[0].len_recv, 509)
     self.assertEqual(results[0].len_sent, 509)
     self.assertTrue(results[0].is_valid())
     self.assertFalse(res.vcd_of_module_equal['xbar'])
     self.assertTrue(res.vcd_of_module_equal['arbiter'])
     self.assertTrue(res.vcd_of_module_equal['lbdr'])
     self.assertTrue(res.vcd_of_module_equal['fifo'])
Пример #2
0
 def testFifoHashesSeperated(self):
     noc_rg = init()
     filename = "tests/resources/fifo_hashes_seperated.results"
     module_dict = {
         'xbar': '178e187dbfd6824f350aa98339998107a31d2382',
         'arbiter': '6845bd7aa42376d81ea1839cd1476f006f9412ca',
         'lbdr': '06d449e2fc9a95df0719ef26a802a5c7947ff6bc',
         'fifo': '9c4b2ee0622fb8cfb8d4b24c554da1c21688cfa5',
         'fifoc': '0b1c5bae9152c6dfbfec730e12bdf2641e8684ee',
         'fifod': 'fc7f0c5dc1980d2abd8e4a68d19096af0aacf71f'
     }
     errornous, results = evaluate_file(noc_rg,
                                        filename,
                                        module_reference=module_dict,
                                        print_verbose=True)
     self.assertEqual(len(errornous), 0)
     self.assertEqual(len(results), 1)
     res: Result = results[0]
     self.assertFalse(results[0].errornous
                      or results[0].connection_counter_invalid
                      or results[0].unexpected_len_sent
                      or results[0].unexpected_len_recv)
     self.assertEqual(results[0].recv_invalid, 0)
     self.assertEqual(results[0].sents_invalid, 0)
     self.assertEqual(results[0].misrouted_recv, 0)
     self.assertEqual(results[0].misrouted_sent, 0)
     self.assertEqual(results[0].len_recv, 509)
     self.assertEqual(results[0].len_sent, 509)
     self.assertTrue(results[0].is_valid())
     self.assertTrue(res.vcd_of_module_equal['xbar'])
     self.assertTrue(res.vcd_of_module_equal['arbiter'])
     self.assertTrue(res.vcd_of_module_equal['lbdr'])
     self.assertTrue(res.vcd_of_module_equal['fifo'])
     self.assertEqual(res.guessComponent(), 'nofault')
Пример #3
0
 def testChangedFlitType(self):
     '''
     Changed the Flittype of a received flit from body to tail, so afterwards there will be body flits
     :return:
     '''
     noc_rg = init()
     filename = "tests/resources/changedflittype.results"
     errornous, results = evaluate_file(noc_rg, filename)
     self.assertFalse(results[0].is_valid())
     self.assertEqual(len(errornous), 0)
     self.assertEqual(len(results), 1)
     self.assertFalse(results[0].errornous)
Пример #4
0
 def testTooMuchSent2(self):
     '''
     packet sent multiple times
     :return:
     '''
     noc_rg = init()
     filename = "tests/resources/ReliableDelivery/toomuchsent2.results"
     errornous, results = evaluate_file(noc_rg, filename)
     self.assertEqual(len(errornous), 0)
     self.assertEqual(len(results), 1)
     self.assertFalse(results[0].errornous)
     self.assertTrue(results[0].connection_counter_invalid)
     self.assertEqual(results[0].recv_invalid, 0)
     self.assertEqual(results[0].sents_invalid, 0)
     self.assertEqual(results[0].len_recv, 517)
     self.assertEqual(results[0].len_sent, 509)
     self.assertFalse(results[0].is_valid())
Пример #5
0
 def testMisrouted3flits2(self):
     """
     test if a misrouted flit causes invalid and misrouted
     2 flits misrouterd, 2 times invalid, because 2 fsms were violated
     :return:
     """
     noc_rg = init()
     filename = "tests/resources/3flittests/misrouted2.results"
     module_dict = {
         'xbar': 'b825ea8fa845a73e9dcb22beefb5acec75103e95',
         'arbiter': '134771791c89f5bbd306e5156023e1e19409b73f',
         'lbdr': '8ca292256f6e056fe592ee5fcfa84b9e39e5c8bb',
         'fifo': '1209a2e8847e82d48828b5e5fe336d19de9d2816',
         'fifod': '1209a2e8847e82d48828b5e5fe336d19de9d2816',
         'fifoc': '1209a2e8847e82d48828b5e5fe336d19de9d2816'
     }
     errornous, results = evaluate_file(noc_rg,
                                        filename,
                                        module_reference=module_dict,
                                        print_verbose=True)
     self.assertEqual(len(errornous), 0)
     self.assertEqual(len(results), 1)
     res: Result = results[0]
     self.assertFalse(results[0].errornous
                      or results[0].connection_counter_invalid
                      or results[0].unexpected_len_sent
                      or results[0].unexpected_len_recv)
     self.assertEqual(results[0].recv_invalid, 2)
     self.assertEqual(results[0].sents_invalid, 0)
     self.assertEqual(results[0].misrouted_recv, 2)
     self.assertEqual(results[0].misrouted_sent, 0)
     self.assertEqual(results[0].len_recv, 3)
     self.assertEqual(results[0].len_sent, 3)
     self.assertFalse(results[0].is_valid())
     self.assertTrue(res.vcd_of_module_equal['xbar'])
     self.assertTrue(res.vcd_of_module_equal['arbiter'])
     self.assertTrue(res.vcd_of_module_equal['lbdr'])
     self.assertTrue(res.vcd_of_module_equal['fifo'])
     self.assertTrue(res.vcd_of_module_equal['fifod'])
     self.assertTrue(res.vcd_of_module_equal['fifoc'])
     self.assertTrue(res.hasError(Faulttype.INVALIDFLITS))
     self.assertTrue(res.hasError(Faulttype.MISROUTED))
     self.assertFalse(res.hasError(Faulttype.FAILEDDELIVERY))
     self.assertEqual(res.guessComponent(), 'nofault')
Пример #6
0
 def testReplacedFlit(self):
     '''
     A flit replaced an other flit, so one missing, one duplicated
     :return:
     '''
     noc_rg = init()
     filename = "tests/resources/replaced_flit.results"
     errornous, results = evaluate_file(noc_rg, filename)
     self.assertEqual(len(errornous), 0)
     self.assertEqual(len(results), 1)
     self.assertFalse(results[0].errornous)
     self.assertFalse(results[0].connection_counter_invalid)
     self.assertFalse(results[0].unexpected_len_recv)
     self.assertFalse(results[0].unexpected_len_sent)
     self.assertEqual(results[0].recv_invalid, 2)
     self.assertEqual(results[0].sents_invalid, 0)
     self.assertEqual(results[0].len_recv, 509)
     self.assertEqual(results[0].len_sent, 509)
     self.assertFalse(results[0].is_valid())
Пример #7
0
 def testDestinationChanged3(self):
     '''
     Changed the destination of a packet. Also fixed currentnode, so it is not misrouted.
     :return:
     '''
     noc_rg = init()
     filename = "tests/resources/FlitIntegrity/destinationchanged3.results"
     errornous, results = evaluate_file(noc_rg, filename)
     self.assertEqual(len(errornous), 0)
     self.assertEqual(len(results), 1)
     self.assertFalse(results[0].errornous)
     self.assertTrue(results[0].connection_counter_invalid)
     self.assertFalse(results[0].unexpected_len_recv)
     self.assertFalse(results[0].unexpected_len_sent)
     self.assertEqual(results[0].recv_invalid, 6)
     self.assertEqual(results[0].sents_invalid, 0)
     self.assertEqual(results[0].len_recv, 509)
     self.assertEqual(results[0].len_sent, 509)
     self.assertFalse(results[0].is_valid())
Пример #8
0
 def testDestinationChanged2(self):
     '''
     Changed the destination of a packet. This actually only results in a misrouting.
     :return:
     '''
     noc_rg = init()
     filename = "tests/resources/CorrectDelivery/destinationchanged2.results"
     errornous, results = evaluate_file(noc_rg, filename)
     self.assertEqual(len(errornous), 0)
     self.assertEqual(len(results), 1)
     self.assertFalse(results[0].errornous)
     self.assertFalse(results[0].connection_counter_invalid)
     self.assertFalse(results[0].unexpected_len_recv)
     self.assertFalse(results[0].unexpected_len_sent)
     self.assertEqual(results[0].recv_invalid, 0)
     self.assertEqual(results[0].sents_invalid, 0)
     self.assertEqual(results[0].len_recv, 509)
     self.assertEqual(results[0].len_sent, 509)
     self.assertFalse(results[0].is_valid())
Пример #9
0
 def testMisrouted3(self):
     '''
     A whole packet routed to the wrong output
     Packet was routed back to its origin
     :return:
     '''
     noc_rg = init()
     filename = "tests/resources/CorrectDelivery/misrouted3.results"
     errornous, results = evaluate_file(noc_rg, filename)
     self.assertEqual(len(errornous), 0)
     self.assertEqual(len(results), 1)
     self.assertFalse(results[0].errornous)
     self.assertFalse(results[0].is_valid())
     self.assertFalse(results[0].unexpected_len_recv)
     self.assertFalse(results[0].unexpected_len_sent)
     self.assertEqual(results[0].recv_invalid, 0)
     self.assertEqual(results[0].sents_invalid, 0)
     self.assertEqual(results[0].misrouted_recv, 8)
     self.assertEqual(results[0].misrouted_sent, 0)
Пример #10
0
 def testMisrouted(self):
     '''
     A flit routed to a wrong output
     :return:
     '''
     noc_rg = init()
     filename = "tests/resources/CorrectDelivery/misrouted.results"
     errornous, results = evaluate_file(noc_rg, filename)
     self.assertEqual(len(errornous), 0)
     self.assertEqual(len(results), 1)
     self.assertFalse(results[0].errornous)
     self.assertFalse(results[0].connection_counter_invalid
                      or results[0].unexpected_len_sent
                      or results[0].unexpected_len_recv)
     self.assertEqual(results[0].recv_invalid, 2)
     self.assertEqual(results[0].misrouted_recv, 1)
     self.assertEqual(results[0].misrouted_sent, 0)
     self.assertEqual(results[0].sents_invalid, 0)
     self.assertEqual(results[0].len_recv, 509)
     self.assertEqual(results[0].len_sent, 509)
     self.assertFalse(results[0].is_valid())
Пример #11
0
 def test4flitdropped1(self):
     """
     make a 4 flit packet to a 3 flit packet by dropping the body
     :return:
     """
     noc_rg = init()
     filename = "tests/resources/3flittests/4flitdropped1.results"
     module_dict = {
         'xbar': 'b825ea8fa845a73e9dcb22beefb5acec75103e95',
         'arbiter': '134771791c89f5bbd306e5156023e1e19409b73f',
         'lbdr': '8ca292256f6e056fe592ee5fcfa84b9e39e5c8bb',
         'fifo': '1209a2e8847e82d48828b5e5fe336d19de9d2816',
         'fifod': '1209a2e8847e82d48828b5e5fe336d19de9d2816',
         'fifoc': '1209a2e8847e82d48828b5e5fe336d19de9d2816'
     }
     errornous, results = evaluate_file(noc_rg,
                                        filename,
                                        module_reference=module_dict,
                                        print_verbose=True)
     self.assertEqual(len(errornous), 0)
     self.assertEqual(len(results), 1)
     res: Result = results[0]
     self.assertEqual(results[0].recv_invalid, 0)
     self.assertEqual(results[0].sents_invalid, 0)
     self.assertEqual(results[0].misrouted_recv, 0)
     self.assertEqual(results[0].misrouted_sent, 0)
     self.assertEqual(results[0].len_recv, 3)
     self.assertEqual(results[0].len_sent, 4)
     self.assertFalse(results[0].is_valid())
     self.assertTrue(res.vcd_of_module_equal['xbar'])
     self.assertTrue(res.vcd_of_module_equal['arbiter'])
     self.assertTrue(res.vcd_of_module_equal['lbdr'])
     self.assertTrue(res.vcd_of_module_equal['fifo'])
     self.assertTrue(res.vcd_of_module_equal['fifod'])
     self.assertTrue(res.vcd_of_module_equal['fifoc'])
     self.assertEqual(res.guessComponent(), 'nofault')
     self.assertFalse(res.hasError(Faulttype.INVALIDFLITS))
     self.assertFalse(res.hasError(Faulttype.MISROUTED))
     self.assertTrue(res.hasError(Faulttype.FAILEDDELIVERY))
Пример #12
0
    def testFlitsMissing(self):
        '''
        Missing flits in the recv part
        :return:
        '''
        noc_rg = init()
        filename = "tests/resources/ReliableDelivery/flitsmissing.results"
        errornous, results = evaluate_file(noc_rg,
                                           filename,
                                           expected_len_recv=509,
                                           expected_len_sent=509)
        self.assertEqual(len(errornous), 0)
        self.assertEqual(len(results), 1)
        self.assertFalse(results[0].errornous)
        self.assertTrue(results[0].connection_counter_invalid)
        self.assertEqual(results[0].len_recv, 508)
        self.assertEqual(results[0].len_sent, 509)
        self.assertTrue(results[0].unexpected_len_recv)
        self.assertFalse(results[0].unexpected_len_sent)
        self.assertEqual(results[0].recv_invalid, 0)
        self.assertEqual(results[0].sents_invalid, 0)

        self.assertFalse(results[0].is_valid())