Xcos do_eval: display the error message into the console if applicable 24/9924/4
Clément DAVID [Tue, 4 Dec 2012 16:45:01 +0000 (17:45 +0100)]
Change-Id: I77a84928e01a8948fdbc8ca6e6510b8b639d7a9d

scilab/modules/scicos/macros/scicos_scicos/setvalue.sci
scilab/modules/xcos/tests/unit_tests/error_reporting_nw.dia.ref [new file with mode: 0644]
scilab/modules/xcos/tests/unit_tests/error_reporting_nw.tst [new file with mode: 0644]

index ce67fab..7b269a7 100644 (file)
@@ -252,13 +252,21 @@ while %t do
   if %noooo>0 then
     str = gettext("%s: invalid dimension for ''%s'', waiting for %s");
     mess = msprintf(str, 'setvalue', %lables(%noooo), %ssss);
-    warnBlockByUID(arg1.doc(1), mess); // arg1 is from the block interface function
+    if length(arg1.doc) > 0 then
+        warnBlockByUID(arg1.doc(1), mess); // arg1 is from the block interface function
+    else
+        disp(mess);
+    end
     %ini=%str
     %ok=%f;break
   elseif %noooo<0 then
     str = gettext("%s: incorrect type for ''%s'', getting %s");
     mess = msprintf(str, 'setvalue', %lables(-%noooo), %typ(-2*%noooo-1));
-    warnBlockByUID(arg1.doc(1), mess); // arg1 is from the block interface function
+    if length(arg1.doc) > 0 then
+        warnBlockByUID(arg1.doc(1), mess); // arg1 is from the block interface function
+    else
+        disp(mess);
+    end
     %ini=%str
     %ok=%f;break
   else
diff --git a/scilab/modules/xcos/tests/unit_tests/error_reporting_nw.dia.ref b/scilab/modules/xcos/tests/unit_tests/error_reporting_nw.dia.ref
new file mode 100644 (file)
index 0000000..da1d2ff
--- /dev/null
@@ -0,0 +1,28 @@
+// ============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2011 - DIGITEO - Clément DAVID
+//
+//  This file is distributed under the same license as the Scilab package.
+// ============================================================================
+//
+// <-- XCOS TEST -->
+// <-- ENGLISH IMPOSED -->
+//
+// <-- Short Description -->
+// Check all the possible errors which should be reported on the diagram.
+//-----------------------------------------------------------------------------
+// at edition (sb port numbering)
+//-----------------------------------------------------------------------------
+// Check the report against wrong port numbering on super block
+assert_checktrue(importXcosDiagram(SCI + "/modules/xcos/tests/unit_tests/error_sb_port_numbering.xcos"));
+scicos_simulate(scs_m, "nw");
+//-----------------------------------------------------------------------------
+// on do_eval (context evaluation)
+//-----------------------------------------------------------------------------
+// Check the report against an invalid context value
+assert_checktrue(importXcosDiagram(SCI + "/modules/xcos/tests/unit_tests/error_blocks_with_updated_context.xcos"));
+scicos_simulate(scs_m, "nw");
+!Evaluation problem: value not updated from context.  !
+!                                                     !
+!Initial condition x0 should be inside the limits     !
diff --git a/scilab/modules/xcos/tests/unit_tests/error_reporting_nw.tst b/scilab/modules/xcos/tests/unit_tests/error_reporting_nw.tst
new file mode 100644 (file)
index 0000000..f9ad3e8
--- /dev/null
@@ -0,0 +1,31 @@
+// ============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2011 - DIGITEO - Clément DAVID
+//
+//  This file is distributed under the same license as the Scilab package.
+// ============================================================================
+//
+// <-- XCOS TEST -->
+// <-- ENGLISH IMPOSED -->
+//
+// <-- Short Description -->
+// Check all the possible errors which should be reported on the diagram.
+
+
+//-----------------------------------------------------------------------------
+// at edition (sb port numbering)
+//-----------------------------------------------------------------------------
+
+// Check the report against wrong port numbering on super block
+assert_checktrue(importXcosDiagram(SCI + "/modules/xcos/tests/unit_tests/error_sb_port_numbering.xcos"));
+scicos_simulate(scs_m, "nw");
+
+//-----------------------------------------------------------------------------
+// on do_eval (context evaluation)
+//-----------------------------------------------------------------------------
+
+// Check the report against an invalid context value
+assert_checktrue(importXcosDiagram(SCI + "/modules/xcos/tests/unit_tests/error_blocks_with_updated_context.xcos"));
+scicos_simulate(scs_m, "nw");
+
+