From a07e17b8b31c25b6c40eb5e56168e6b07a5f9794 Mon Sep 17 00:00:00 2001
From: Erwan Jahier <erwan.jahier@univ-grenoble-alpes.fr>
Date: Sun, 25 Mar 2018 23:16:34 +0200
Subject: [PATCH] Lus2licRun: catch errors properly (duplicating the work done
 in main.ml).

By not catching errors, rdbg and (thus) lurette were silently do nothing
in presence of errors in Lustre files.
---
 lv6-ref-man/lv6-ref-man.pdf | Bin 324101 -> 324100 bytes
 src/lic.ml                  |   2 +-
 src/lus2licRun.ml           |  63 +++++++++++++++++++++++++++++++++---
 src/lv6errors.ml            |   6 ++--
 src/lv6version.ml           |   4 +--
 src/main.ml                 |  15 +++++----
 src/socExecValue.ml         |   2 +-
 test/lus2lic.sum            |  42 ++++++++++++------------
 8 files changed, 96 insertions(+), 38 deletions(-)

diff --git a/lv6-ref-man/lv6-ref-man.pdf b/lv6-ref-man/lv6-ref-man.pdf
index ccdca251d1a74a2caec8b1ec24706eb9b337e1b3..9f7a1bbee3476b878dd7d7a3110cd4a039294990 100644
GIT binary patch
delta 3715
zcmah}c{J32_n#euVeD$`y9i^?HpEb}Mb^^T$=X5^KEnt@vLs|3g-B_H$kx~*R8z#1
zl<fOXAw2bce&;;rcb-3<KkhyE^}6?-_v?MneZOx_a>q?_r%7k8D?;Rf&@>CHIAzZG
zmETF)S)D_ceXBn{czy~P6bNiCPe_N0xrr4ABp$jluBf~o&?#EEE69G4@<Zd};cQ*<
z@n9|}zEVvcR)vs!NIxQ)(#t2<0BvR&wyRbv>Dqr|<#GEZV|`d{_Ubu@;&0h53o(1#
z*Vht8iqJW-c_rQ^W@<^Y0Q{7_mkFA)>GHIG!17B!{(1#8fAMN(>-i@T@~hO70OLez
zp!T)JlUKS&XZpP+9Ap^*FUdIPvpWxbdit!bR1Z&x;*D)mT7`Bi9i0cqd!muy_neR(
zE4j5|6;C@O$(N;m?@YflF&GMTK8y4U^1OQOikDm9-zeDq5)w<Y0w-93{~F|vLF=u+
zu$vzh)v;J*EftMp%2*j?Wf?i7l0~qmvD-B-QCZ^?SY;J0WmW8dO6q?OzzjG~8XBwN
zHB{9M@tP*u%6Pn{I@Ux}L(53n#OS1&7FJ7DUsU&hm1N(Tgy{mNyu_6qy|8fxc|zTF
zLhABwofq6AWbSUu<}R0UsRgY)R5_QCU1HK>!`gCYUo@L&aceF8H2fS-Md`*_c_dF9
zz6EkGi*L}K%(qM21(^gI`j%wvSc<Gqy?god)yR(bbbn};*JsmP3dcM%-kjc5>f>j1
znoAOsrr;I@s=0t%<o0woxw_sO*_&7(U1l%>(%{lDzpcvO+a~SK&wAhKl}Qc6j;qOd
zQTpv$f_Y<U1*H0@S|!ciUA?nv;0Z##GYs8?ui+a+FUW-5^Vahf4NGM3=8oVbs#V;x
z{WM~{-4n<c9(;y4lP$QL%xc&Jtg5MG20V9(LUNR<1~$}m4Ed`g+-H23K{{k1(HHod
zql@BUDLJK|p-HzkpWS9S<+czstD`#K(HEinozsa0W!j)^P96Lr&)XJ48bi)q#t#+a
z=KhFWKzYfrC{w2GT&fL0aSmXf(sh~fw*7v0viyW09-XHX6+d8@63C%w9m@^o9MKoq
z43%8qE+L75c28D&)W)U~bqAhn+NPjl9#A-q$@z1g9F46p6L-zTw;u;tOLb(8TMYE>
zeVfEqvv+#?&O@uXTqMfsi<M?1Ro;H!v52ak`*iQCT<0cQP0oiLD6L^=%iV|%$j{Ml
z?F}i+X$;FLOX~EmA0f|G+Opg&c)cR6fwu+V(>75eDp5=FueOnm=7o({?Mn+RZw@Nn
z8Q|VD*ElHNzPiM?Hj{slm+a|vNEeD%oiM)>r>&<wTzKa2ZQbEV|Eo)No1Y?CDGAdq
z;C<{f@aF4g6rE`UfqUO~6uhq(jM#kM%uBCdUm^<MyAIm5`39fW+p)wIy+P|ea+n0X
zG6EGoG<}CB={{a&KsVhG;NF=I(1(qEP|F4sRIy=0(|LR2v$j*uDJ#owS9V>#ahP3i
zb$Q;4ZCQq84<`RnW2P-VZJTkfr7}VEynf&12)@C-8L7(stmO-7Pd1VpZ~1HMsdeW^
zIz2DT4rOYe^3iHTQ65@pGFWO!bH@O~vHYsMhfePZnX2tm{uxW<L$(*v0v0EZnx^Gf
zYnc}PMtBsURvjc44!Ko3GL3{*Jk3kpJl{S$wcYaQTCgAkByU*ZdG-C=ofHZt0K$vw
z-j=s!)i4iR&x=^Kud*Rj9vOrRHRRz6Joyb;vjcIaD}0oRns3fEp2G&k3AF%t$y6_(
zuBPjk?x(gP;TK_`*W+?}CFaj{q94CnLj2i025VBrsME8Xdo&QehAqZT8G?{%YC4rV
z!n92y5zrWD%^1=1=c`BEDOXOKym;M)Rt8JA@#KI_+b&aKS#3y1xD4%72r?hxLvtdu
z9noTXM`9flZ-5;q9UGHx01#DB^>OKjE=-pm6IfC{69hdC7KZ6E=l;4u#o5k$(tacS
z+uDkV1`D=(|M3!#tC6C6G57UE%?SD&;hbiXqHD!un|Wyh@#ir3WX-EyWA*kS-Vi4&
zP~>{nXEBVjq1Fm3C|DDn%|A0vde<p{Hakrt5t(8-6QXh3P~bC10~+zqiIVzhzlb?t
z?hcG^`r@9$rmM9S#Y6y}Koh{lgb0io{_O&Dw5#FbiEM`5T+`O?I~VVt_ze#c&WH9B
z3M)Pq!P$g`H6hZ703?HlDo3!Tl@Tq#c@PcwK3oI-U*umx4cP1NG`Y>}N84NL*hSG5
z2#z!=(d`Fcw-*iv{%05)wT}|lWZGD$@}FI9Zu;CKs4^grY4+CamvD;Z&@Bo$0GdK!
zQ6urukzZ(Gbkqr)%q&EQW=UrcixH+wxhT;eJmv7M&;ZrqMp$bVjzaQq@Eq7wh92-t
zKg%BQbI$S;3gfhn;^hEesv6g#e3Tak_nSt;6-ZL<gJxZDs@b9zrFK2H&=2?W+#qS7
zdCR@d^|vf#TK=pq?|Tw2F2zol^&@8M<H?9s7F@BNE_8^d9U|!X#&zM-#BtD4<uENY
z1o{;gKBo09u;hN(1I<FZw6m6HNY7X=(Vi)YB%WLu!JPea9wq{y;25M9Pl)VTPr8KZ
zo&2WEhu2%nhP&7kj-oU%wzV>qC=QIUmTpLtc$qB_Bab?V*$ExZXaVY%X<P|XD056~
zgV?)z&~zI{Me#|uvHX`UALmq$xPj9VMV=yhPjx~%{JK&cQ0ZTpY0?Q6L9QiB!g`LC
z{(5?$)p>js`xl#+X_!aq>cUzImz@hG5_J@@za9&lZjZ|0GDefk*6ub!B`~d8wIRMg
zsBgqFIxyE+C`ldA>o%TG&I32$lq8Sxi!)vLFyq^aj^jb({zyZQ+egvn;#r;8^d?uj
zQ1+_@7=L!x0t^Ev@M~`ozk!2{U#IjmpfAf}gN!{BdpOsm#?3pk!_%&*4(>f9AgBUc
zwgfI;AD<tSD&pA3#wFz4+_YoMP)YraUx{pJLGj1NyU~)_>F4o0iL#u6SaEWyq`ojT
zQ4p<)UG0ocH&0!takDjU?=c#w`LY&~c)W2{YW{3;n*=ZqNzOODU_Y0ldZjCwaDH+K
z*eprpv4U=rXSo$|MTz=0GrBF3b(zEbuh+l$3sOa9CnnArm-K{iE0H6oZCVf$*2WFt
z$x?!<md#@8pI1E9cpLkL_-=Tf$}6R?1;Fr=-+V&55mXjCqN1qRVXH%EuoMIN*ifjP
zYiIpcC=kqE4reDE^@Ukb1Z#=*bi@l%7#)1Vke>k#iw&Z(ZW6_3;Z24jvrJF|2ZI&S
z#wmc<qeUx2P(%`e2Ll-(ATaP60;-<`r!wD(nINzzka(#`OXA%z9{SXlASL+{>ovJ3
z6b8H{{=MPpN-*2(gI!1i^YNIzF=PW0sESz_Lo~2Bis!LW=_(~7tM_SCj7BL@NhSWx
z>j0Pwj+gM+{V`bN(V0JwEb^zyKU#UJ%Kk0Z@rl5YT)b4$9PG&)n=09j?Blp7s2_G;
zn1&tRgbZ!RKLf|Vcl8D>g6$H#IhBDNH_FR=*lkg~R{`hFvcc9GaQDgkL;Lz!t@z`f
zvuEOiyk-gURo=gXyl2Pbl?38HbSt9-@sbaHyfd-49pcmbl;Z{UZ3SD?1@+Seq}6Q2
z);lv@Gb#cLp1F9lST_nJ3Dh9Vx7f}V6(6WZ)?w{x<G&19PaT=RaB|AOJceC@RD4{+
zt|y*DF5WBV#|GK01t8>DviUQ2TxuVSnQ~PScGRVY6V_<sF<sDPCO(b;ZGvLZG0=PO
z8yd-?e1;0Kj<D+g<n8q+0;-u__Cn4)H>NK}D5;ABHy!G&dmm&<RlcyC>?&G7VV=)=
zeCU3VY9f-X&ljbz>$q9{|A_4O%P<6c`s)lH^N7W?o@2oaQrTO}Fj0PHcXX$CVyS*z
zGrReN#n_$&;Dh;mUt6~F3XBKf(^Lp@{7P+byWBB9qw(*+J+6zn5__I|XW?qZ<qJU%
zZke)LMMp`mztdUVava~95X=f!SZj1_<4TnhHrM?N@=B?5sOYAut2}>^z>k6E)#YOm
z-gw?rbfHbxL!v1-)j~M0`FKK}$-&R(2eFGcpRb%M59Zwg#!ihEpOeFed#?73rMF3t
zOcAMOg>5|^cUL%fLM(t}w6NfBB2RCndVHL#fs(g-bf}96zQlSo_f)aBZ1J{{(I|;!
z%fQ^%tef{pC3mhgcdie&bD@RreyGui2g}IC)4qUi@q`RZftAd)mK<sgw)p1B_Nv0T
z!h<+>Q==6iynT5puC<A4_oA6VxSm_ENBh`PT=5=P{P#1A_fB{`7ph+dGiho1viO66
z3}!c~ozcNEkt&U8mH5#E3O8^Ye;W5jMEcCWnA<KX?!FJ#orB|U+ZIug`wh357Q(4j
z-&aD(u}lk7XLD|1g>(-i+aa2@zrM$LtVm%19k)3^lckSC@=2tQ+r1`(wR>@QztSrb
zxGWE4fAmYR_!wjpRz59^e`-9~GBnWhm}!jOc4u}Tw({?(bCtMNcX3|nQfbJcUgJ5L
zTivZCE?Z}Rb@?}b620{+J}B^RhNV!{(9zP#0h7^785tsxr|WY|Co57{C?=<`2t6Be
z>8iDwwFmNYMlKF3?hADLR#ySLgjz=t-i>(&)dM3tWG@XtMQ4&MC=k2Yw*=O5h>M|m
zIk=938YCg8>}s*nbT(()F<<D2q0TI*fWo>6(lOLzz$0+z&Dc>2$0i9(Wm<%j2+VAx
zD1w0in2Bbnj6}t#D5Fp$2?FFytei5toHxxznRS|`>j>I)(A}>oI4B7Ezi%gTXTo^C
c4gj?G4AzVHrnA4U!Ni!=ky277R(RyU02|n;<NyEw

delta 3689
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

diff --git a/src/lic.ml b/src/lic.ml
index 832bcbfd..89db4579 100644
--- a/src/lic.ml
+++ b/src/lic.ml
@@ -1,4 +1,4 @@
-(* Time-stamp: <modified the 21/07/2017 (at 15:28) by Erwan Jahier> *)
+(* Time-stamp: <modified the 25/03/2018 (at 22:07) by Erwan Jahier> *)
 
 (** Define the Data Structure representing Compiled programs. By
     compiled we mean that constant are propagated, packages are
diff --git a/src/lus2licRun.ml b/src/lus2licRun.ml
index 70770cb9..448681a7 100644
--- a/src/lus2licRun.ml
+++ b/src/lus2licRun.ml
@@ -1,4 +1,4 @@
-(* Time-stamp: <modified the 03/07/2017 (at 10:38) by Erwan Jahier> *)
+(* Time-stamp: <modified the 25/03/2018 (at 22:59) by Erwan Jahier> *)
 (*-----------------------------------------------------------------------
 ** Copyright (C) - Verimag.
 *)
@@ -10,8 +10,8 @@ open Soc
 open SocExecValue
 open RdbgPlugin
 
-let make argv =
-  let opt = Lv6MainArgs.parse argv in
+       
+let make_do argv opt =
   Lv6Verbose.exe ~level:3 (fun () ->
     Gc.set { (Gc.get ()) with Gc.verbose = 0x01 }
   );
@@ -38,7 +38,7 @@ let make argv =
       print_string ("Error: cannot find node "^opt.main_node^" in "^
                        (String.concat "," opt.infiles)^".\n");
       flush stdout;
-      exit 1
+      exit 1 
     )
   in
   let soc = SocUtils.find_no_exc sk soc_tbl in
@@ -104,3 +104,58 @@ let make argv =
     step=step;     
     step_dbg=step_dbg;
   }
+
+open Lv6errors
+open Parsing
+
+let my_exit opt i =
+  if opt.outfile <> "" then (
+      flush opt.oc;
+      close_out opt.oc
+  );
+  flush stdout;
+  flush stderr;
+  (*   if i>0 && Sys.file_exists opt.outfile then Sys.remove opt.outfile; *)
+  exit i
+
+let make argv =
+  let opt = Lv6MainArgs.parse argv in
+  try make_do argv opt with
+  | Sys_error(s) -> prerr_string (s^"\n");  my_exit opt 1 
+  | Global_error s -> print_global_error s; my_exit opt 1 
+  | Parsing.Parse_error ->
+     print_compile_error (Lxm.last_made ()) "Syntax error";
+     exit 1
+
+  | Unknown_var(lxm,id) -> 
+     print_compile_error lxm ("unknown variable (" ^ (Lv6Id.to_string id) ^")");
+     my_exit opt 1
+  | Unknown_constant(lxm,str) -> 
+     print_compile_error lxm ("unknown constant (" ^ str ^")");
+     my_exit opt 1
+  | Compile_error(lxm,msg) -> print_compile_error lxm msg;  my_exit opt 1
+  | L2lCheckLoops.Error(lxm,msg,lic_prg) -> 
+     (* Sometime it helps to see the current state of the faulty program *)
+     let main_node = 
+       if opt.main_node = "" then None else 
+         Some (Lv6Id.idref_of_string opt.main_node)
+     in
+     LicPrg.to_file opt lic_prg main_node;
+     flush  opt.oc;
+     print_compile_error lxm msg;
+     my_exit opt 1
+  | SocExec.AssertViolation lxm ->
+     print_compile_error lxm "An assertion is violated in the Lustre program";
+     my_exit opt 1
+  | Assert_failure (file, line, col)  -> 
+     prerr_string (
+         "\nError: oops, lus2lic internal error\n\tFile \""^ file ^
+           "\", line " ^ (string_of_int line) ^ ", column " ^
+             (string_of_int col) ^ "\nError: when compiling lustre program" ^
+               (if List.length opt.infiles > 1 then "s " else " ") ^
+                 (String.concat ", " opt.infiles) ^ "\n"^
+                   "\nError: You migth want to sent a bug report to "^Lv6version.maintainer ^"\n") ; 
+     flush stderr;
+     my_exit opt 2
+
+       
diff --git a/src/lv6errors.ml b/src/lv6errors.ml
index 984d41ec..6fb6132b 100644
--- a/src/lv6errors.ml
+++ b/src/lv6errors.ml
@@ -1,4 +1,4 @@
-(* Time-stamp: <modified the 06/01/2017 (at 16:32) by Erwan Jahier> *)
+(* Time-stamp: <modified the 25/03/2018 (at 23:10) by Erwan Jahier> *)
 
 (** *)
 
@@ -105,7 +105,7 @@ exception Global_error of string
 Formatage standard des erreurs de compil
 ----------------------------------------------------------------------*)
 let compile_error_string lxm msg = (
-   Printf.sprintf "*** Error %s:\n*** %s\n" (Lxm.details lxm) msg
+   Printf.sprintf "\nError: %s:\nError: %s\n" (Lxm.details lxm) msg
 )
 
 (** ---------------------------------------------------------------------
@@ -128,7 +128,7 @@ let warning lxm msg = (
 Message d'erreur (sans lexeme) sur stderr
 ----------------------------------------------------------------------*)
 let print_global_error msg = (
-   Printf.eprintf "Error. %s\n" msg ;
+   Printf.eprintf "Error: %s\n" msg ;
 	flush stderr
 )
 
diff --git a/src/lv6version.ml b/src/lv6version.ml
index ebfbf033..8aee6963 100644
--- a/src/lv6version.ml
+++ b/src/lv6version.ml
@@ -1,7 +1,7 @@
 (** Automatically generated from Makefile *) 
 let tool = "lus2lic"
 let branch = "master"
-let commit = "734"
-let sha_1 = "342785b6636005cf00391b5d7cabf55334790a59"
+let commit = "735"
+let sha_1 = "8abbfca9d55f544bd32843ea5f36c6f0860d65b0"
 let str = (branch ^ "." ^ commit ^ " (" ^ sha_1 ^ ")")
 let maintainer = "erwan.jahier@univ-grenoble-alpes.fr"
diff --git a/src/main.ml b/src/main.ml
index 6a3923fa..a948821b 100644
--- a/src/main.ml
+++ b/src/main.ml
@@ -1,4 +1,4 @@
-(* Time-stamp: <modified the 21/03/2018 (at 14:18) by Erwan Jahier> *)
+(* Time-stamp: <modified the 25/03/2018 (at 22:27) by Erwan Jahier> *)
 
 open Lv6Verbose
 open AstV6
@@ -18,6 +18,8 @@ let my_exit opt i =
     output_string opt.oc "\nbye\n";
   flush opt.oc;
   close_out opt.oc;
+  flush stdout;
+  flush stderr;
   if i>0 && Sys.file_exists opt.outfile then Sys.remove opt.outfile;
   exit i
 
@@ -33,7 +35,7 @@ let find_a_node opt =
   let name = 
     try Filename.chop_extension (Filename.basename first_file) 
     with _ -> 
-		print_string ("*** Error: '"^first_file^"' is a bad file name.\n"); 
+		print_string ("Error: '"^first_file^"' is a bad file name.\n"); 
       my_exit opt 1
   in
   name
@@ -310,7 +312,8 @@ let main () = (
    ) with 
       Sys_error(s) -> prerr_string (s^"\n");  my_exit opt 1
     | Global_error s -> print_global_error s; my_exit opt 1
-    | Parse_error -> print_compile_error (Lxm.last_made ()) "syntax error"; my_exit opt 1
+    | Parse_error ->
+       print_compile_error (Lxm.last_made ()) "Syntax error"; my_exit opt 1
     | Unknown_var(lxm,id) -> 
       print_compile_error lxm ("unknown variable (" ^ (Lv6Id.to_string id) ^")");
       my_exit opt 1
@@ -329,12 +332,12 @@ let main () = (
        my_exit opt 1
     | Assert_failure (file, line, col)  -> 
       prerr_string (
-        "\n*** oops: lus2lic internal error\n\tFile \""^ file ^
+        "\nError: oops, lus2lic internal error\n\tFile \""^ file ^
           "\", line " ^ (string_of_int line) ^ ", column " ^
-          (string_of_int col) ^ "\n*** when compiling lustre program" ^
+          (string_of_int col) ^ "\nError: when compiling lustre program" ^
           (if List.length opt.infiles > 1 then "s " else " ") ^
           (String.concat ", " opt.infiles) ^ "\n"^
-          "\n*** You migth want to sent a bug report to "^Lv6version.maintainer ^"\n") ; 
+          "\nError: You migth want to sent a bug report to "^Lv6version.maintainer ^"\n") ; 
       flush stderr;
       my_exit opt 2
   );
diff --git a/src/socExecValue.ml b/src/socExecValue.ml
index 2384d166..12905c12 100644
--- a/src/socExecValue.ml
+++ b/src/socExecValue.ml
@@ -1,4 +1,4 @@
-(* Time-stamp: <modified the 26/09/2017 (at 17:27) by Erwan Jahier> *)
+(* Time-stamp: <modified the 25/03/2018 (at 22:16) by Erwan Jahier> *)
 
 let dbg = (Lv6Verbose.get_flag "exec")
 
diff --git a/test/lus2lic.sum b/test/lus2lic.sum
index 958eedb0..75ed0e25 100644
--- a/test/lus2lic.sum
+++ b/test/lus2lic.sum
@@ -1,5 +1,5 @@
 ==> lus2lic0.sum <==
-Test Run By jahier on Thu Mar 22 08:50:03 
+Test Run By jahier on Sun Mar 25 23:05:19 
 Native configuration is x86_64-unknown-linux-gnu
 
 		=== lus2lic0 tests ===
@@ -66,7 +66,7 @@ XFAIL: Test bad programs (assert): test_lus2lic_no_node should_fail/assert/lecte
 XFAIL: Test bad programs (assert): test_lus2lic_no_node should_fail/assert/s.lus
 
 ==> lus2lic1.sum <==
-Test Run By jahier on Thu Mar 22 08:50:04 
+Test Run By jahier on Sun Mar 25 23:05:19 
 Native configuration is x86_64-unknown-linux-gnu
 
 		=== lus2lic1 tests ===
@@ -409,7 +409,7 @@ PASS: sh multipar.sh
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c multipar.lus  {}
 
 ==> lus2lic2.sum <==
-Test Run By jahier on Thu Mar 22 08:50:46 
+Test Run By jahier on Sun Mar 25 23:06:09 
 Native configuration is x86_64-unknown-linux-gnu
 
 		=== lus2lic2 tests ===
@@ -602,7 +602,7 @@ PASS: sh rs.sh
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c rs.lus  {}
 PASS: ./lus2lic  {-2c sample_time_change.lus -n sample_time_change}
 PASS: sh sample_time_change.sh 
-PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c sample_time_change.lus  {}
+FAIL: Try to compare lus2lic -exec and -2c: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c sample_time_change.lus  {}
 PASS: ./lus2lic  {-2c sample_time_change_MainNode.lus -n sample_time_change_MainNode}
 PASS: sh sample_time_change_MainNode.sh 
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c sample_time_change_MainNode.lus  {}
@@ -749,7 +749,7 @@ PASS: sh zzz2.sh
 PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c zzz2.lus  {}
 
 ==> lus2lic3.sum <==
-Test Run By jahier on Thu Mar 22 08:51:30 
+Test Run By jahier on Sun Mar 25 23:06:55 
 Native configuration is x86_64-unknown-linux-gnu
 
 		=== lus2lic3 tests ===
@@ -1258,7 +1258,7 @@ PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node multipar.lus {}
 
 
 ==> lus2lic4.sum <==
-Test Run By jahier on Thu Mar 22 08:52:29 
+Test Run By jahier on Sun Mar 25 23:07:56 
 Native configuration is x86_64-unknown-linux-gnu
 
 		=== lus2lic4 tests ===
@@ -1528,7 +1528,7 @@ PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node rs.lus {}
 PASS: ./lus2lic {} {-o sample_time_change.lic sample_time_change.lus}
 PASS: ./lus2lic {-ec -o sample_time_change.ec sample_time_change.lus}
 PASS: ./myec2c {-o sample_time_change.c sample_time_change.ec}
-PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node sample_time_change.lus {}
+FAIL: Try to compare lus2lic -exec and ecexe: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node sample_time_change.lus {}
 PASS: ./lus2lic {} {-o sample_time_change_MainNode.lic sample_time_change_MainNode.lus}
 PASS: ./lus2lic {-ec -o sample_time_change_MainNode.ec sample_time_change_MainNode.lus}
 PASS: ./myec2c {-o sample_time_change_MainNode.c sample_time_change_MainNode.ec}
@@ -1757,8 +1757,8 @@ PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node zzz2.lus {}
 
 		=== lus2lic2 Summary ===
 
-# of expected passes		327
-# of unexpected failures	1
+# of expected passes		326
+# of unexpected failures	2
 
 ==> lus2lic3.sum <==
 		=== lus2lic3 Summary ===
@@ -1771,18 +1771,18 @@ PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node zzz2.lus {}
 
 		=== lus2lic4 Summary ===
 
-# of expected passes		465
-# of unexpected failures	6
+# of expected passes		464
+# of unexpected failures	7
 ===============================
-# Total number of failures: 13
-lus2lic0.log:testcase ./lus2lic.tests/test0.exp completed in 1 seconds
-lus2lic1.log:testcase ./lus2lic.tests/test1.exp completed in 42 seconds
-lus2lic2.log:testcase ./lus2lic.tests/test2.exp completed in 44 seconds
-lus2lic3.log:testcase ./lus2lic.tests/test3.exp completed in 59 seconds
-lus2lic4.log:testcase ./lus2lic.tests/test4.exp completed in 31 seconds
+# Total number of failures: 15
+lus2lic0.log:testcase ./lus2lic.tests/test0.exp completed in 0 seconds
+lus2lic1.log:testcase ./lus2lic.tests/test1.exp completed in 50 seconds
+lus2lic2.log:testcase ./lus2lic.tests/test2.exp completed in 46 seconds
+lus2lic3.log:testcase ./lus2lic.tests/test3.exp completed in 61 seconds
+lus2lic4.log:testcase ./lus2lic.tests/test4.exp completed in 33 seconds
 * Ref time: 
-118.72user 26.88system 2:57.25elapsed 82%CPU (0avgtext+0avgdata 283400maxresident)k
-8inputs+6007488outputs (0major+21724435minor)pagefaults 0swaps
+125.16user 27.33system 3:09.85elapsed 80%CPU (0avgtext+0avgdata 283484maxresident)k
+0inputs+6068528outputs (0major+17946845minor)pagefaults 0swaps
 * Quick time (-j 4):
-167.43user 35.36system 2:25.12elapsed 139%CPU (0avgtext+0avgdata 283240maxresident)k
-5256inputs+5874296outputs (11major+21309306minor)pagefaults 0swaps
+154.19user 30.98system 1:44.92elapsed 176%CPU (0avgtext+0avgdata 283500maxresident)k
+0inputs+5933600outputs (0major+17590195minor)pagefaults 0swaps
-- 
GitLab