Edit

kc3-lang/angle/tests/deqp_tests/generate_deqp_tests.py

Branch :

  • Show log

    Commit

  • Author : Geoff Lang
    Date : 2014-05-16 10:37:47
    Hash : 5df9f523
    Message : Automate the DEQP tests by wrapping them in the gtest suite. BUG=angle:497 Change-Id: If0a72c053bccccc4369ec78dd70173bbadb1be7b Reviewed-on: https://chromium-review.googlesource.com/200044 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>

  • tests/deqp_tests/generate_deqp_tests.py
  • import os
    import re
    import sys
    
    def ReadFileAsLines(filename):
        """Reads a file, removing blank lines and lines that start with #"""
        file = open(filename, "r")
        raw_lines = file.readlines()
        file.close()
        lines = []
        for line in raw_lines:
            line = line.strip()
            if len(line) > 0 and not line.startswith("#"):
                lines.append(line)
        return lines
    
    def GetCleanTestName(testName):
        replacements = { "dEQP-": "", ".*": "", ".":"_", }
        cleanName = testName
        for replaceKey in replacements:
            cleanName = cleanName.replace(replaceKey, replacements[replaceKey])
        return cleanName
    
    def GenerateTests(outFile, testNames):
        ''' Remove duplicate tests '''
        testNames = list(set(testNames))
    
        outFile.write("#include \"deqp_tests.h\"\n\n")
    
        for test in testNames:
            outFile.write("TEST(deqp, " + GetCleanTestName(test) + ")\n")
            outFile.write("{\n")
            outFile.write("    RunDEQPTest(\"" + test + "\", GetCurrentConfig());\n")
            outFile.write("}\n\n")
    
    def main(argv):
        tests = ReadFileAsLines(argv[0])
        output = open(argv[1], 'wb')
        GenerateTests(output, tests)
        output.close()
        return 0
    
    if __name__ == '__main__':
        sys.exit(main(sys.argv[1:]))