Beispiel #1
0
 def test_Arch(self):
   for arch in archs_list:
     checkerText = self.arch_block.format(test_arch = arch)
     checkerFile = ParseCheckerStream("<test-file>",
                                      "CHECK",
                                      io.StringIO(ToUnicode(checkerText)))
     self.assertEqual(len(checkerFile.testCases), 1)
     self.assertEqual(len(checkerFile.testCasesForArch(arch)), 1)
     self.assertEqual(len(checkerFile.testCases[0].assertions), 4)
Beispiel #2
0
 def test_Arch(self):
   for arch in archs_list:
     checkerText = self.arch_block.format(test_arch = arch)
     checkerFile = ParseCheckerStream("<test-file>",
                                      "CHECK",
                                      io.StringIO(ToUnicode(checkerText)))
     self.assertEqual(len(checkerFile.testCases), 1)
     self.assertEqual(len(checkerFile.testCasesForArch(arch)), 1)
     self.assertEqual(len(checkerFile.testCases[0].assertions), 4)
Beispiel #3
0
 def test_IgnoreNonTargetArch(self):
   for targetArch in archs_list:
     for testArch in [a for a in archs_list if a != targetArch]:
       checkerText = self.arch_block.format(test_arch = testArch)
       checkerFile = ParseCheckerStream("<test-file>",
                                        "CHECK",
                                        io.StringIO(ToUnicode(checkerText)))
       self.assertEqual(len(checkerFile.testCases), 1)
       self.assertEqual(len(checkerFile.testCasesForArch(testArch)), 1)
       self.assertEqual(len(checkerFile.testCasesForArch(targetArch)), 0)
Beispiel #4
0
 def test_IgnoreNonTargetArch(self):
   for targetArch in archs_list:
     for testArch in [a for a in archs_list if a != targetArch]:
       checkerText = self.arch_block.format(test_arch = testArch)
       checkerFile = ParseCheckerStream("<test-file>",
                                        "CHECK",
                                        io.StringIO(ToUnicode(checkerText)))
       self.assertEqual(len(checkerFile.testCases), 1)
       self.assertEqual(len(checkerFile.testCasesForArch(testArch)), 1)
       self.assertEqual(len(checkerFile.testCasesForArch(targetArch)), 0)
Beispiel #5
0
 def assertMatches(self, checkerString, c1String):
     checkerString = \
       """
     /// CHECK-START: MyMethod MyPass
   """ + checkerString
     c1String = \
       """
     begin_compilation
       name "MyMethod"
       method "MyMethod"
       date 1234
     end_compilation
     begin_cfg
       name "MyPass"
   """ + c1String + \
       """
     end_cfg
   """
     checkerFile = ParseCheckerStream("<test-file>", "CHECK",
                                      io.StringIO(ToUnicode(checkerString)))
     c1File = ParseC1visualizerStream("<c1-file>",
                                      io.StringIO(ToUnicode(c1String)))
     assert len(checkerFile.testCases) == 1
     assert len(c1File.passes) == 1
     MatchTestCase(checkerFile.testCases[0], c1File.passes[0])
Beispiel #6
0
 def test_NonArchTests(self):
   for arch in [None] + archs_list:
     checkerFile = ParseCheckerStream("<test-file>",
                                      "CHECK",
                                      io.StringIO(ToUnicode(self.noarch_block)))
     self.assertEqual(len(checkerFile.testCases), 1)
     self.assertEqual(len(checkerFile.testCases[0].assertions), 4)
Beispiel #7
0
def RunTests(checkPrefix, checkPath, outputFilename, targetArch):
    c1File = ParseC1visualizerStream(os.path.basename(outputFilename),
                                     open(outputFilename, "r"))
    for checkFilename in FindCheckerFiles(checkPath):
        checkerFile = ParseCheckerStream(os.path.basename(checkFilename),
                                         checkPrefix, open(checkFilename, "r"))
        MatchFiles(checkerFile, c1File, targetArch)
Beispiel #8
0
 def parseAssertion(self, string, variant=""):
   checkerText = (u"/// CHECK-START: pass\n" +
                  u"/// CHECK" + ToUnicode(variant) + u": " + ToUnicode(string))
   checkerFile = ParseCheckerStream("<test-file>", "CHECK", io.StringIO(checkerText))
   self.assertEqual(len(checkerFile.testCases), 1)
   testCase = checkerFile.testCases[0]
   self.assertEqual(len(testCase.assertions), 1)
   return testCase.assertions[0]
Beispiel #9
0
    def assertMatches(self,
                      checkerString,
                      c1String,
                      isa=None,
                      instructionSetFeatures=None):
        checkerString = \
          """
        /// CHECK-START: MyMethod MyPass
      """ + checkerString
        metaData = ""
        if isa:
            metaData += "isa:" + isa

        if instructionSetFeatures:
            if metaData:
                metaData += " "

            joinedFeatures = ",".join(
                map(
                    lambda feature: feature
                    if instructionSetFeatures[feature] else "-" + feature,
                    instructionSetFeatures))
            metaData += "isa_features:" + joinedFeatures

        metaDataString = ""
        if metaData:
            metaDataString = \
              """
          begin_compilation
            name "%s"
            method "%s"
            date 1234
          end_compilation
        """ % (metaData, metaData)
        c1String = metaDataString + \
          """
        begin_compilation
          name "MyMethod"
          method "MyMethod"
          date 1234
        end_compilation
        begin_cfg
          name "MyPass"
      """ + c1String + \
          """
        end_cfg
      """
        checkerFile = ParseCheckerStream("<test-file>", "CHECK",
                                         io.StringIO(ToUnicode(checkerString)))
        c1File = ParseC1visualizerStream("<c1-file>",
                                         io.StringIO(ToUnicode(c1String)))
        assert len(checkerFile.testCases) == 1
        assert len(c1File.passes) == 1
        MatchTestCase(checkerFile.testCases[0], c1File.passes[0],
                      c1File.instructionSetFeatures)
Beispiel #10
0
 def parseTestCase(self, string):
     checkerText = u"/// CHECK-START: pass\n" + ToUnicode(string)
     checkerFile = ParseCheckerStream("<test-file>", "CHECK",
                                      io.StringIO(checkerText))
     self.assertEqual(len(checkerFile.testCases), 1)
     return checkerFile.testCases[0]
Beispiel #11
0
 def parse(self, checkerText):
     return ParseCheckerStream("<test_file>", "CHECK",
                               io.StringIO(ToUnicode(checkerText)))
Beispiel #12
0
 def tryParse(self, string):
     checkerText = u"/// CHECK-START: pass\n" + ToUnicode(string)
     return ParseCheckerStream("<test-file>", "CHECK",
                               io.StringIO(checkerText))