* Bug #14637 fixed - Xcos: fix ghost links and Implicit vs Explicit links imports 24/19124/5
Paul Bignier [Tue, 21 Feb 2017 16:02:57 +0000 (17:02 +0100)]
 * Links showing <!--Invalid source--> or <!--Invalid target--> in the xml file are now ignored
 * Not distinguishing Implicit vs Explicit links was buggy when loading an mlist-encoded superblock

Change-Id: I3fbdb16010b515e843f7b26bbf1128af156261c1

scilab/CHANGES.md
scilab/modules/xcos/src/java/org/scilab/modules/xcos/io/sax/LinkHandler.java
scilab/modules/xcos/src/java/org/scilab/modules/xcos/io/scicos/BasicBlockInfo.java
scilab/modules/xcos/tests/nonreg_tests/bug_14637.tst [new file with mode: 0644]
scilab/modules/xcos/tests/nonreg_tests/bug_14637_1.zcos [new file with mode: 0644]
scilab/modules/xcos/tests/nonreg_tests/bug_14637_2.zcos [new file with mode: 0644]

index 96e75b8..b7c1ad6 100644 (file)
@@ -341,12 +341,15 @@ strange behaviors or unexpected results do not hesitate to [report](https://bugz
 * Toolboxes rebuild is in progress. Do not hesitate to submit patch or feature upgrade to
 the [development mailing list](dev@lists.scilab.org) for a particular toolbox.
 
+
 ### Bugs fixed in 6.0.1:
 * [#14636](http://bugzilla.scilab.org/show_bug.cgi?id=14636): Xcos model with modelica electrical blocks (created in 5.5.2) crashed Scilab 6.
+* [#14637](http://bugzilla.scilab.org/show_bug.cgi?id=14367): Some Scilab 5.5.2 diagrams didn't simulate properly in Xcos.
 * [#14978](http://bugzilla.scilab.org/show_bug.cgi?id=15006): ode help page still contained 'root' which has been replaced by 'roots'.
 * [#15010](http://bugzilla.scilab.org/show_bug.cgi?id=15010): Coselica did not simulate on Scilab 6.
 * [#15023](http://bugzilla.scilab.org/show_bug.cgi?id=15023): `clf()` wrongly reset `figure_id`.
 
+
 ### Bugs fixed in 6.0.0:
 * [#592](http://bugzilla.scilab.org/show_bug.cgi?id=592): `linspace(a, b, n<=0)` returned `b` instead of `[]`
 * [#2835](http://bugzilla.scilab.org/show_bug.cgi?id=2835): On negative "initial event", EVTDLY_c took no notice of the input.
index ab5f63f..146994c 100644 (file)
@@ -96,6 +96,8 @@ class LinkHandler implements ScilabHandler {
                 }
                 refList.add(new UnresolvedReference(new ScicosObjectOwner(uid, Kind.LINK), ObjectProperties.SOURCE_PORT, ObjectProperties.CONNECTED_SIGNALS, 0));
             }
+        } else if (atts.getValue("parent") != null) {
+            return null; // Ignore the Scilab 5.5.2 "ghost links" that presented the <!--Invalid source--> tag
         }
 
         v = atts.getValue("target");
@@ -124,4 +126,4 @@ class LinkHandler implements ScilabHandler {
     @Override
     public void endElement(HandledElement found) {
     }
-}
\ No newline at end of file
+}
index 2d58b42..566b972 100644 (file)
@@ -163,7 +163,7 @@ public final class BasicBlockInfo {
                     data.add(p);
                 }
 
-                counterMap.put(p.getClass(), counter + 1);
+                counterMap.put(klass, counter + 1);
             }
         }
 
diff --git a/scilab/modules/xcos/tests/nonreg_tests/bug_14637.tst b/scilab/modules/xcos/tests/nonreg_tests/bug_14637.tst
new file mode 100644 (file)
index 0000000..47aca85
--- /dev/null
@@ -0,0 +1,25 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2017 - Scilab Enterprises - Paul Bignier
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- XCOS TEST -->
+// <-- NO CHECK REF -->
+//
+// <-- Non-regression test for bug 14637 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=14637
+//
+// <-- Short Description -->
+// Some Scilab 5.5.2 diagrams didn't simulate properly in Xcos 6
+
+assert_checktrue(importXcosDiagram("SCI/modules/xcos/tests/nonreg_tests/bug_14637_1.zcos"));
+xcos_simulate(scs_m, 4);
+
+clear scs_m;
+
+assert_checktrue(importXcosDiagram("SCI/modules/xcos/tests/nonreg_tests/bug_14637_2.zcos"));
+xcos_simulate(scs_m, 4);
diff --git a/scilab/modules/xcos/tests/nonreg_tests/bug_14637_1.zcos b/scilab/modules/xcos/tests/nonreg_tests/bug_14637_1.zcos
new file mode 100644 (file)
index 0000000..5ab74de
Binary files /dev/null and b/scilab/modules/xcos/tests/nonreg_tests/bug_14637_1.zcos differ
diff --git a/scilab/modules/xcos/tests/nonreg_tests/bug_14637_2.zcos b/scilab/modules/xcos/tests/nonreg_tests/bug_14637_2.zcos
new file mode 100644 (file)
index 0000000..afa77ae
Binary files /dev/null and b/scilab/modules/xcos/tests/nonreg_tests/bug_14637_2.zcos differ