mirror of
https://github.com/denoland/deno.git
synced 2025-09-27 12:49:10 +00:00
Add tools/test.py test runner. (#384)
This commit is contained in:
parent
709b0cb90c
commit
dff5c16e85
9 changed files with 90 additions and 12 deletions
41
tools/check_output_test.py
Executable file
41
tools/check_output_test.py
Executable file
|
@ -0,0 +1,41 @@
|
|||
#!/usr/bin/env python
|
||||
# Given a deno executable, this script execute several integration tests
|
||||
# with it. The tests are stored in //tests/ and each script has a corresponding
|
||||
# .out file which specifies what the stdout should be.
|
||||
#
|
||||
# Usage: check_output_test.py [path to deno executable]
|
||||
import os
|
||||
import sys
|
||||
import subprocess
|
||||
|
||||
root_path = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
|
||||
tests_path = os.path.join(root_path, "tests")
|
||||
|
||||
|
||||
def check_output_test(deno_exe_filename):
|
||||
assert os.path.isfile(deno_exe_filename)
|
||||
outs = [
|
||||
filename for filename in os.listdir(tests_path)
|
||||
if filename.endswith(".out")
|
||||
]
|
||||
assert len(outs) > 1
|
||||
tests = [(os.path.splitext(filename)[0], filename) for filename in outs]
|
||||
for (script, out_filename) in tests:
|
||||
script_abs = os.path.join(tests_path, script)
|
||||
out_abs = os.path.join(tests_path, out_filename)
|
||||
with open(out_abs, 'r') as f:
|
||||
expected_out = f.read()
|
||||
cmd = [deno_exe_filename, script_abs]
|
||||
print " ".join(cmd)
|
||||
actual_out = subprocess.check_output(cmd)
|
||||
if expected_out != actual_out:
|
||||
print "Expected output does not match actual."
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
def main(argv):
|
||||
check_output_test(argv[1])
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
sys.exit(main(sys.argv))
|
Loading…
Add table
Add a link
Reference in a new issue