* Bug #12266 fixed - Stopping Papillon de lorentz demonstration while simulation... 61/10361/4
Alexandre HERISSE [Wed, 30 Jan 2013 17:03:45 +0000 (18:03 +0100)]
Change-Id: I213a853c07557702b9d8b92ea49326c8a627abd7

scilab/CHANGES_5.4.X
scilab/modules/scicos_blocks/src/c/cmscope.c
scilab/modules/xcos/tests/nonreg_tests/bug_12266.dia.ref [new file with mode: 0644]
scilab/modules/xcos/tests/nonreg_tests/bug_12266.tst [new file with mode: 0644]
scilab/modules/xcos/tests/nonreg_tests/bug_12266.xcos [new file with mode: 0644]

index 66e2ff0..7c757d6 100644 (file)
@@ -142,6 +142,9 @@ Xcos
 * Bug #12265 fixed - xcos_simulate help example diagrams were badly rendered
                      due to CLR blocks.
 
+* Bug #12266 fixed - Stopping "Papillon de lorentz" demonstration
+                     while simulation was on made CMSCOPE crash.
+
 
 Documentation
 ==============
index 574f09c..53e4853 100644 (file)
@@ -469,7 +469,7 @@ static void freeScoData(scicos_block * block)
         FREE(sco->scope.disableBufferUpdate);
         FREE(sco->scope.historyUpdateCounter);
 
-        for (i = 0; i < block->insz[0]; i++)
+        for (i = 0; i < block->nin; i++)
         {
             FREE(sco->scope.cachedHistoryPolylinesUIDs[i]);
             FREE(sco->scope.cachedBufferPolylinesUIDs[i]);
diff --git a/scilab/modules/xcos/tests/nonreg_tests/bug_12266.dia.ref b/scilab/modules/xcos/tests/nonreg_tests/bug_12266.dia.ref
new file mode 100644 (file)
index 0000000..b3655f3
--- /dev/null
@@ -0,0 +1,23 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2013 - Scilab Enterprises - Alexandre HERISSE
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// <-- XCOS TEST -->
+//
+// <-- Non-regression test for bug 12266 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=12266
+//
+// <-- Short Description -->
+// Stopping "Papillon de lorentz" demonstration while simulation was on made CMSCOPE crash. 
+clear is_crashed;
+assert_checktrue(importXcosDiagram(SCI + "/modules/xcos/tests/nonreg_tests/bug_12266.xcos"));
+xcos_simulate(scs_m, 4);
+assert_checkequal(length(is_crashed.values), 6);
+clear is_crashed;
+// if segfault appeared on cmscope block at the simulation end, then the second xcos_simulate will fail
+xcos_simulate(scs_m, 4);
+assert_checkequal(length(is_crashed.values), 6);
diff --git a/scilab/modules/xcos/tests/nonreg_tests/bug_12266.tst b/scilab/modules/xcos/tests/nonreg_tests/bug_12266.tst
new file mode 100644 (file)
index 0000000..ad0e595
--- /dev/null
@@ -0,0 +1,27 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2013 - Scilab Enterprises - Alexandre HERISSE
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+// <-- XCOS TEST -->
+//
+// <-- Non-regression test for bug 12266 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=12266
+//
+// <-- Short Description -->
+// Stopping "Papillon de lorentz" demonstration while simulation was on made CMSCOPE crash. 
+
+clear is_crashed;
+assert_checktrue(importXcosDiagram(SCI + "/modules/xcos/tests/nonreg_tests/bug_12266.xcos"));
+xcos_simulate(scs_m, 4);
+assert_checkequal(length(is_crashed.values), 6);
+
+clear is_crashed;
+// if segfault appeared on cmscope block at the simulation end, then the second xcos_simulate will fail
+xcos_simulate(scs_m, 4);
+assert_checkequal(length(is_crashed.values), 6);
+
diff --git a/scilab/modules/xcos/tests/nonreg_tests/bug_12266.xcos b/scilab/modules/xcos/tests/nonreg_tests/bug_12266.xcos
new file mode 100644 (file)
index 0000000..92d8ae9
Binary files /dev/null and b/scilab/modules/xcos/tests/nonreg_tests/bug_12266.xcos differ