test.py 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. import sys
  2. import importlib.util
  3. import tkinter
  4. from tkinter.constants import BOTH, NO
  5. from lib import gui, simulator
  6. from lib import test as testing_framework
  7. from run import my_import
  8. SCENARIOS = [
  9. {
  10. "name": "magnetron shuts off when door opened",
  11. "input_trace": [
  12. (1739451957, "start_pressed", None),
  13. (4262358465, "door_opened", None),
  14. ],
  15. "output_trace": [
  16. # start button was pressed, setting timer to 10 and starting the microwave
  17. (1739451957, "set_displayed_time", 10),
  18. (1739451957, "turn_magnetron_on", None),
  19. # timer counts down:
  20. (2739451957, "set_displayed_time", 9),
  21. (3739451957, "set_displayed_time", 8),
  22. # door is opened:
  23. (4262358465, "turn_magnetron_off", None),
  24. ],
  25. },
  26. ]
  27. IDEMPOTENT = [
  28. "turn_magnetron_on",
  29. "turn_magnetron_off",
  30. "set_display_time",
  31. ]
  32. INITIAL = [
  33. ("turn_magnetron_off", None),
  34. ("set_display_time", 0),
  35. ]
  36. if __name__ == "__main__":
  37. if len(sys.argv) != 2:
  38. print("Usage:")
  39. print(" python test.py MODELNAME")
  40. print("")
  41. print("Example:")
  42. print(" python test.py 50_History")
  43. sys.exit(1)
  44. model_name = sys.argv[1]
  45. model_module = my_import("sc", "YAKINDU_WORKSPACE/" + model_name + "/srcgen/statechart.py")
  46. # run_test(model_module)
  47. for scenario in SCENARIOS:
  48. print("Running scenario:", scenario["name"])
  49. testing_framework.run_test(scenario["input_trace"],
  50. scenario["output_trace"],
  51. model_module.Statechart,
  52. INITIAL,
  53. IDEMPOTENT,
  54. verbose=False)