Browse Source

Fixed PW tests (updated utils file)

Yentl Van Tendeloo 7 years ago
parent
commit
0de2af5580

+ 9 - 13
integration/utils.py

@@ -5,16 +5,11 @@ import os
 import sys
 import sys
 import time
 import time
 import json
 import json
-
-
-if sys.version_info[0] < 3:
-    from urllib2 import urlopen as urlopen
-    from urllib2 import Request as Request
-    from urllib import urlencode as urlencode
-else:
-    from urllib.request import urlopen as urlopen
-    from urllib.request import Request as Request
-    from urllib.parse import urlencode as urlencode
+import urllib
+try:
+    import urllib2
+except ImportError:
+    import urllib as urllib2
 
 
 import subprocess
 import subprocess
 import signal
 import signal
@@ -22,7 +17,7 @@ import random
 
 
 sys.path.append("interface/HUTN")
 sys.path.append("interface/HUTN")
 sys.path.append("scripts")
 sys.path.append("scripts")
-from hutn_compiler.compiler import main as do_compile
+#from interface.HUTN.hutn_compiler.compiler import main as do_compile
 
 
 taskname = "test_task"
 taskname = "test_task"
 INIT_TIMEOUT = 30
 INIT_TIMEOUT = 30
@@ -64,7 +59,7 @@ def child_kill(pid):
     subprocess.call(["pkill", "-P", "%i" % pid])
     subprocess.call(["pkill", "-P", "%i" % pid])
     start = time.time()
     start = time.time()
     with open(os.devnull, 'w') as null:
     with open(os.devnull, 'w') as null:
-        while subprocess.call(["pgrep", "-P", "%i" % pid], stdout=null) != 1:
+        while subprocess.call(["pgrep", "-P", "%i" % pid], stdout=null) > 1:
             time.sleep(0.1)
             time.sleep(0.1)
             if time.time() > start + 4:
             if time.time() > start + 4:
                 subprocess.call(["pkill", "-9", "-P", "%i" % pid])
                 subprocess.call(["pkill", "-9", "-P", "%i" % pid])
@@ -81,11 +76,12 @@ def kill(process):
 
 
 def flush_data(address, data):
 def flush_data(address, data):
     if data:
     if data:
-        urlopen(Request(address, urlencode({"op": "set_input", "data": json.dumps(data), "taskname": taskname})), timeout=INIT_TIMEOUT).read()
+        urllib2.urlopen(urllib2.Request(address, urllib.urlencode({"op": "set_input", "data": json.dumps(data), "taskname": taskname})), timeout=INIT_TIMEOUT).read()
     return []
     return []
 
 
 def start_mvc():
 def start_mvc():
     port = getFreePort()
     port = getFreePort()
     address = "127.0.0.1:%s" % port
     address = "127.0.0.1:%s" % port
+    print("Execute run local MV")
     proc = execute("run_local_modelverse", [str(port)], wait=False)
     proc = execute("run_local_modelverse", [str(port)], wait=False)
     return proc, address
     return proc, address

+ 6 - 11
kernel/modelverse_kernel/main.py

@@ -282,22 +282,17 @@ class ModelverseKernel(object):
             value = "func_result_" + str(ModelverseKernel.counter)
             value = "func_result_" + str(ModelverseKernel.counter)
             ModelverseKernel.counter += 1
             ModelverseKernel.counter += 1
 
 
-            if func_name in intrinsics:
-                #TODO test and fix
-                #actual_computation = value + " = " + intrinsics[func_name](*param_list)
-                pass
-            else:
-                param_list = "{" + ", ".join(["'%s': %s" % (k, v) for k, v in param_list.items()]) + "}"
-                actual_computation = "%s, = yield [('CALL_ARGS', [_mvk.execute_jit, (_root, %s['id'], _taskname, %s)])]\n" % (value, func_name, param_list)
+            param_list = "{" + ", ".join(["'%s': %s" % (k, v) for k, v in param_list.items()]) + "}"
+            actual_computation = "$$INDENT$$%s, = yield [('CALL_ARGS', [_mvk.execute_jit, (_root, %s['id'], _taskname, %s)])]\n" % (value, func_name, param_list)
 
 
             if indent == 0:
             if indent == 0:
                 # No indent, meaning that we use it inline
                 # No indent, meaning that we use it inline
                 # Therefore, we output the prev and value individually
                 # Therefore, we output the prev and value individually
-                prev, instruction = prev_func_name + computation + "  " * nested_indent + actual_computation, value
+                prev, instruction = prev_func_name + computation + actual_computation.replace("$$INDENT$$", "  " * nested_indent), value
             else:
             else:
                 # Some indentation, meaning that we don't even use the return value
                 # Some indentation, meaning that we don't even use the return value
                 # Therefore, we only do the yield
                 # Therefore, we only do the yield
-                prev, instruction = prev_func_name + computation, "  " * indent + actual_computation
+                prev, instruction = prev_func_name + computation, actual_computation.replace("$$INDENT$$", "  " * indent)
 
 
         elif inst_type["value"] == "access":
         elif inst_type["value"] == "access":
             value, = yield [("RD", [inst, "var"])]
             value, = yield [("RD", [inst, "var"])]
@@ -348,8 +343,8 @@ class ModelverseKernel(object):
         #print(func)
         #print(func)
 
 
         # To write out all generated functions
         # To write out all generated functions
-        with open('/tmp/junk/%s' % suggested_name, 'w') as f:
-            f.write(func)
+        #with open('/tmp/junk/%s' % suggested_name, 'w') as f:
+        #    f.write(func)
 
 
         yield [("RETURN", [func])]
         yield [("RETURN", [func])]
 
 

+ 2 - 2
kernel/modelverse_kernel/request_handler.py

@@ -45,11 +45,11 @@ class RequestHandler(object):
         self.reply = None
         self.reply = None
 
 
     def execute_call_args(self, request_args):
     def execute_call_args(self, request_args):
-        print("CALL " + str(request_args[0]))
+        #print("CALL " + str(request_args[0]))
         self.generator_stack.append(request_args[0](*(request_args[1])))
         self.generator_stack.append(request_args[0](*(request_args[1])))
         self.reply = None
         self.reply = None
 
 
     def execute_call_kwargs(self, request_args):
     def execute_call_kwargs(self, request_args):
-        print("KWCALL " + str(request_args[0]))
+        #print("KWCALL " + str(request_args[0]))
         self.generator_stack.append(request_args[0](**(request_args[1])))
         self.generator_stack.append(request_args[0](**(request_args[1])))
         self.reply = None
         self.reply = None

+ 1 - 1
wrappers/modelverse_SCCD.py

@@ -1,7 +1,7 @@
 """
 """
 Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Wed May  2 14:22:40 2018
+Date:   Thu May  3 09:33:36 2018
 
 
 Model author: Yentl Van Tendeloo
 Model author: Yentl Van Tendeloo
 Model name:   MvK Server
 Model name:   MvK Server