import argparse def getArguments(): parser = argparse.ArgumentParser(description="Retrieve failing tests from CTS output file") parser.add_argument("inputFile", help="Input file") parser.add_argument("-o", "--output", dest="outputFile", default="failingTests.txt", type=str, required=False, help="Output file to store failing tests") parser.add_argument('-q', action='store_true') return parser.parse_args() if __name__ == "__main__": args = getArguments() with open(args.inputFile, "r") as inputFile: with open(args.outputFile, "w") as outputFile: if not args.q: print("Reading file " + args.inputFile + " for test failures") testName = "" for line in inputFile: # Empty lines means we have changed test if line == "\n": testName = "" continue # Assuming lines with test names are formatted like: "Test case 'dEQP-VK.test.name'.." if "Test case" in line: testName = line[11:-4] continue # Failed tests will have a line after the test that should be like: "Fail (sometimes the reason here)" if testName != "" and "Fail" in line: outputFile.writelines(testName + "\n") if not args.q: print("Failures written to " + args.outputFile) pass