1 //===----------------------------------------------------------------------===//
3 // The LLVM Compiler Infrastructure
5 // This file is dual licensed under the MIT and the University of Illinois Open
6 // Source Licenses. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 // Define a bunch of macros that can be used in the tests instead of
11 // implementation defined assumptions:
13 // - floating point number string output
15 #ifndef PLATFORM_SUPPORT_H
16 #define PLATFORM_SUPPORT_H
20 // WARNING: Windows does not support UTF-8 codepages.
21 // Locales are "converted" using http://docs.moodle.org/dev/Table_of_locales
22 #define LOCALE_en_US_UTF_8 "English_United States.1252"
23 #define LOCALE_cs_CZ_ISO8859_2 "Czech_Czech Republic.1250"
24 #define LOCALE_fr_FR_UTF_8 "French_France.1252"
25 #define LOCALE_fr_CA_ISO8859_1 "French_Canada.1252"
26 #define LOCALE_ru_RU_UTF_8 "Russian_Russia.1251"
27 #define LOCALE_zh_CN_UTF_8 "Chinese_China.936"
29 #define LOCALE_en_US_UTF_8 "en_US.UTF-8"
30 #define LOCALE_fr_FR_UTF_8 "fr_FR.UTF-8"
32 #define LOCALE_fr_CA_ISO8859_1 "fr_CA.ISO-8859-1"
33 #define LOCALE_cs_CZ_ISO8859_2 "cs_CZ.ISO-8859-2"
35 #define LOCALE_fr_CA_ISO8859_1 "fr_CA.ISO8859-1"
36 #define LOCALE_cs_CZ_ISO8859_2 "cs_CZ.ISO8859-2"
38 #define LOCALE_ru_RU_UTF_8 "ru_RU.UTF-8"
39 #define LOCALE_zh_CN_UTF_8 "zh_CN.UTF-8"
45 #if defined(_LIBCPP_MSVCRT) || defined(__MINGW32__)
46 #include <io.h> // _mktemp
48 #include <unistd.h> // close
55 #if defined(_LIBCPP_MSVCRT) || defined(__MINGW32__)
56 char Path[MAX_PATH+1];
58 do { } while (0 == GetTempPath(MAX_PATH+1, Path));
59 do { } while (0 == GetTempFileName(Path, "libcxx", 0, FN));
65 Name = "libcxx.XXXXXX";
66 FD = mkstemp(&Name[0]);
67 assert(errno != EINVAL && "Something is wrong with the mkstemp's argument");
68 } while (FD == -1 || errno == EEXIST);
74 #endif // PLATFORM_SUPPORT_H