* Bug #14524 fixed - Numeric locales were not set to standard "C" by default at scila... 00/18200/7
Simon Marchetto [Thu, 30 Jun 2016 08:01:29 +0000 (10:01 +0200)]
Change-Id: Ia29c505c959b25fcaffa4c7fe752fa826c8601cf

scilab/modules/core/src/cpp/InitScilab.cpp
scilab/modules/string/tests/nonreg_tests/bug_14524.dia.ref [new file with mode: 0644]
scilab/modules/string/tests/nonreg_tests/bug_14524.tst [new file with mode: 0644]
scilab/modules/string/tests/nonreg_tests/bug_14568.dia.ref [new file with mode: 0644]
scilab/modules/string/tests/nonreg_tests/bug_14568.tst [new file with mode: 0644]
scilab/modules/string/tests/nonreg_tests/bug_14568_test.dia.ref [new file with mode: 0644]
scilab/modules/string/tests/nonreg_tests/bug_14568_test.tst [new file with mode: 0644]

index 7469286..fceee00 100644 (file)
@@ -183,9 +183,6 @@ int StartScilabEngine(ScilabEngineInfo* _pSEI)
     fpsetmask(0);
 #endif
 
-    // Make sure the default locale is applied at startup
-    setlocale(LC_NUMERIC, "C");
-
     ThreadManagement::initialize();
     NumericConstants::Initialize();
     checkForLinkerErrors();
@@ -262,6 +259,9 @@ int StartScilabEngine(ScilabEngineInfo* _pSEI)
         Add_Boolean_Constant(L"%gui", true);
     }
 
+    // Make sure the default locale is applied at startup
+    std::setlocale(LC_NUMERIC, "C");
+
     /* Standard mode -> init Java Console */
     if (_pSEI->iConsoleMode == 0)
     {
diff --git a/scilab/modules/string/tests/nonreg_tests/bug_14524.dia.ref b/scilab/modules/string/tests/nonreg_tests/bug_14524.dia.ref
new file mode 100644 (file)
index 0000000..01e357a
--- /dev/null
@@ -0,0 +1,23 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2016 - Scilab Enterprises - 
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// <-- Non-regression test for bug 14524 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/14524
+//
+// <-- Short Description -->
+// Numeric locales were not set to standard "C" by default at scilab startup
+format('e',10)
+disp(1/2)
+   5.000D-01
+disp(0.5)
+   5.000D-01
+format('v',10)
+disp(1/2)
+   0.5
+disp(0.5)
+   0.5
diff --git a/scilab/modules/string/tests/nonreg_tests/bug_14524.tst b/scilab/modules/string/tests/nonreg_tests/bug_14524.tst
new file mode 100644 (file)
index 0000000..d42d1c3
--- /dev/null
@@ -0,0 +1,21 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2016 - Scilab Enterprises
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// <-- Non-regression test for bug 14524 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/14524
+//
+// <-- Short Description -->
+// Numeric locales were not set to standard "C" by default at scilab startup
+
+format('e',10)
+disp(1/2)
+disp(0.5)
+
+format('v',10)
+disp(1/2)
+disp(0.5)
diff --git a/scilab/modules/string/tests/nonreg_tests/bug_14568.dia.ref b/scilab/modules/string/tests/nonreg_tests/bug_14568.dia.ref
new file mode 100644 (file)
index 0000000..7925763
--- /dev/null
@@ -0,0 +1,21 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2016 - Scilab Enterprises
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// <-- Non-regression test for bug 14568 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/14568
+//
+// <-- Short Description -->
+// strtod() fails in some locale conditions
+// No way to set locale for the current test => run another test with a modified locale
+setenv("LC_ALL", "fr_FR.UTF-8");
+status = test_run("string", "bug_14568_test", ["no_check_error_output", "no_check_ref", "short_summary"]);
+   001/001 - [string] bug_14568_test............................passed
+   --------------------------------------------------------------------------
+   Tests:    1,    Passed:    1,    Failed:    0,    Skipped:    0
+   --------------------------------------------------------------------------
+assert_checktrue(status);
diff --git a/scilab/modules/string/tests/nonreg_tests/bug_14568.tst b/scilab/modules/string/tests/nonreg_tests/bug_14568.tst
new file mode 100644 (file)
index 0000000..fb3df75
--- /dev/null
@@ -0,0 +1,21 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2016 - Scilab Enterprises
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// <-- Non-regression test for bug 14568 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/14568
+//
+// <-- Short Description -->
+// strtod() fails in some locale conditions
+
+// No way to set locale for the current test => run another test with a modified locale
+
+setenv("LC_ALL", "fr_FR.UTF-8");
+
+status = test_run("string", "bug_14568_test", ["no_check_error_output", "no_check_ref", "short_summary"]);
+
+assert_checktrue(status);
\ No newline at end of file
diff --git a/scilab/modules/string/tests/nonreg_tests/bug_14568_test.dia.ref b/scilab/modules/string/tests/nonreg_tests/bug_14568_test.dia.ref
new file mode 100644 (file)
index 0000000..7ed154c
--- /dev/null
@@ -0,0 +1,8 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2016 - Scilab Enterprises
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// This test is run by 14568 test, with test_run() command with a modified locale
+assert_checkequal(strtod("0.5"), 0.5);
diff --git a/scilab/modules/string/tests/nonreg_tests/bug_14568_test.tst b/scilab/modules/string/tests/nonreg_tests/bug_14568_test.tst
new file mode 100644 (file)
index 0000000..01469f6
--- /dev/null
@@ -0,0 +1,12 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2016 - Scilab Enterprises
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+
+// This test is run by 14568 test, with test_run() command with a modified locale
+
+assert_checkequal(strtod("0.5"), 0.5);
+