* Bug 11196 (+NR test): some recursive extractions from mlists failed 60/19460/3
Samuel GOUGEON [Sat, 7 Oct 2017 10:31:54 +0000 (12:31 +0200)]
  http://bugzilla.scilab.org/11196

Change-Id: I05647dc50a7c7c740109404e512e0f7b428271c6

scilab/CHANGES.md
scilab/modules/data_structures/tests/nonreg_tests/bug_11196.tst [new file with mode: 0644]

index b2abfb5..57b3e60 100644 (file)
@@ -378,6 +378,7 @@ the [development mailing list](dev@lists.scilab.org) for a particular toolbox.
 * [#9297](http://bugzilla.scilab.org/show_bug.cgi?id=9297): Assigning a mlist to a structure's field failed.
 * [#9519](http://bugzilla.scilab.org/show_bug.cgi?id=9519): The console menu `File -> Open a file` opened any file in Scinotes. Binary files like .zcos blocked Scinotes.
 * [#10270](http://bugzilla.scilab.org/show_bug.cgi?id=10270): `execstr(["%val=[int16(1)";"]"])` needed entering twice <enter> to be actually performed.
+* [#11196](http://bugzilla.scilab.org/show_bug.cgi?id=11196): Some recursive extractions from a mlist failed.
 * [#11756](http://bugzilla.scilab.org/show_bug.cgi?id=11756): In the categories of the ATOMS GUI, actually available modules might be not listed.
 * [#12195](http://bugzilla.scilab.org/show_bug.cgi?id=12195): `generateBlockImage` sometimes changed the current graphic driver.
 * [#12372](http://bugzilla.scilab.org/show_bug.cgi?id=12372): The `mode` function was poorly documented.
diff --git a/scilab/modules/data_structures/tests/nonreg_tests/bug_11196.tst b/scilab/modules/data_structures/tests/nonreg_tests/bug_11196.tst
new file mode 100644 (file)
index 0000000..75da0a3
--- /dev/null
@@ -0,0 +1,30 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2017 - Samuel GOUGEON
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+// <-- Non-regression test for bug 11196 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/11196
+//
+// <-- Short Description -->
+// Some recursive extractions from a mlist could fail.
+//
+// <-- CLI SHELL MODE -->
+// <-- NO CHECK REF -->
+
+A = mlist('A');
+deff('y = %A_e(field, ml)','y = mlist(''A'')');
+
+// Should still succeed:
+assert_checkequal(execstr("A.a.b.c.d.e", "errcatch"), 0);
+assert_checkequal(execstr("A(''a'').b.c.d.e", "errcatch"), 0);
+assert_checkequal(execstr("A.a.b(''c'')(''d'').e", "errcatch"), 0);
+assert_checkequal(execstr("A.a()", "errcatch"), 0);
+
+// Should now succeed:
+assert_checkequal(execstr("A().a", "errcatch"), 0);
+assert_checkequal(execstr("A.a.b()", "errcatch"), 0);