ソースを参照

Working wrapper around SCCD execution

Yentl Van Tendeloo 8 年 前
コミット
c3ee226774
3 ファイル変更13 行追加3 行削除
  1. 1 1
      models/SCCD_execute.alc
  2. 6 1
      unit/test_all.py
  3. 6 1
      wrappers/modelverse.py

+ 1 - 1
models/SCCD_execute.alc

@@ -345,7 +345,7 @@ Void function process_raised_event(model : Element, event : Element, parameter_a
 		evt = instantiate_node(model, "trace/Event", "")
 		instantiate_attribute(model, evt, "timestamp", data["time_sim"])
 		instantiate_attribute(model, evt, "name", read_attribute(model, event, "event"))
-		instantiate_attribute(model, evt, "parameter", cast_v2s(parameter_action))
+		instantiate_attribute(model, evt, "parameter", parameter_action)
 		log("Generated output event: " + cast_v2s(evt))
 
 	else:

+ 6 - 1
unit/test_all.py

@@ -299,7 +299,12 @@ class TestModelverse(unittest.TestCase):
         lst = element_list_nice("test/my_SCCD_trace")
 
         # TODO check if the structure of this list is OK
-        print(lst)
+        result = [(i["timestamp"], i["name"], i["parameter"]) for i in lst.sort(key=lambda i: i["timestamp"])]
+        print(result)
+
+        assert result == [(5.0, "updateTimerColour", "red"),
+                          (6.0, "updateTimer", 59), ...
+        ]
 
     def test_switch_MM(self):
         model_add("test/PetriNet", "formalisms/SimpleClassDiagrams", open("integration/code/pn_design.mvc", "r").read())

+ 6 - 1
wrappers/modelverse.py

@@ -938,7 +938,12 @@ def element_list_nice(model_name):
 
     _input(["element_list_nice", model_name, _get_metamodel(model_name)])
 
-    return json.loads(_handle_output("Success: ", split=" "))
+    data = _handle_output("Success: ", split=" ")
+    try:
+        return json.loads(data)
+    except:
+        print(data)
+        raise
 
 def connections_between(model_name, source_element, target_element):
     """Gets a list of all allowed connections between the source and target element in the model."""