From ef892af6556724b6d04dfb1767dce132f9d97257 Mon Sep 17 00:00:00 2001 From: Vincent Richard Date: Thu, 16 Jan 2014 00:27:51 +0100 Subject: Do not make calls to setlocale() in a library. Use default user locale in tests and examples. --- tests/parser/textTest.cpp | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'tests/parser/textTest.cpp') diff --git a/tests/parser/textTest.cpp b/tests/parser/textTest.cpp index 274687a5..f56f972d 100644 --- a/tests/parser/textTest.cpp +++ b/tests/parser/textTest.cpp @@ -23,6 +23,9 @@ #include "tests/testUtils.hpp" +#include +#include + VMIME_TEST_SUITE_BEGIN(textTest) @@ -78,6 +81,27 @@ VMIME_TEST_SUITE_BEGIN(textTest) } + void setUp() + { + // Set the global C and C++ locale to the user-configured locale. + // The locale should use UTF-8 encoding for these tests to run successfully. + try + { + std::locale::global(std::locale("")); + } + catch (std::exception &) + { + std::setlocale(LC_ALL, ""); + } + } + + void tearDown() + { + // Restore default locale + std::locale::global(std::locale("C")); + } + + void testConstructors() { vmime::text t1; -- cgit v1.2.3