1 import os 2 import re 3 import sys 4 5 def ReadFileAsLines(filename): 6 """Reads a file, removing blank lines and lines that start with #""" 7 file = open(filename, "r") 8 raw_lines = file.readlines() 9 file.close() 10 lines = [] 11 for line in raw_lines: 12 line = line.strip() 13 if len(line) > 0 and not line.startswith("#"): 14 lines.append(line) 15 return lines 16 17 def GetCleanTestName(testName): 18 replacements = { "dEQP-": "", ".*": "", ".":"_", } 19 cleanName = testName 20 for replaceKey in replacements: 21 cleanName = cleanName.replace(replaceKey, replacements[replaceKey]) 22 return cleanName 23 24 def GenerateTests(outFile, testNames): 25 ''' Remove duplicate tests ''' 26 testNames = list(set(testNames)) 27 28 outFile.write("#include \"deqp_tests.h\"\n\n") 29 30 for test in testNames: 31 outFile.write("TEST(deqp, " + GetCleanTestName(test) + ")\n") 32 outFile.write("{\n") 33 outFile.write(" RunDEQPTest(\"" + test + "\", GetCurrentConfig());\n") 34 outFile.write("}\n\n") 35 36 def main(argv): 37 tests = ReadFileAsLines(argv[0]) 38 output = open(argv[1], 'wb') 39 GenerateTests(output, tests) 40 output.close() 41 return 0 42 43 if __name__ == '__main__': 44 sys.exit(main(sys.argv[1:])) 45