test_simple.py 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. import unittest
  2. import util
  3. from postproc import postproc
  4. from hutn_compiler.compiler import main
  5. def compile_file(obj, filename):
  6. result = main(util.get_code_path(filename), "grammars/actionlanguage.g", "PS", [])
  7. expected = open(util.get_expected_path(filename)).read()
  8. print(result)
  9. result = postproc(result)
  10. expected = postproc(expected)
  11. if result != expected:
  12. f = open(util.get_expected_path(filename), 'w')
  13. f.write(result)
  14. f.close()
  15. assert result == expected
  16. class TestSimple(unittest.TestCase):
  17. def test_assign(self):
  18. compile_file(self, "assign.al")
  19. def test_vardecl(self):
  20. compile_file(self, "vardecl.al")
  21. def test_funccall(self):
  22. compile_file(self, "funccall.al")
  23. def test_ifelse(self):
  24. compile_file(self, "ifelse.al")
  25. def test_while(self):
  26. compile_file(self, "while.al")
  27. def test_funcdef_params(self):
  28. compile_file(self, "funcdef_params.al")
  29. def test_funccall_params(self):
  30. compile_file(self, "funccall_params.al")
  31. def test_action(self):
  32. compile_file(self, "action.al")
  33. def test_types(self):
  34. compile_file(self, "types.al")
  35. def test_mutual_recursion(self):
  36. compile_file(self, "mutual_recursion.al")
  37. def test_global(self):
  38. compile_file(self, "global.al")
  39. def test_include(self):
  40. compile_file(self, "include.al")
  41. def test_multi_include(self):
  42. compile_file(self, "multi_include.al")
  43. def test_dict_access(self):
  44. compile_file(self, "dict_access.al")