summaryrefslogtreecommitdiff
path: root/test/spec/run.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/spec/run.py')
-rwxr-xr-xtest/spec/run.py109
1 files changed, 0 insertions, 109 deletions
diff --git a/test/spec/run.py b/test/spec/run.py
deleted file mode 100755
index ec07929c4..000000000
--- a/test/spec/run.py
+++ /dev/null
@@ -1,109 +0,0 @@
-#!/usr/bin/env python3
-
-from __future__ import print_function
-import argparse
-import os
-import os.path
-import unittest
-import subprocess
-import glob
-import sys
-
-
-ownDir = os.path.dirname(os.path.abspath(sys.argv[0]))
-inputDir = ownDir
-outputDir = os.path.join(inputDir, "_output")
-
-parser = argparse.ArgumentParser()
-parser.add_argument("--wasm", metavar="<wasm-command>", default=os.path.join(os.getcwd(), "wasm"))
-parser.add_argument("--js", metavar="<js-command>")
-parser.add_argument("--out", metavar="<out-dir>", default=outputDir)
-parser.add_argument("file", nargs='*')
-arguments = parser.parse_args()
-sys.argv = sys.argv[:1]
-
-wasmCommand = arguments.wasm
-jsCommand = arguments.js
-outputDir = arguments.out
-inputFiles = arguments.file if arguments.file else glob.glob(os.path.join(inputDir, "*.wast"))
-
-if not os.path.exists(wasmCommand):
- sys.stderr.write("""\
-Error: The executable '%s' does not exist.
-Provide the correct path with the '--wasm' flag.
-
-""" % (wasmCommand))
- parser.print_help()
- sys.exit(1)
-
-
-class RunTests(unittest.TestCase):
- def _runCommand(self, command, logPath, expectedExitCode = 0):
- with open(logPath, 'w+') as out:
- exitCode = subprocess.call(command, shell=True, stdout=out, stderr=subprocess.STDOUT)
- self.assertEqual(expectedExitCode, exitCode, "failed with exit code %i (expected %i) for %s" % (exitCode, expectedExitCode, command))
-
- def _auxFile(self, path):
- if os.path.exists(path):
- os.remove(path)
- return path
-
- def _compareFile(self, expectFile, actualFile):
- if os.path.exists(expectFile):
- with open(expectFile) as expect:
- with open(actualFile) as actual:
- expectText = expect.read()
- actualText = actual.read()
- self.assertEqual(expectText, actualText)
-
- def _runTestFile(self, inputPath):
- dir, inputFile = os.path.split(inputPath)
- outputPath = os.path.join(outputDir, inputFile)
-
- # Run original file
- expectedExitCode = 1 if ".fail." in inputFile else 0
- logPath = self._auxFile(outputPath + ".log")
- self._runCommand(('%s "%s"') % (wasmCommand, inputPath), logPath, expectedExitCode)
-
- if expectedExitCode != 0:
- return
-
- # Convert to binary and run again
- wasmPath = self._auxFile(outputPath + ".bin.wast")
- logPath = self._auxFile(wasmPath + ".log")
- self._runCommand(('%s -d "%s" -o "%s"') % (wasmCommand, inputPath, wasmPath), logPath)
- self._runCommand(('%s "%s"') % (wasmCommand, wasmPath), logPath)
-
- # Convert back to text and run again
- wastPath = self._auxFile(wasmPath + ".wast")
- logPath = self._auxFile(wastPath + ".log")
- self._runCommand(('%s -d "%s" -o "%s"') % (wasmCommand, wasmPath, wastPath), logPath)
- self._runCommand(('%s "%s"') % (wasmCommand, wastPath), logPath)
-
- # Convert back to binary once more and compare
- wasm2Path = self._auxFile(wastPath + ".bin.wast")
- logPath = self._auxFile(wasm2Path + ".log")
- self._runCommand(('%s -d "%s" -o "%s"') % (wasmCommand, wastPath, wasm2Path), logPath)
- self._compareFile(wasmPath, wasm2Path)
-
- # Convert back to text once more and compare
- wast2Path = self._auxFile(wasm2Path + ".wast")
- logPath = self._auxFile(wast2Path + ".log")
- self._runCommand(('%s -d "%s" -o "%s"') % (wasmCommand, wasm2Path, wast2Path), logPath)
- self._compareFile(wastPath, wast2Path)
-
- # Convert to JavaScript
- jsPath = self._auxFile(outputPath.replace(".wast", ".js"))
- logPath = self._auxFile(jsPath + ".log")
- self._runCommand(('%s -d "%s" -o "%s"') % (wasmCommand, inputPath, jsPath), logPath)
- if jsCommand != None:
- self._runCommand(('%s "%s"') % (jsCommand, jsPath), logPath)
-
-
-if __name__ == "__main__":
- if not os.path.exists(outputDir):
- os.makedirs(outputDir)
- for fileName in inputFiles:
- testName = 'test ' + os.path.basename(fileName)
- setattr(RunTests, testName, lambda self, file=fileName: self._runTestFile(file))
- unittest.main()