Remove locale tests that depend on enviroment variables.

Constructing a std::locale object from an empty string selects the language
from the current environment variables. If the environment variables name
a locale that doesn't exist, or isn't installed, then the construction of
facets using that locale may throw.

This patch removes tests that use 'std::locale l("")'.

The optimal solution would be to manually set the environment variables
in the test. Unfortunately there is no portable way to do this.

llvm-svn: 275772
This commit is contained in:
Eric Fiselier 2016-07-18 06:15:55 +00:00
parent 16a0744955
commit 197228927a
1 changed files with 0 additions and 17 deletions

View File

@ -28,12 +28,10 @@
#include <cassert>
#include "platform_support.h" // locale name macros
#include "assert_checkpoint.h"
int main()
{
{
CHECKPOINT("constructing en-US.UTF-8");
std::locale l(LOCALE_en_US_UTF_8);
{
assert(std::has_facet<std::ctype_byname<char> >(l));
@ -47,21 +45,6 @@ int main()
}
}
{
CHECKPOINT("constructing default locale");
std::locale l("");
{
assert(std::has_facet<std::ctype_byname<char> >(l));
assert(&std::use_facet<std::ctype<char> >(l)
== &std::use_facet<std::ctype_byname<char> >(l));
}
{
assert(std::has_facet<std::ctype_byname<wchar_t> >(l));
assert(&std::use_facet<std::ctype<wchar_t> >(l)
== &std::use_facet<std::ctype_byname<wchar_t> >(l));
}
}
{
CHECKPOINT("constructing C locale");
std::locale l("C");
{
assert(std::has_facet<std::ctype_byname<char> >(l));