/test-gen-goldens.py

https://code.google.com/p/latex-makefile/ · Python · 43 lines · 33 code · 7 blank · 3 comment · 9 complexity · a7e419331ab2d281df7b69279610cc9d MD5 · raw file

  1. #!/usr/bin/env python
  2. """Generate golden files for log.* in a test directory."""
  3. import os
  4. import os.path
  5. import subprocess
  6. import sys
  7. import util.ensure_version
  8. log_sed_scripts = ("color-tex.sed",
  9. "colorize-latex-errors.sed",
  10. "get-graphics.sed",
  11. "get-log-index.sed",
  12. "get-missing-inputs.sed")
  13. if len(sys.argv) == 2:
  14. initial_dir = os.path.join("test", sys.argv[1])
  15. else:
  16. initial_dir = "test"
  17. for dirpath, dirnames, filenames in os.walk(initial_dir):
  18. for in_name in filenames:
  19. if not in_name.startswith("log."):
  20. continue
  21. print("Generating golden files for {0}".format(in_name))
  22. for scriptname in log_sed_scripts:
  23. # remove the .sed extension if there is one
  24. if scriptname.endswith(".sed"):
  25. scriptname = scriptname[:-4]
  26. out_name = "golden.run_sed__{script}__{log}".format(script=scriptname,
  27. log=in_name)
  28. out_path = os.path.join(dirpath, out_name)
  29. in_path = os.path.join(dirpath, in_name)
  30. with open(out_path, "wb") as f:
  31. args=("./run_sed", "{0}.sed".format(scriptname), in_path)
  32. print(args, out_path)
  33. ret = subprocess.call(args, stdout=f)
  34. if ret != 0:
  35. print("FAILED: removing {0}".format(out_path))
  36. os.unlink(out_path)