[libc++] Add missing annotations for TEST_HAS_NO_WIDE_CHARACTERS
authorLouis Dionne <ldionne.2@gmail.com>
Mon, 1 Nov 2021 15:32:42 +0000 (11:32 -0400)
committerLouis Dionne <ldionne.2@gmail.com>
Mon, 1 Nov 2021 18:10:32 +0000 (14:10 -0400)
Those tests would pass when run on a C Standard Library that actually
provides wide characters, but fail when run on top of one that doesn't.
It's really difficult to test this 100% perfectly in the CI without
introducing an actual platform that doesn't provide these declarations.

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

libcxx/test/std/depr/depr.c.headers/inttypes_h.pass.cpp
libcxx/test/std/depr/depr.c.headers/stdlib_h.pass.cpp
libcxx/test/std/language.support/support.runtime/cstdlib.pass.cpp

index e759a7d..b9f9a58 100644 (file)
@@ -927,8 +927,10 @@ int main(int, char**)
     static_assert((std::is_same<decltype(imaxdiv(i, i)), imaxdiv_t>::value), "");
     static_assert((std::is_same<decltype(strtoimax("", (char**)0, 0)), intmax_t>::value), "");
     static_assert((std::is_same<decltype(strtoumax("", (char**)0, 0)), uintmax_t>::value), "");
+#ifndef TEST_HAS_NO_WIDE_CHARACTERS
     static_assert((std::is_same<decltype(wcstoimax(L"", (wchar_t**)0, 0)), intmax_t>::value), "");
     static_assert((std::is_same<decltype(wcstoumax(L"", (wchar_t**)0, 0)), uintmax_t>::value), "");
+#endif
 
   return 0;
 }
index 83d1710..978596b 100644 (file)
@@ -155,6 +155,7 @@ int main(int, char**)
     static_assert((std::is_same<decltype(div(0,0)), div_t>::value), "");
     static_assert((std::is_same<decltype(ldiv(0L,0L)), ldiv_t>::value), "");
     static_assert((std::is_same<decltype(lldiv(0LL,0LL)), lldiv_t>::value), "");
+#ifndef TEST_HAS_NO_WIDE_CHARACTERS
     wchar_t* pw = 0;
     const wchar_t* pwc = 0;
     char* pc = 0;
@@ -163,6 +164,7 @@ int main(int, char**)
     static_assert((std::is_same<decltype(wctomb(pc,L' ')), int>::value), "");
     static_assert((std::is_same<decltype(mbstowcs(pw,"",0)), size_t>::value), "");
     static_assert((std::is_same<decltype(wcstombs(pc,pwc,0)), size_t>::value), "");
+#endif
 
     test_abs();
 
index 19d0750..2900ee2 100644 (file)
@@ -146,6 +146,7 @@ int main(int, char**)
     static_assert((std::is_same<decltype(std::div(0LL,0LL)), std::lldiv_t>::value), "");
     static_assert((std::is_same<decltype(std::ldiv(0L,0L)), std::ldiv_t>::value), "");
     static_assert((std::is_same<decltype(std::lldiv(0LL,0LL)), std::lldiv_t>::value), "");
+#ifndef TEST_HAS_NO_WIDE_CHARACTERS
     wchar_t* pw = 0;
     const wchar_t* pwc = 0;
     char* pc = 0;
@@ -154,6 +155,7 @@ int main(int, char**)
     static_assert((std::is_same<decltype(std::wctomb(pc,L' ')), int>::value), "");
     static_assert((std::is_same<decltype(std::mbstowcs(pw,"",0)), std::size_t>::value), "");
     static_assert((std::is_same<decltype(std::wcstombs(pc,pwc,0)), std::size_t>::value), "");
+#endif
 
     test_abs();