Xcos: add a function type for debugging 30/2630/6
Clément DAVID [Mon, 29 Nov 2010 13:58:27 +0000 (14:58 +0100)]
Without this modification, the SCICOS_DEBUG block was not working.

Bug: 8480
Change-Id: I848465e47928b544aa42a3ed2627f62e55114d40

scilab/CHANGES_5.3.X
scilab/modules/xcos/src/java/org/scilab/modules/xcos/block/BasicBlock.java
scilab/modules/xcos/tests/nonreg_tests/bug_8480.dia.ref [new file with mode: 0644]
scilab/modules/xcos/tests/nonreg_tests/bug_8480.tst [new file with mode: 0644]
scilab/modules/xcos/tests/nonreg_tests/bug_8480.xcos [new file with mode: 0644]

index c9ac4c2..4704e05 100644 (file)
@@ -63,6 +63,7 @@ Xcos:
 
 * bug 7639 fixed - Generating code for scilab function block was failing with
                    a syntax error message.
+* bug 8480 fixed - The Debug block did not have a valid function type.
 
 
 Module skeleton:
index 48fb960..6008a9f 100644 (file)
@@ -256,7 +256,7 @@ public class BasicBlock extends ScilabGraphUniqueObject implements Serializable
         */
        public static enum SimulationFunctionType {
                ESELECT(-2.0), IFTHENELSE(-1.0), DEFAULT(0.0), TYPE_1(1.0), TYPE_2(2.0),
-                   TYPE_3(3.0), C_OR_FORTRAN(4.0), SCILAB(5.0), MODELICA(30004.0), UNKNOWN(5.0), OLDBLOCKS(10001.0), IMPLICIT_C_OR_FORTRAN(10004.0);
+                   TYPE_3(3.0), C_OR_FORTRAN(4.0), SCILAB(5.0), DEBUG(99), MODELICA(30004.0), UNKNOWN(5.0), OLDBLOCKS(10001.0), IMPLICIT_C_OR_FORTRAN(10004.0);
 
                private double value;
 
diff --git a/scilab/modules/xcos/tests/nonreg_tests/bug_8480.dia.ref b/scilab/modules/xcos/tests/nonreg_tests/bug_8480.dia.ref
new file mode 100644 (file)
index 0000000..046faea
--- /dev/null
@@ -0,0 +1,247 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2010 - DIGITEO - Clément DAVID
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- ENGLISH IMPOSED -->
+//
+// <-- TEST WITH XCOS -->
+//
+// <-- Non-regression test for bug 8480 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=8480
+//
+// <-- Short Description -->
+// The debug block did not have a valid function type.
+//
+// start a clean scilab
+Result_ref=[1,4,0;
+1,4,0;
+2,4,0;
+2,4,0;
+3,4,0;
+3,4,0;
+8,4,0;
+8,4,0;
+9,4,0;
+9,4,0;
+1,6,0;
+1,6,0;
+2,6,0;
+2,6,0;
+3,6,0;
+3,6,0;
+8,6,0;
+8,6,0;
+9,6,0;
+9,6,0;
+1,6,0;
+1,6,0;
+2,6,0;
+2,6,0;
+3,6,0;
+3,6,0;
+8,6,0;
+8,6,0;
+9,6,0;
+9,6,0;
+1,6,0;
+1,6,0;
+2,6,0;
+2,6,0;
+3,6,0;
+3,6,0;
+8,6,0;
+8,6,0;
+9,6,0;
+9,6,0;
+1,1,0;
+1,1,0;
+3,1,0;
+3,1,0;
+8,1,0;
+8,1,0;
+9,1,0;
+9,1,0;
+2,1,0;
+2,1,0;
+3,2,0;
+3,2,0;
+8,3,0;
+8,3,0;
+8,2,0;
+8,2,0;
+9,2,0;
+9,2,0;
+1,1,0.5;
+1,1,0.5;
+3,1,0.5;
+3,1,0.5;
+8,1,0.5;
+8,1,0.5;
+9,1,0.5;
+9,1,0.5;
+2,1,0.5;
+2,1,0.5;
+3,2,0.5;
+3,2,0.5;
+8,3,0.5;
+8,3,0.5;
+8,2,0.5;
+8,2,0.5;
+9,2,0.5;
+9,2,0.5;
+1,5,1;
+1,5,1;
+2,5,1;
+2,5,1;
+3,5,1;
+3,5,1;
+8,5,1;
+8,5,1;
+9,5,1;
+9,5,1];
+importXcosDiagram('SCI/modules/xcos/tests/nonreg_tests/bug_8480.xcos');
+global Result;Result=[];
+Info=scicos_simulate(scs_m,list());
+block 1 is called with flag 4 at time 0.000000 
+Entering the block 
+Leaving block 1 
+block 2 is called with flag 4 at time 0.000000 
+Entering the block 
+Leaving block 2 
+block 3 is called with flag 4 at time 0.000000 
+Entering the block 
+Leaving block 3 
+block 5 is called with flag 4 at time 0.000000 
+Entering the block 
+Leaving block 5 
+block 6 is called with flag 4 at time 0.000000 
+Entering the block 
+Leaving block 6 
+block 1 is called with flag 6 at time 0.000000 
+Entering the block 
+Leaving block 1 
+block 2 is called with flag 6 at time 0.000000 
+Entering the block 
+Leaving block 2 
+block 3 is called with flag 6 at time 0.000000 
+Entering the block 
+Leaving block 3 
+block 5 is called with flag 6 at time 0.000000 
+Entering the block 
+Leaving block 5 
+block 6 is called with flag 6 at time 0.000000 
+Entering the block 
+Leaving block 6 
+block 1 is called with flag 6 at time 0.000000 
+Entering the block 
+Leaving block 1 
+block 2 is called with flag 6 at time 0.000000 
+Entering the block 
+Leaving block 2 
+block 3 is called with flag 6 at time 0.000000 
+Entering the block 
+Leaving block 3 
+block 5 is called with flag 6 at time 0.000000 
+Entering the block 
+Leaving block 5 
+block 6 is called with flag 6 at time 0.000000 
+Entering the block 
+Leaving block 6 
+block 1 is called with flag 6 at time 0.000000 
+Entering the block 
+Leaving block 1 
+block 2 is called with flag 6 at time 0.000000 
+Entering the block 
+Leaving block 2 
+block 3 is called with flag 6 at time 0.000000 
+Entering the block 
+Leaving block 3 
+block 5 is called with flag 6 at time 0.000000 
+Entering the block 
+Leaving block 5 
+block 6 is called with flag 6 at time 0.000000 
+Entering the block 
+Leaving block 6 
+Event: 1 activated at t=0.000000
+**mod**
+block 1 is called with flag 1 at time 0.000000 
+Entering the block 
+Leaving block 1 
+block 3 is called with flag 1 at time 0.000000 
+Entering the block 
+Leaving block 3 
+block 5 is called with flag 1 at time 0.000000 
+Entering the block 
+Leaving block 5 
+block 6 is called with flag 1 at time 0.000000 
+Entering the block 
+Leaving block 6 
+block 2 is called with flag 1 at time 0.000000 
+Entering the block 
+Leaving block 2 
+block 3 is called with flag 2 at time 0.000000 
+Entering the block 
+Leaving block 3 
+block 5 is called with flag 3 at time 0.000000 
+Entering the block 
+Leaving block 5 
+block 5 is called with flag 2 at time 0.000000 
+Entering the block 
+Leaving block 5 
+block 6 is called with flag 2 at time 0.000000 
+Entering the block 
+Leaving block 6 
+End of activation
+Event: 1 activated at t=0.500000
+**mod**
+block 1 is called with flag 1 at time 0.500000 
+Entering the block 
+Leaving block 1 
+block 3 is called with flag 1 at time 0.500000 
+Entering the block 
+Leaving block 3 
+block 5 is called with flag 1 at time 0.500000 
+Entering the block 
+Leaving block 5 
+block 6 is called with flag 1 at time 0.500000 
+Entering the block 
+Leaving block 6 
+block 2 is called with flag 1 at time 0.500000 
+Entering the block 
+Leaving block 2 
+block 3 is called with flag 2 at time 0.500000 
+Entering the block 
+Leaving block 3 
+block 5 is called with flag 3 at time 0.500000 
+Entering the block 
+Leaving block 5 
+block 5 is called with flag 2 at time 0.500000 
+Entering the block 
+Leaving block 5 
+block 6 is called with flag 2 at time 0.500000 
+Entering the block 
+Leaving block 6 
+End of activation
+block 1 is called with flag 5 at time 1.000000 
+Entering the block 
+Leaving block 1 
+block 2 is called with flag 5 at time 1.000000 
+Entering the block 
+Leaving block 2 
+block 3 is called with flag 5 at time 1.000000 
+Entering the block 
+Leaving block 3 
+block 5 is called with flag 5 at time 1.000000 
+Entering the block 
+Leaving block 5 
+block 6 is called with flag 5 at time 1.000000 
+Entering the block 
+Leaving block 6 
+if ~and(Result==Result_ref) then bugmes();quit;end
+//k=find(Result(:,1)<>Result_ref(:,1));
+clearglobal Result
diff --git a/scilab/modules/xcos/tests/nonreg_tests/bug_8480.tst b/scilab/modules/xcos/tests/nonreg_tests/bug_8480.tst
new file mode 100644 (file)
index 0000000..eb31f49
--- /dev/null
@@ -0,0 +1,113 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2010 - DIGITEO - Clément DAVID
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- ENGLISH IMPOSED -->
+//
+// <-- TEST WITH XCOS -->
+//
+// <-- Non-regression test for bug 8480 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=8480
+//
+// <-- Short Description -->
+// The debug block did not have a valid function type.
+//
+
+// start a clean scilab
+Result_ref=[1,4,0;
+1,4,0;
+2,4,0;
+2,4,0;
+3,4,0;
+3,4,0;
+8,4,0;
+8,4,0;
+9,4,0;
+9,4,0;
+1,6,0;
+1,6,0;
+2,6,0;
+2,6,0;
+3,6,0;
+3,6,0;
+8,6,0;
+8,6,0;
+9,6,0;
+9,6,0;
+1,6,0;
+1,6,0;
+2,6,0;
+2,6,0;
+3,6,0;
+3,6,0;
+8,6,0;
+8,6,0;
+9,6,0;
+9,6,0;
+1,6,0;
+1,6,0;
+2,6,0;
+2,6,0;
+3,6,0;
+3,6,0;
+8,6,0;
+8,6,0;
+9,6,0;
+9,6,0;
+1,1,0;
+1,1,0;
+3,1,0;
+3,1,0;
+8,1,0;
+8,1,0;
+9,1,0;
+9,1,0;
+2,1,0;
+2,1,0;
+3,2,0;
+3,2,0;
+8,3,0;
+8,3,0;
+8,2,0;
+8,2,0;
+9,2,0;
+9,2,0;
+1,1,0.5;
+1,1,0.5;
+3,1,0.5;
+3,1,0.5;
+8,1,0.5;
+8,1,0.5;
+9,1,0.5;
+9,1,0.5;
+2,1,0.5;
+2,1,0.5;
+3,2,0.5;
+3,2,0.5;
+8,3,0.5;
+8,3,0.5;
+8,2,0.5;
+8,2,0.5;
+9,2,0.5;
+9,2,0.5;
+1,5,1;
+1,5,1;
+2,5,1;
+2,5,1;
+3,5,1;
+3,5,1;
+8,5,1;
+8,5,1;
+9,5,1;
+9,5,1];
+importXcosDiagram('SCI/modules/xcos/tests/nonreg_tests/bug_8480.xcos');
+global Result;Result=[];
+Info=scicos_simulate(scs_m,list());
+if ~and(Result==Result_ref) then pause,end
+//k=find(Result(:,1)<>Result_ref(:,1));
+clearglobal Result
diff --git a/scilab/modules/xcos/tests/nonreg_tests/bug_8480.xcos b/scilab/modules/xcos/tests/nonreg_tests/bug_8480.xcos
new file mode 100644 (file)
index 0000000..cd0a525
Binary files /dev/null and b/scilab/modules/xcos/tests/nonreg_tests/bug_8480.xcos differ