* Bug #8010 fixed: NR test added: %i(1,1)=1 redefined %i 23/18523/5
Samuel GOUGEON [Sun, 28 Aug 2016 17:08:01 +0000 (19:08 +0200)]
  http://bugzilla.scilab.org/8010

Change-Id: Ie3930651c7d71c5fecdd51031e55684987520f90

scilab/CHANGES.md
scilab/modules/core/tests/nonreg_tests/bug_8010.dia.ref [new file with mode: 0644]
scilab/modules/core/tests/nonreg_tests/bug_8010.tst [new file with mode: 0644]

index 859e9fb..ed154ee 100644 (file)
@@ -246,14 +246,15 @@ Bug Fixes
 ---------
 
 ### In 6.0.0:
-* [Bug #2919](http://bugzilla.scilab.org/show_bug.cgi?id=2919) fixed   - The `fchamp` example and demo were unclear and badly rendered
-* [Bug #5723](http://bugzilla.scilab.org/show_bug.cgi?id=5723) fixed   - Cross-references were missing between axis_properties and axes_properties help pages
-* [Bug #7649](http://bugzilla.scilab.org/show_bug.cgi?id=7649) fixed   - `isempty` returned `%F` on `struct()`, `{}` or `list(,)` and was not shortcut
-* [Bug #7696](http://bugzilla.scilab.org/show_bug.cgi?id=7696) fixed   - The `parallel_run` help page was poorly formated
-* [Bug #8356](http://bugzilla.scilab.org/show_bug.cgi?id=8356) fixed   - `sci2exp` applied to lists, tlists or mlists having undefined fields yielded an error or a wrong result.
-* [Bug #8493](http://bugzilla.scilab.org/show_bug.cgi?id=8493) fixed   - Some trivial simplifications of `p1./p2` with matrices of complex-encoded polynomials were not done.
-* [Bug #9153](http://bugzilla.scilab.org/show_bug.cgi?id=9153) fixed   - The `isqualbitwise` help page was inaccurate and badly located
+* [Bug #2919](http://bugzilla.scilab.org/show_bug.cgi?id=2919) fixed - The `fchamp` example and demo were unclear and badly rendered
+* [Bug #5723](http://bugzilla.scilab.org/show_bug.cgi?id=5723) fixed - Cross-references were missing between axis_properties and axes_properties help pages
+* [Bug #7649](http://bugzilla.scilab.org/show_bug.cgi?id=7649) fixed - `isempty` returned `%F` on `struct()`, `{}` or `list(,)` and was not shortcut
+* [Bug #7696](http://bugzilla.scilab.org/show_bug.cgi?id=7696) fixed - The `parallel_run` help page was poorly formated
+* [Bug #8010](http://bugzilla.scilab.org/show_bug.cgi?id=8010) fixed - Permanent variables could be redefined through a syntax like `%i(1,1)=1`
+* [Bug #8356](http://bugzilla.scilab.org/show_bug.cgi?id=8356) fixed - `sci2exp` applied to lists, tlists or mlists having undefined fields yielded an error or a wrong result.
+* [Bug #8493](http://bugzilla.scilab.org/show_bug.cgi?id=8493) fixed - Some trivial simplifications of `p1./p2` with matrices of complex-encoded polynomials were not done.
 * [Bug #9912](http://bugzilla.scilab.org/show_bug.cgi?id=9912) fixed   - In case of missing translated help page, the default en_US was sometimes ignored
+* [Bug #9153](http://bugzilla.scilab.org/show_bug.cgi?id=9153) fixed   - The `isqualbitwise` help page was inaccurate and badly located
 * [Bug #11375](http://bugzilla.scilab.org/show_bug.cgi?id=11375) fixed - When a localized help subdirectory has only a CHAPTER file specifying the section title, it was ignored.
 * [Bug #11692](http://bugzilla.scilab.org/show_bug.cgi?id=11692) fixed - The summary of a help section built from both default en_US and localized files was never sorted overall.
 * [Bug #11959](http://bugzilla.scilab.org/show_bug.cgi?id=11959) fixed - Allow "Zoom Area" to be clicked out of axes
diff --git a/scilab/modules/core/tests/nonreg_tests/bug_8010.dia.ref b/scilab/modules/core/tests/nonreg_tests/bug_8010.dia.ref
new file mode 100644 (file)
index 0000000..08861ad
--- /dev/null
@@ -0,0 +1,32 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2016 - Samuel GOUGEON
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- Non-regression test for bug 8010 -->
+//
+// <-- CLI SHELL MODE -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/8010
+//
+// <-- Short Description -->
+// Permanent variables might be silently redefined, as with %i(1,1)=1
+assert_checkfalse(execstr("%i=1","errcatch")==0);
+assert_checkequal(%i, complex(0,1));
+assert_checkfalse(execstr("%i(1,1)=1","errcatch")==0);
+assert_checkequal(%i, complex(0,1));
+assert_checkfalse(execstr("%e=1","errcatch")==0);
+assert_checkequal(%e, 2.7182818284590451);
+assert_checkfalse(execstr("%e(1,1)=1","errcatch")==0);
+assert_checkequal(%e, 2.7182818284590451);
+assert_checkfalse(execstr("%s=1","errcatch")==0);
+assert_checkequal(%s, poly(0,"s"));
+assert_checkfalse(execstr("%s(1,1)=1","errcatch")==0);
+assert_checkequal(%s, poly(0,"s"));
+assert_checkfalse(execstr("%t=""true""","errcatch")==0);
+assert_checkequal(%t, 1==1);
+assert_checkfalse(execstr("%t(1,1)=""true""","errcatch")==0);
+assert_checkequal(%t, 1==1);
diff --git a/scilab/modules/core/tests/nonreg_tests/bug_8010.tst b/scilab/modules/core/tests/nonreg_tests/bug_8010.tst
new file mode 100644 (file)
index 0000000..a19da02
--- /dev/null
@@ -0,0 +1,36 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2016 - Samuel GOUGEON
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- Non-regression test for bug 8010 -->
+//
+// <-- CLI SHELL MODE -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/8010
+//
+// <-- Short Description -->
+// Permanent variables might be silently redefined, as with %i(1,1)=1
+
+assert_checkfalse(execstr("%i=1","errcatch")==0);
+assert_checkequal(%i, complex(0,1));
+assert_checkfalse(execstr("%i(1,1)=1","errcatch")==0);
+assert_checkequal(%i, complex(0,1));
+
+assert_checkfalse(execstr("%e=1","errcatch")==0);
+assert_checkequal(%e, 2.7182818284590451);
+assert_checkfalse(execstr("%e(1,1)=1","errcatch")==0);
+assert_checkequal(%e, 2.7182818284590451);
+
+assert_checkfalse(execstr("%s=1","errcatch")==0);
+assert_checkequal(%s, poly(0,"s"));
+assert_checkfalse(execstr("%s(1,1)=1","errcatch")==0);
+assert_checkequal(%s, poly(0,"s"));
+
+assert_checkfalse(execstr("%t=""true""","errcatch")==0);
+assert_checkequal(%t, 1==1);
+assert_checkfalse(execstr("%t(1,1)=""true""","errcatch")==0);
+assert_checkequal(%t, 1==1);