123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- #!/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.did", "w") as out:
- out.write(output.stdout.decode("utf-8"))
-
- with open(path + ".c.did", "r") as did, open(path + ".c.should", "r") as should:
- if did.readlines() == should.readlines():
- global succeeded
- succeeded += 1
- else:
- global failed
- failed += 1
- 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()
|