[bug_14775] bad error management in load function 26/18626/3
Cedric Delamarre [Fri, 21 Oct 2016 15:47:58 +0000 (17:47 +0200)]
test_run hdf5 bug_14775

Change-Id: Ibdeec0665823c583a55c17850bb7ec8fdc6d19ab

scilab/CHANGES.md
scilab/modules/hdf5/sci_gateway/cpp/sci_hdf5_load.cpp
scilab/modules/hdf5/tests/nonreg_tests/bug_14775.dia.ref [new file with mode: 0644]
scilab/modules/hdf5/tests/nonreg_tests/bug_14775.tst [new file with mode: 0644]

index 243ffb8..39973f7 100644 (file)
@@ -309,7 +309,6 @@ the [development mailing list](dev@lists.scilab.org) for a particular toolbox.
 Bug Fixes
 ---------
 
-<<<<<<< HEAD
 ### Bugs fixed in 6.0.0:
 * [#2919](http://bugzilla.scilab.org/show_bug.cgi?id=2919): The `fchamp` example and demo were unclear and badly rendered
 * [#4327](http://bugzilla.scilab.org/show_bug.cgi?id=4327): Overloading did not support custom types names longer than 8 characters
@@ -380,6 +379,8 @@ Bug Fixes
 * [#14714](http://bugzilla.scilab.org/show_bug.cgi?id=14714): Crash/Leak when deleting datatip
 * [#14784](http://bugzilla.scilab.org/show_bug.cgi?id=14784): Setting field of graphics handle using children($) failed.
 * [#14796](http://bugzilla.scilab.org/show_bug.cgi?id=14796): `ind2sub(dims, [])` returns [] in version 6. Warnings due to a `[]+1` operation have been removed.
+* [#14775](http://bugzilla.scilab.org/show_bug.cgi?id=14775): load empty (0 bytes) .sod File crashes scilab
+* [#14808](http://bugzilla.scilab.org/show_bug.cgi?id=14808): E=[ 'A' 'B' 'C' 'D' 'E']  ,  E(0:0) Crash Scilab Console
 * [#14821](http://bugzilla.scilab.org/show_bug.cgi?id=14821): `getio`function has been added. An error on the diary file opened has been corrected.
 
 ### Bugs fixed in 6.0.0 beta-2 and earlier 6.0.0 pre-releases:
index 282f3db..925ddc7 100644 (file)
@@ -72,14 +72,14 @@ types::Function::ReturnValue sci_hdf5_load(types::typed_list &in, int _iRetCount
 
         switch (err)
         {
-            case 1:
-                Scierror(999, _("%s: %s is not a valid lib file.\n"), fname.data(), filename.data());
-                return types::Function::Error;
+            case 0:
+                break;
             case 2:
                 Scierror(999, "%s: %s", fname.data(), _("Redefining permanent variable.\n"));
                 return types::Function::Error;
             default:
-                break;
+                Scierror(999, _("%s: %s is not a valid lib file.\n"), fname.data(), filename.data());
+                return types::Function::Error;
         }
 
         lib->killMe();
diff --git a/scilab/modules/hdf5/tests/nonreg_tests/bug_14775.dia.ref b/scilab/modules/hdf5/tests/nonreg_tests/bug_14775.dia.ref
new file mode 100644 (file)
index 0000000..66d3aa2
--- /dev/null
@@ -0,0 +1,21 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2016 - Scilab Enterprises - Cedric Delamarre
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- Non-regression test for bug 14775 -->
+//
+// <-- CLI SHELL MODE -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/14775
+//
+// <-- Short Description -->
+//
+// load empty (0 bytes) .sod File crashes scilab
+f = TMPDIR + filesep() + "empty.sod";
+mputl("",f);
+refMsg = msprintf(_("%s: %s is not a valid lib file.\n"), "load", f);
+assert_checkerror("load(f)", refMsg);
diff --git a/scilab/modules/hdf5/tests/nonreg_tests/bug_14775.tst b/scilab/modules/hdf5/tests/nonreg_tests/bug_14775.tst
new file mode 100644 (file)
index 0000000..995129c
--- /dev/null
@@ -0,0 +1,23 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2016 - Scilab Enterprises - Cedric Delamarre
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- Non-regression test for bug 14775 -->
+//
+// <-- CLI SHELL MODE -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/14775
+//
+// <-- Short Description -->
+//
+// load empty (0 bytes) .sod File crashes scilab
+
+
+f = TMPDIR + filesep() + "empty.sod";
+mputl("",f);
+refMsg = msprintf(_("%s: %s is not a valid lib file.\n"), "load", f);
+assert_checkerror("load(f)", refMsg);