Explorar o código

[test] Add target_info for NetBSD, and XFAIL some of locale tests

Add a target_info definition for NetBSD.  The definition is based
on the one used by FreeBSD, with libcxxrt replaced by libc++abi,
and using llvm-libunwind since we need to use its unwinder
implementation to build anyway.

Additionally, XFAIL the 30 tests that fail because of non-implemented
locale features.  According to the manual, NetBSD implements only
LC_CTYPE part of locale handling.  However, there is a locale database
in the system and locale specifications are validated against it,
so it makes sense to list the common locales as supported.

If I'm counting correctly, this change enables additional 43 passing
tests.

Differential Revision: https://reviews.llvm.org/D55767

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@349379 91177308-0d34-0410-b5e6-96231b3b80d8
Michal Gorny %!s(int64=6) %!d(string=hai) anos
pai
achega
4b8645f0dc
Modificáronse 31 ficheiros con 103 adicións e 0 borrados
  1. 3 0
      test/std/localization/locale.categories/category.collate/locale.collate.byname/transform.pass.cpp
  2. 3 0
      test/std/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_fr_FR.pass.cpp
  3. 3 0
      test/std/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_ru_RU.pass.cpp
  4. 3 0
      test/std/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_zh_CN.pass.cpp
  5. 3 0
      test/std/localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/put_long_double_fr_FR.pass.cpp
  6. 3 0
      test/std/localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/put_long_double_ru_RU.pass.cpp
  7. 3 0
      test/std/localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/put_long_double_zh_CN.pass.cpp
  8. 3 0
      test/std/localization/locale.categories/category.monetary/locale.moneypunct.byname/curr_symbol.pass.cpp
  9. 3 0
      test/std/localization/locale.categories/category.monetary/locale.moneypunct.byname/grouping.pass.cpp
  10. 3 0
      test/std/localization/locale.categories/category.monetary/locale.moneypunct.byname/neg_format.pass.cpp
  11. 3 0
      test/std/localization/locale.categories/category.monetary/locale.moneypunct.byname/pos_format.pass.cpp
  12. 3 0
      test/std/localization/locale.categories/category.monetary/locale.moneypunct.byname/thousands_sep.pass.cpp
  13. 3 0
      test/std/localization/locale.categories/category.time/locale.time.get.byname/get_date.pass.cpp
  14. 3 0
      test/std/localization/locale.categories/category.time/locale.time.get.byname/get_date_wide.pass.cpp
  15. 3 0
      test/std/localization/locale.categories/category.time/locale.time.get.byname/get_one.pass.cpp
  16. 3 0
      test/std/localization/locale.categories/category.time/locale.time.get.byname/get_one_wide.pass.cpp
  17. 3 0
      test/std/localization/locale.categories/category.time/locale.time.put.byname/put1.pass.cpp
  18. 3 0
      test/std/localization/locale.categories/facet.numpunct/locale.numpunct.byname/grouping.pass.cpp
  19. 3 0
      test/std/localization/locale.categories/facet.numpunct/locale.numpunct.byname/thousands_sep.pass.cpp
  20. 3 0
      test/std/localization/locales/locale/locale.cons/char_pointer.pass.cpp
  21. 3 0
      test/std/re/re.alg/re.alg.match/basic.pass.cpp
  22. 3 0
      test/std/re/re.alg/re.alg.match/ecma.pass.cpp
  23. 3 0
      test/std/re/re.alg/re.alg.match/extended.pass.cpp
  24. 3 0
      test/std/re/re.alg/re.alg.search/awk.pass.cpp
  25. 3 0
      test/std/re/re.alg/re.alg.search/basic.pass.cpp
  26. 3 0
      test/std/re/re.alg/re.alg.search/ecma.pass.cpp
  27. 3 0
      test/std/re/re.alg/re.alg.search/extended.pass.cpp
  28. 3 0
      test/std/re/re.traits/lookup_collatename.pass.cpp
  29. 3 0
      test/std/re/re.traits/transform.pass.cpp
  30. 3 0
      test/std/re/re.traits/transform_primary.pass.cpp
  31. 13 0
      utils/libcxx/test/target_info.py

+ 3 - 0
test/std/localization/locale.categories/category.collate/locale.collate.byname/transform.pass.cpp

@@ -6,6 +6,9 @@
 // Source Licenses. See LICENSE.TXT for details.
 //
 //===----------------------------------------------------------------------===//
+//
+// NetBSD does not support LC_COLLATE at the moment
+// XFAIL: netbsd
 
 // <locale>
 

+ 3 - 0
test/std/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_fr_FR.pass.cpp

@@ -8,6 +8,9 @@
 //===----------------------------------------------------------------------===//
 //
 // XFAIL: apple-darwin
+//
+// NetBSD does not support LC_MONETARY at the moment
+// XFAIL: netbsd
 
 // REQUIRES: locale.fr_FR.UTF-8
 

+ 3 - 0
test/std/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_ru_RU.pass.cpp

@@ -9,6 +9,9 @@
 //
 // This test is passing in an uncontrolled manner in some Apple environment.
 // UNSUPPORTED: apple-darwin
+//
+// NetBSD does not support LC_MONETARY at the moment
+// XFAIL: netbsd
 
 // Failure related to GLIBC's use of U00A0 as mon_thousands_sep
 // and U002E as mon_decimal_point.

+ 3 - 0
test/std/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_zh_CN.pass.cpp

@@ -6,6 +6,9 @@
 // Source Licenses. See LICENSE.TXT for details.
 //
 //===----------------------------------------------------------------------===//
+//
+// NetBSD does not support LC_MONETARY at the moment
+// XFAIL: netbsd
 
 // REQUIRES: locale.zh_CN.UTF-8
 

+ 3 - 0
test/std/localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/put_long_double_fr_FR.pass.cpp

@@ -8,6 +8,9 @@
 //===----------------------------------------------------------------------===//
 //
 // XFAIL: apple-darwin
+//
+// NetBSD does not support LC_MONETARY at the moment
+// XFAIL: netbsd
 
 // REQUIRES: locale.fr_FR.UTF-8
 

+ 3 - 0
test/std/localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/put_long_double_ru_RU.pass.cpp

@@ -9,6 +9,9 @@
 //
 // This test is passing in an uncontrolled manner in some Apple environment.
 // UNSUPPORTED: apple-darwin
+//
+// NetBSD does not support LC_MONETARY at the moment
+// XFAIL: netbsd
 
 // Failure related to GLIBC's use of U00A0 as mon_thousands_sep
 // and U002E as mon_decimal_point.

+ 3 - 0
test/std/localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/put_long_double_zh_CN.pass.cpp

@@ -6,6 +6,9 @@
 // Source Licenses. See LICENSE.TXT for details.
 //
 //===----------------------------------------------------------------------===//
+//
+// NetBSD does not support LC_MONETARY at the moment
+// XFAIL: netbsd
 
 // REQUIRES: locale.zh_CN.UTF-8
 

+ 3 - 0
test/std/localization/locale.categories/category.monetary/locale.moneypunct.byname/curr_symbol.pass.cpp

@@ -8,6 +8,9 @@
 //===----------------------------------------------------------------------===//
 //
 // XFAIL: apple-darwin
+//
+// NetBSD does not support LC_MONETARY at the moment
+// XFAIL: netbsd
 
 // REQUIRES: locale.en_US.UTF-8
 // REQUIRES: locale.fr_FR.UTF-8

+ 3 - 0
test/std/localization/locale.categories/category.monetary/locale.moneypunct.byname/grouping.pass.cpp

@@ -8,6 +8,9 @@
 //===----------------------------------------------------------------------===//
 //
 // XFAIL: apple-darwin
+//
+// NetBSD does not support LC_MONETARY at the moment
+// XFAIL: netbsd
 
 // REQUIRES: locale.en_US.UTF-8
 // REQUIRES: locale.fr_FR.UTF-8

+ 3 - 0
test/std/localization/locale.categories/category.monetary/locale.moneypunct.byname/neg_format.pass.cpp

@@ -8,6 +8,9 @@
 //===----------------------------------------------------------------------===//
 //
 // XFAIL: apple-darwin
+//
+// NetBSD does not support LC_MONETARY at the moment
+// XFAIL: netbsd
 
 // REQUIRES: locale.en_US.UTF-8
 // REQUIRES: locale.fr_FR.UTF-8

+ 3 - 0
test/std/localization/locale.categories/category.monetary/locale.moneypunct.byname/pos_format.pass.cpp

@@ -8,6 +8,9 @@
 //===----------------------------------------------------------------------===//
 //
 // XFAIL: apple-darwin
+//
+// NetBSD does not support LC_MONETARY at the moment
+// XFAIL: netbsd
 
 // REQUIRES: locale.en_US.UTF-8
 // REQUIRES: locale.fr_FR.UTF-8

+ 3 - 0
test/std/localization/locale.categories/category.monetary/locale.moneypunct.byname/thousands_sep.pass.cpp

@@ -6,6 +6,9 @@
 // Source Licenses. See LICENSE.TXT for details.
 //
 //===----------------------------------------------------------------------===//
+//
+// NetBSD does not support LC_MONETARY at the moment
+// XFAIL: netbsd
 
 // REQUIRES: locale.en_US.UTF-8
 // REQUIRES: locale.fr_FR.UTF-8

+ 3 - 0
test/std/localization/locale.categories/category.time/locale.time.get.byname/get_date.pass.cpp

@@ -6,6 +6,9 @@
 // Source Licenses. See LICENSE.TXT for details.
 //
 //===----------------------------------------------------------------------===//
+//
+// NetBSD does not support LC_TIME at the moment
+// XFAIL: netbsd
 
 // REQUIRES: locale.en_US.UTF-8
 // REQUIRES: locale.fr_FR.UTF-8

+ 3 - 0
test/std/localization/locale.categories/category.time/locale.time.get.byname/get_date_wide.pass.cpp

@@ -6,6 +6,9 @@
 // Source Licenses. See LICENSE.TXT for details.
 //
 //===----------------------------------------------------------------------===//
+//
+// NetBSD does not support LC_TIME at the moment
+// XFAIL: netbsd
 
 // REQUIRES: locale.en_US.UTF-8
 // REQUIRES: locale.fr_FR.UTF-8

+ 3 - 0
test/std/localization/locale.categories/category.time/locale.time.get.byname/get_one.pass.cpp

@@ -6,6 +6,9 @@
 // Source Licenses. See LICENSE.TXT for details.
 //
 //===----------------------------------------------------------------------===//
+//
+// NetBSD does not support LC_TIME at the moment
+// XFAIL: netbsd
 
 // REQUIRES: locale.en_US.UTF-8
 // REQUIRES: locale.fr_FR.UTF-8

+ 3 - 0
test/std/localization/locale.categories/category.time/locale.time.get.byname/get_one_wide.pass.cpp

@@ -6,6 +6,9 @@
 // Source Licenses. See LICENSE.TXT for details.
 //
 //===----------------------------------------------------------------------===//
+//
+// NetBSD does not support LC_TIME at the moment
+// XFAIL: netbsd
 
 // REQUIRES: locale.en_US.UTF-8
 // REQUIRES: locale.fr_FR.UTF-8

+ 3 - 0
test/std/localization/locale.categories/category.time/locale.time.put.byname/put1.pass.cpp

@@ -6,6 +6,9 @@
 // Source Licenses. See LICENSE.TXT for details.
 //
 //===----------------------------------------------------------------------===//
+//
+// NetBSD does not support LC_TIME at the moment
+// XFAIL: netbsd
 
 // REQUIRES: locale.en_US.UTF-8
 // REQUIRES: locale.fr_FR.UTF-8

+ 3 - 0
test/std/localization/locale.categories/facet.numpunct/locale.numpunct.byname/grouping.pass.cpp

@@ -6,6 +6,9 @@
 // Source Licenses. See LICENSE.TXT for details.
 //
 //===----------------------------------------------------------------------===//
+//
+// NetBSD does not support LC_NUMERIC at the moment
+// XFAIL: netbsd
 
 // REQUIRES: locale.en_US.UTF-8
 // REQUIRES: locale.fr_FR.UTF-8

+ 3 - 0
test/std/localization/locale.categories/facet.numpunct/locale.numpunct.byname/thousands_sep.pass.cpp

@@ -6,6 +6,9 @@
 // Source Licenses. See LICENSE.TXT for details.
 //
 //===----------------------------------------------------------------------===//
+//
+// NetBSD does not support LC_NUMERIC at the moment
+// XFAIL: netbsd
 
 // REQUIRES: locale.en_US.UTF-8
 // REQUIRES: locale.fr_FR.UTF-8

+ 3 - 0
test/std/localization/locales/locale/locale.cons/char_pointer.pass.cpp

@@ -6,6 +6,9 @@
 // Source Licenses. See LICENSE.TXT for details.
 //
 //===----------------------------------------------------------------------===//
+//
+// NetBSD does not support most of LC_* at the moment
+// XFAIL: netbsd
 
 // REQUIRES: locale.ru_RU.UTF-8
 // REQUIRES: locale.zh_CN.UTF-8

+ 3 - 0
test/std/re/re.alg/re.alg.match/basic.pass.cpp

@@ -6,6 +6,9 @@
 // Source Licenses. See LICENSE.TXT for details.
 //
 //===----------------------------------------------------------------------===//
+//
+// NetBSD does not support LC_COLLATE at the moment
+// XFAIL: netbsd
 
 // REQUIRES: locale.cs_CZ.ISO8859-2
 

+ 3 - 0
test/std/re/re.alg/re.alg.match/ecma.pass.cpp

@@ -6,6 +6,9 @@
 // Source Licenses. See LICENSE.TXT for details.
 //
 //===----------------------------------------------------------------------===//
+//
+// NetBSD does not support LC_COLLATE at the moment
+// XFAIL: netbsd
 
 // REQUIRES: locale.cs_CZ.ISO8859-2
 

+ 3 - 0
test/std/re/re.alg/re.alg.match/extended.pass.cpp

@@ -6,6 +6,9 @@
 // Source Licenses. See LICENSE.TXT for details.
 //
 //===----------------------------------------------------------------------===//
+//
+// NetBSD does not support LC_COLLATE at the moment
+// XFAIL: netbsd
 
 // REQUIRES: locale.cs_CZ.ISO8859-2
 

+ 3 - 0
test/std/re/re.alg/re.alg.search/awk.pass.cpp

@@ -6,6 +6,9 @@
 // Source Licenses. See LICENSE.TXT for details.
 //
 //===----------------------------------------------------------------------===//
+//
+// NetBSD does not support LC_COLLATE at the moment
+// XFAIL: netbsd
 
 // REQUIRES: locale.cs_CZ.ISO8859-2
 

+ 3 - 0
test/std/re/re.alg/re.alg.search/basic.pass.cpp

@@ -6,6 +6,9 @@
 // Source Licenses. See LICENSE.TXT for details.
 //
 //===----------------------------------------------------------------------===//
+//
+// NetBSD does not support LC_COLLATE at the moment
+// XFAIL: netbsd
 
 // REQUIRES: locale.cs_CZ.ISO8859-2
 

+ 3 - 0
test/std/re/re.alg/re.alg.search/ecma.pass.cpp

@@ -6,6 +6,9 @@
 // Source Licenses. See LICENSE.TXT for details.
 //
 //===----------------------------------------------------------------------===//
+//
+// NetBSD does not support LC_COLLATE at the moment
+// XFAIL: netbsd
 
 // REQUIRES: locale.cs_CZ.ISO8859-2
 

+ 3 - 0
test/std/re/re.alg/re.alg.search/extended.pass.cpp

@@ -6,6 +6,9 @@
 // Source Licenses. See LICENSE.TXT for details.
 //
 //===----------------------------------------------------------------------===//
+//
+// NetBSD does not support LC_COLLATE at the moment
+// XFAIL: netbsd
 
 // REQUIRES: locale.cs_CZ.ISO8859-2
 

+ 3 - 0
test/std/re/re.traits/lookup_collatename.pass.cpp

@@ -6,6 +6,9 @@
 // Source Licenses. See LICENSE.TXT for details.
 //
 //===----------------------------------------------------------------------===//
+//
+// NetBSD does not support LC_COLLATE at the moment
+// XFAIL: netbsd
 
 // REQUIRES: locale.cs_CZ.ISO8859-2
 

+ 3 - 0
test/std/re/re.traits/transform.pass.cpp

@@ -7,6 +7,9 @@
 // Source Licenses. See LICENSE.TXT for details.
 //
 //===----------------------------------------------------------------------===//
+//
+// NetBSD does not support LC_COLLATE at the moment
+// XFAIL: netbsd
 
 // REQUIRES: locale.cs_CZ.ISO8859-2
 

+ 3 - 0
test/std/re/re.traits/transform_primary.pass.cpp

@@ -7,6 +7,9 @@
 // Source Licenses. See LICENSE.TXT for details.
 //
 //===----------------------------------------------------------------------===//
+//
+// NetBSD does not support LC_COLLATE at the moment
+// XFAIL: netbsd
 
 // REQUIRES: locale.cs_CZ.ISO8859-2
 

+ 13 - 0
utils/libcxx/test/target_info.py

@@ -182,6 +182,18 @@ class FreeBSDLocalTI(DefaultTargetInfo):
         flags += ['-lc', '-lm', '-lpthread', '-lgcc_s', '-lcxxrt']
 
 
+class NetBSDLocalTI(DefaultTargetInfo):
+    def __init__(self, full_config):
+        super(NetBSDLocalTI, self).__init__(full_config)
+
+    def add_locale_features(self, features):
+        add_common_locales(features, self.full_config.lit_config)
+
+    def add_cxx_link_flags(self, flags):
+        flags += ['-lc', '-lm', '-lpthread', '-lgcc_s', '-lc++abi',
+                  '-lunwind']
+
+
 class LinuxLocalTI(DefaultTargetInfo):
     def __init__(self, full_config):
         super(LinuxLocalTI, self).__init__(full_config)
@@ -280,6 +292,7 @@ def make_target_info(full_config):
     target_system = platform.system()
     if target_system == 'Darwin':  return DarwinLocalTI(full_config)
     if target_system == 'FreeBSD': return FreeBSDLocalTI(full_config)
+    if target_system == 'NetBSD':  return NetBSDLocalTI(full_config)
     if target_system == 'Linux':   return LinuxLocalTI(full_config)
     if target_system == 'Windows': return WindowsLocalTI(full_config)
     return DefaultTargetInfo(full_config)