* Bug #13166: NR test added: 'l' & 'b' flags were sticky in mget & mgeti 21/18521/4
Samuel GOUGEON [Sat, 27 Aug 2016 18:21:06 +0000 (20:21 +0200)]
  http://bugzilla.scilab.org/13166

Change-Id: I3e4ea246f5574664e89861071358bda0f9ccd119

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

index ed154ee..0909fbe 100644 (file)
@@ -259,6 +259,7 @@ Bug Fixes
 * [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
 * [Bug #12110](http://bugzilla.scilab.org/show_bug.cgi?id=12110) fixed - Unable to zoom multiple axes at once
+* [Bug #13166](http://bugzilla.scilab.org/show_bug.cgi?id=13166) fixed - `l` and `b` endian flags used with `mget` and `mgeti` were sticky
 * [Bug #13583](http://bugzilla.scilab.org/show_bug.cgi?id=13583) fixed - `getd` loading a script including a `clear` instruction yielded an error
 * [Bug #13597](http://bugzilla.scilab.org/show_bug.cgi?id=13597) fixed - `help format` claimed setting a number of digits instead of characters
 * [Bug #13757](http://bugzilla.scilab.org/show_bug.cgi?id=13757) fixed - The toolbox menu dit not load properly ATOMS modules not autoloaded.
diff --git a/scilab/modules/fileio/tests/nonreg_tests/bug_13166.dia.ref b/scilab/modules/fileio/tests/nonreg_tests/bug_13166.dia.ref
new file mode 100644 (file)
index 0000000..3b8c134
--- /dev/null
@@ -0,0 +1,43 @@
+// =============================================================================
+// 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.
+// =============================================================================
+//
+// <-- CLI SHELL MODE -->
+//
+// <-- Non-regression test for bug 13166 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/13166
+//
+// <-- Short Description -->
+// The "l" and "b" endian modes were sticky with mget and mgeti
+binfile = TMPDIR+"/mgetest.bin";
+idF = mopen(binfile, "wb");
+mput(int8(0:16),"uc");
+mclose(idF);
+for mod = ["c" "uc" "s" "us" "i" "ui" "l" "ul"]
+    idF = mopen(binfile, "rb");
+    dres = mget(1, mod);   // Default endian mode
+    mseek(0);
+    mget(1, mod+"l");
+    mseek(0);
+    assert_checkequal(mget(1,mod), dres);
+    mseek(0);
+    mget(1, mod+"b");
+    mseek(0);
+    assert_checkequal(mget(1, mod), dres);
+    mseek(0);
+    dres = mgeti(1, mod);
+    mseek(0);
+    mgeti(1, mod+"l");
+    mseek(0);
+    assert_checkequal(mgeti(1, mod), dres);
+    mseek(0);
+    mgeti(1, mod+"b");
+    mseek(0);
+    assert_checkequal(mgeti(1, mod), dres);
+    mclose(idF);
+end
diff --git a/scilab/modules/fileio/tests/nonreg_tests/bug_13166.tst b/scilab/modules/fileio/tests/nonreg_tests/bug_13166.tst
new file mode 100644 (file)
index 0000000..badb0e8
--- /dev/null
@@ -0,0 +1,48 @@
+// =============================================================================
+// 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.
+// =============================================================================
+//
+// <-- CLI SHELL MODE -->
+//
+// <-- Non-regression test for bug 13166 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/13166
+//
+// <-- Short Description -->
+// The "l" and "b" endian modes were sticky with mget and mgeti
+
+binfile = TMPDIR+"/mgetest.bin";
+idF = mopen(binfile, "wb");
+mput(int8(0:16),"uc");
+mclose(idF);
+
+for mod = ["c" "uc" "s" "us" "i" "ui" "l" "ul"]
+    idF = mopen(binfile, "rb");
+    dres = mget(1, mod);   // Default endian mode
+
+    mseek(0);
+    mget(1, mod+"l");
+    mseek(0);
+    assert_checkequal(mget(1,mod), dres);
+    mseek(0);
+    mget(1, mod+"b");
+    mseek(0);
+    assert_checkequal(mget(1, mod), dres);
+
+    mseek(0);
+    dres = mgeti(1, mod);
+    mseek(0);
+    mgeti(1, mod+"l");
+    mseek(0);
+    assert_checkequal(mgeti(1, mod), dres);
+    mseek(0);
+    mgeti(1, mod+"b");
+    mseek(0);
+    assert_checkequal(mgeti(1, mod), dres);
+
+    mclose(idF);
+end