runTests.py 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #!/usr/bin/python
  2. import sys
  3. import os
  4. import subprocess
  5. import difflib
  6. if len(sys.argv) <= 1:
  7. print("please specify the qlow executable as a command line argument")
  8. exit()
  9. qlow_executable = sys.argv[1]
  10. succeeded = 0
  11. failed = 0
  12. def test_file(path):
  13. test = [qlow_executable, path, "-o", path + ".o"]
  14. print("running test " + " ".join(test))
  15. output = subprocess.run(test, stdout=subprocess.PIPE)
  16. with open(path + ".c.did", "w") as out:
  17. out.write(output.stdout.decode("utf-8"))
  18. with open(path + ".c.did", "r") as did, open(path + ".c.should", "r") as should:
  19. if did.readlines() == should.readlines():
  20. global succeeded
  21. succeeded += 1
  22. else:
  23. global failed
  24. failed += 1
  25. def run_directory(dir):
  26. for root, dirs, files in os.walk(dir):
  27. for filename in files:
  28. if filename.endswith(".qlw"):
  29. test_file(os.path.join(root, filename))
  30. def print_results():
  31. print("%d out of %d tests succeeded: %d%%" % (succeeded, succeeded + failed, 100 * succeeded / (succeeded + failed)))
  32. run_directory(".")
  33. print_results()