summaryrefslogtreecommitdiffstatshomepage
path: root/src/regtests/jedutil/jedtest.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/regtests/jedutil/jedtest.py')
-rw-r--r--src/regtests/jedutil/jedtest.py149
1 files changed, 0 insertions, 149 deletions
diff --git a/src/regtests/jedutil/jedtest.py b/src/regtests/jedutil/jedtest.py
deleted file mode 100644
index 10ec60d1023..00000000000
--- a/src/regtests/jedutil/jedtest.py
+++ /dev/null
@@ -1,149 +0,0 @@
-import os
-import sys
-import shutil
-import filecmp
-import subprocess
-
-VERBOSE = False
-
-
-class JedTest:
- """
- A class containing the information necessary to run a test.
- """
- def __init__(self):
- self.name = ""
- self.jedFile = ""
- self.baselineFile = ""
- self.outputFile = ""
-
- def __repr__(self):
- return "Name: %s\nJedFile: %s\nBaselineFile: %s\nOutputFile: %s" % (self.name,
- self.jedFile,
- self.baselineFile,
- self.outputFile)
-
-
-def findJedTests(jedPath, baselinePath, outputPath):
- """
- Given a path to some jed files, returns a list of JedTest objects.
- """
- jedTestList = list()
- for (path, dirs, files) in os.walk(jedPath):
- if '.svn' in path:
- continue
-
- for filename in files:
- jedPathFull = os.path.join(path, filename)
- if os.path.splitext(jedPathFull)[1] != '.jed':
- continue
- palName = os.path.splitext(os.path.basename(filename))[0]
- subpathName = path[len(jedPath):].strip(os.sep)
-
- test = JedTest()
- test.name = subpathName
- test.jedFile = jedPathFull
- test.baselineFile = os.path.join(baselinePath, subpathName, palName+".txt")
- test.outputFile = os.path.join(outputPath, subpathName, palName+".txt")
- jedTestList.append(test)
-
- return jedTestList
-
-
-def runViewJedTests(tests, jedUtilApp):
- """
- Given a list of JedTests and a command line program, run them & save the
- results to the files specified in the JedTest objects.
- """
- for test in tests:
- command = [jedUtilApp, "-view", test.jedFile, test.name]
- if VERBOSE:
- print("Viewing the JED file: %s" % test.jedFile)
- print("Command: %s" % " ".join(command))
-
- process = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
- (stdout,stderr) = process.communicate()
-
- if stderr:
- print("Error: JED test named " + test.name + " failed during viewing (" + stderr.decode('latin-1').strip() + ").")
-
- fp = open(test.outputFile, "wb")
- fp.write(stdout)
- fp.close()
-
-
-# MAIN
-def main():
- # Some path initializations
- currentDirectory = os.path.dirname(os.path.realpath(__file__))
- jedsPath = os.path.join(currentDirectory, 'jeds')
- baselinePath = os.path.join(currentDirectory, "baseline")
- outputPath = os.path.join(currentDirectory, "output")
- if os.name == 'nt':
- jedUtilApp = os.path.normpath(os.path.join(currentDirectory, "..", "..", "..", "jedutil.exe"))
- else:
- jedUtilApp = os.path.normpath(os.path.join(currentDirectory, "..", "..", "..", "jedutil"))
-
- if VERBOSE:
- print("JED Path: %s" % jedsPath)
- print("Baseline Path: %s" % baselinePath)
- print("Output Path: %s" % outputPath)
- print("jedutil App: %s" % jedUtilApp)
- print('')
-
-
- # Insure everything exists
- if (not os.path.exists(currentDirectory) or
- not os.path.exists(jedsPath) or
- not os.path.exists(baselinePath) or
- not os.path.exists(jedUtilApp)):
- print("One of the above paths does not exist. Aborting. %s" % jedUtilApp)
- return 3
-
-
- # Gather the tests
- tests = findJedTests(jedsPath, baselinePath, outputPath)
- if not len(tests):
- print("No tests found!")
- return 2
-
-
- # Setup the output paths
- if VERBOSE:
- print("Cleaning the output directory")
- print('')
- if os.path.exists(outputPath):
- shutil.rmtree(outputPath)
- os.makedirs(outputPath)
- for test in tests:
- testOutputPath = os.path.dirname(test.outputFile)
- if not os.path.exists(testOutputPath):
- os.makedirs(testOutputPath)
-
-
- # Run the commands to create the sample output
- runViewJedTests(tests, jedUtilApp)
-
-
- # Insure there are no errors
- success = True
- for test in tests:
- if VERBOSE:
- print("Diffing the output from viewing the JED file: %s" % os.path.basename(test.jedFile))
- if not filecmp.cmp(test.outputFile, test.baselineFile):
- success = False
- print("Test %s failed" % os.path.basename(test.jedFile))
-
-
- # Report
- if success:
- print("All tests ran successfully.")
- return 0
-
-
- return 1
-
-
-# Main stub - returns error code properly
-if __name__ == "__main__":
- sys.exit(main())