1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- #!/usr/bin/python3
- import sys
- import os
- import subprocess
- import difflib
- if len(sys.argv) <= 1:
- print("please specify the qlow executable as a command line argument")
- exit()
- qlow_executable = sys.argv[1]
- succeeded = 0
- failed = 0
- def test_file(path):
- test = [qlow_executable, path, "-o", path + ".o"]
- print("running test " + " ".join(test))
- output = subprocess.run(test, stdout=subprocess.PIPE)
- with open(path + ".c.out", "w") as out:
- out.write(output.stdout.decode("utf-8"))
-
- with open(path + ".c.out", "r") as did, open(path + ".c.out.ref", "r") as should:
- if did.readlines() == should.readlines():
- global succeeded
- succeeded += 1
- else:
- global failed
- failed += 1
-
- exefile = path + ".o"
- if os.path.isfile(exefile):
- runOut = subprocess.run(exefile, stdout=subprocess.PIPE)
- def run_directory(dir):
- for root, dirs, files in os.walk(dir):
- for filename in files:
- if filename.endswith(".qlw"):
- test_file(os.path.join(root, filename))
- def print_results():
- print("%d out of %d tests succeeded: %d%%" % (succeeded, succeeded + failed, 100 * succeeded / (succeeded + failed)))
- run_directory(".")
- print_results()
|