bug_14204: fix swap of error messages in dec2base 42/17342/3
Antoine ELIAS [Mon, 19 Oct 2015 14:53:26 +0000 (16:53 +0200)]
Change-Id: Ice980d880897cb0373cf10fb927ed021b5ca052e

scilab/CHANGES_6.0.X
scilab/modules/elementary_functions/sci_gateway/c/sci_dec2base.c
scilab/modules/elementary_functions/tests/nonreg_tests/bug_14204.dia.ref [new file with mode: 0644]
scilab/modules/elementary_functions/tests/nonreg_tests/bug_14204.tst [new file with mode: 0644]

index 5ef655f..dd04a59 100644 (file)
@@ -134,6 +134,8 @@ Scilab Bug Fixes
 
 * Bug #14203 fixed - Improve some error messages, some help pages and some comments.
 
+* Bug #14204 fixed - dec2bin ( dec2base ) must show a better error message for too large values.
+
 * Bug #14205 fixed - Console crash when assigning uint32 numbers to double matrix.
 
 * Bug #14209 fixed - 1:245 created infinite loop.
index 193e4bb..0461866 100644 (file)
@@ -169,11 +169,11 @@ int sci_dec2base(char *fname, void* pvApiCtx)
         switch (err)
         {
             case ERROR_CONVERTBASE_NOT_INTEGER_VALUE:
-                Scierror(999, _("%s: Wrong value for input argument #%d: Must be between 0 and 2^52.\n"), fname, 1);
+                Scierror(999, _("%s: Wrong value(s) for input argument #%d: A matrix of positive integer values expected.\n"), fname, 1);
                 return 1;
 
             case ERROR_CONVERTBASE_NOT_IN_INTERVAL:
-                Scierror(999, _("%s: Wrong value(s) for input argument #%d: A matrix of positive integer values expected.\n"), fname, 1);
+                Scierror(999, _("%s: Wrong value for input argument #%d: Must be between 0 and 2^52.\n"), fname, 1);
                 return 1;
 
             case ERROR_CONVERTBASE_ALLOCATION:
@@ -187,7 +187,7 @@ int sci_dec2base(char *fname, void* pvApiCtx)
         }
     }
 
-    sciErr = createMatrixOfString(pvApiCtx, nbInputArgument(pvApiCtx) + 1, m, n, (char const* const*) convertedValues);
+    sciErr = createMatrixOfString(pvApiCtx, nbInputArgument(pvApiCtx) + 1, m, n, (char const * const*) convertedValues);
     freeArrayOfString(convertedValues, m * n);
     convertedValues = NULL;
 
diff --git a/scilab/modules/elementary_functions/tests/nonreg_tests/bug_14204.dia.ref b/scilab/modules/elementary_functions/tests/nonreg_tests/bug_14204.dia.ref
new file mode 100644 (file)
index 0000000..45936d2
--- /dev/null
@@ -0,0 +1,16 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2015 - Scilab Enterprises - Antoine ELIAS
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// <-- CLI SHELL MODE -->
+// <-- Non-regression test for bug 14204 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=14204
+//
+// <-- Short Description -->
+// dec2bin ( dec2base ) must show a better error message for too large values.
+err = msprintf(_("%s: Wrong value for input argument #%d: Must be between 0 and 2^52.\n"), "dec2base", 1);
+assert_checkerror("dec2bin(uint64(2^53))", err, 999);
diff --git a/scilab/modules/elementary_functions/tests/nonreg_tests/bug_14204.tst b/scilab/modules/elementary_functions/tests/nonreg_tests/bug_14204.tst
new file mode 100644 (file)
index 0000000..b45ae64
--- /dev/null
@@ -0,0 +1,19 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2015 - Scilab Enterprises - Antoine ELIAS
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+// <-- CLI SHELL MODE -->
+
+// <-- Non-regression test for bug 14204 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=14204
+//
+// <-- Short Description -->
+// dec2bin ( dec2base ) must show a better error message for too large values.
+
+err = msprintf(_("%s: Wrong value for input argument #%d: Must be between 0 and 2^52.\n"), "dec2base", 1);
+assert_checkerror("dec2bin(uint64(2^53))", err, 999);