From 9178fb73e13cb5b486277deeafc69740f8c04c8a Mon Sep 17 00:00:00 2001 From: Louis Dionne Date: Thu, 15 Apr 2021 13:02:23 -0400 Subject: [PATCH] [libc++] NFC: Use ASSERT_SAME_TYPE consistently in string.h and wchar.h tests --- .../test/std/depr/depr.c.headers/string_h.pass.cpp | 54 ++++----- .../test/std/depr/depr.c.headers/wchar_h.pass.cpp | 132 +++++++++++---------- libcxx/test/std/strings/c.strings/cwchar.pass.cpp | 40 ++++--- 3 files changed, 117 insertions(+), 109 deletions(-) diff --git a/libcxx/test/std/depr/depr.c.headers/string_h.pass.cpp b/libcxx/test/std/depr/depr.c.headers/string_h.pass.cpp index 4e18107..dfb852d 100644 --- a/libcxx/test/std/depr/depr.c.headers/string_h.pass.cpp +++ b/libcxx/test/std/depr/depr.c.headers/string_h.pass.cpp @@ -24,35 +24,35 @@ int main(int, char**) const void* vpc = 0; char* cp = 0; const char* cpc = 0; - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); + ASSERT_SAME_TYPE(void*, decltype(memcpy(vp, vpc, s))); + ASSERT_SAME_TYPE(void*, decltype(memmove(vp, vpc, s))); + ASSERT_SAME_TYPE(char*, decltype(strcpy(cp, cpc))); + ASSERT_SAME_TYPE(char*, decltype(strncpy(cp, cpc, s))); + ASSERT_SAME_TYPE(char*, decltype(strcat(cp, cpc))); + ASSERT_SAME_TYPE(char*, decltype(strncat(cp, cpc, s))); + ASSERT_SAME_TYPE(int, decltype(memcmp(vpc, vpc, s))); + ASSERT_SAME_TYPE(int, decltype(strcmp(cpc, cpc))); + ASSERT_SAME_TYPE(int, decltype(strncmp(cpc, cpc, s))); + ASSERT_SAME_TYPE(int, decltype(strcoll(cpc, cpc))); + ASSERT_SAME_TYPE(size_t, decltype(strxfrm(cp, cpc, s))); + ASSERT_SAME_TYPE(void*, decltype(memchr(vp, 0, s))); + ASSERT_SAME_TYPE(const void*, decltype(memchr(vpc, 0, s))); + ASSERT_SAME_TYPE(char*, decltype(strchr(cp, 0))); + ASSERT_SAME_TYPE(const char*, decltype(strchr(cpc, 0))); + ASSERT_SAME_TYPE(size_t, decltype(strcspn(cpc, cpc))); + ASSERT_SAME_TYPE(char*, decltype(strpbrk(cp, cpc))); + ASSERT_SAME_TYPE(const char*, decltype(strpbrk(cpc, cpc))); + ASSERT_SAME_TYPE(char*, decltype(strrchr(cp, 0))); + ASSERT_SAME_TYPE(const char*, decltype(strrchr(cpc, 0))); + ASSERT_SAME_TYPE(size_t, decltype(strspn(cpc, cpc))); + ASSERT_SAME_TYPE(char*, decltype(strstr(cp, cpc))); + ASSERT_SAME_TYPE(const char*, decltype(strstr(cpc, cpc))); #ifndef _LIBCPP_HAS_NO_THREAD_UNSAFE_C_FUNCTIONS - static_assert((std::is_same::value), ""); + ASSERT_SAME_TYPE(char*, decltype(strtok(cp, cpc))); #endif - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); + ASSERT_SAME_TYPE(void*, decltype(memset(vp, 0, s))); + ASSERT_SAME_TYPE(char*, decltype(strerror(0))); + ASSERT_SAME_TYPE(size_t, decltype(strlen(cpc))); return 0; } diff --git a/libcxx/test/std/depr/depr.c.headers/wchar_h.pass.cpp b/libcxx/test/std/depr/depr.c.headers/wchar_h.pass.cpp index b297ab0..49979c5 100644 --- a/libcxx/test/std/depr/depr.c.headers/wchar_h.pass.cpp +++ b/libcxx/test/std/depr/depr.c.headers/wchar_h.pass.cpp @@ -45,6 +45,8 @@ int main(int, char**) ::va_list va; char* ns = 0; wchar_t* ws = 0; + const wchar_t* cws = 0; + wchar_t** wsp = 0; ((void)mb); // Prevent unused warning ((void)s); // Prevent unused warning ((void)tm); // Prevent unused warning @@ -53,75 +55,77 @@ int main(int, char**) ((void)va); // Prevent unused warning ((void)ns); // Prevent unused warning ((void)ws); // Prevent unused warning - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); + ((void)cws); // Prevent unused warning + ((void)wsp); // Prevent unused warning + ASSERT_SAME_TYPE(int, decltype(fwprintf(fp, L""))); + ASSERT_SAME_TYPE(int, decltype(fwscanf(fp, L""))); + ASSERT_SAME_TYPE(int, decltype(swprintf(ws, s, L""))); + ASSERT_SAME_TYPE(int, decltype(swscanf(L"", L""))); + ASSERT_SAME_TYPE(int, decltype(vfwprintf(fp, L"", va))); + ASSERT_SAME_TYPE(int, decltype(vfwscanf(fp, L"", va))); + ASSERT_SAME_TYPE(int, decltype(vswprintf(ws, s, L"", va))); + ASSERT_SAME_TYPE(int, decltype(vswscanf(L"", L"", va))); + ASSERT_SAME_TYPE(wint_t, decltype(fgetwc(fp))); + ASSERT_SAME_TYPE(wchar_t*, decltype(fgetws(ws, 0, fp))); + ASSERT_SAME_TYPE(wint_t, decltype(fputwc(L' ', fp))); + ASSERT_SAME_TYPE(int, decltype(fputws(L"", fp))); + ASSERT_SAME_TYPE(int, decltype(fwide(fp, 0))); + ASSERT_SAME_TYPE(wint_t, decltype(getwc(fp))); + ASSERT_SAME_TYPE(wint_t, decltype(putwc(L' ', fp))); + ASSERT_SAME_TYPE(wint_t, decltype(ungetwc(L' ', fp))); + ASSERT_SAME_TYPE(double, decltype(wcstod(L"", wsp))); + ASSERT_SAME_TYPE(float, decltype(wcstof(L"", wsp))); + ASSERT_SAME_TYPE(long double, decltype(wcstold(L"", wsp))); + ASSERT_SAME_TYPE(long, decltype(wcstol(L"", wsp, 0))); + ASSERT_SAME_TYPE(long long, decltype(wcstoll(L"", wsp, 0))); + ASSERT_SAME_TYPE(unsigned long, decltype(wcstoul(L"", wsp, 0))); + ASSERT_SAME_TYPE(unsigned long long, decltype(wcstoull(L"", wsp, 0))); + ASSERT_SAME_TYPE(wchar_t*, decltype(wcscpy(ws, L""))); + ASSERT_SAME_TYPE(wchar_t*, decltype(wcsncpy(ws, L"", s))); + ASSERT_SAME_TYPE(wchar_t*, decltype(wcscat(ws, L""))); + ASSERT_SAME_TYPE(wchar_t*, decltype(wcsncat(ws, L"", s))); + ASSERT_SAME_TYPE(int, decltype(wcscmp(L"", L""))); + ASSERT_SAME_TYPE(int, decltype(wcscoll(L"", L""))); + ASSERT_SAME_TYPE(int, decltype(wcsncmp(L"", L"", s))); + ASSERT_SAME_TYPE(size_t, decltype(wcsxfrm(ws, L"", s))); + ASSERT_SAME_TYPE(wchar_t*, decltype(wcschr(ws, L' '))); + ASSERT_SAME_TYPE(const wchar_t*, decltype(wcschr(cws, L' '))); + ASSERT_SAME_TYPE(size_t, decltype(wcscspn(L"", L""))); + ASSERT_SAME_TYPE(size_t, decltype(wcslen(L""))); + ASSERT_SAME_TYPE(wchar_t*, decltype(wcspbrk(ws, L""))); + ASSERT_SAME_TYPE(const wchar_t*, decltype(wcspbrk(cws, L""))); + ASSERT_SAME_TYPE(wchar_t*, decltype(wcsrchr(ws, L' '))); + ASSERT_SAME_TYPE(const wchar_t*, decltype(wcsrchr(cws, L' '))); + ASSERT_SAME_TYPE(size_t, decltype(wcsspn(L"", L""))); + ASSERT_SAME_TYPE(wchar_t*, decltype(wcsstr(ws, L""))); + ASSERT_SAME_TYPE(const wchar_t*, decltype(wcsstr(cws, L""))); + ASSERT_SAME_TYPE(wchar_t*, decltype(wcstok(ws, L"", wsp))); + ASSERT_SAME_TYPE(wchar_t*, decltype(wmemchr(ws, L' ', s))); + ASSERT_SAME_TYPE(const wchar_t*, decltype(wmemchr(cws, L' ', s))); + ASSERT_SAME_TYPE(int, decltype(wmemcmp(L"", L"", s))); + ASSERT_SAME_TYPE(wchar_t*, decltype(wmemcpy(ws, L"", s))); + ASSERT_SAME_TYPE(wchar_t*, decltype(wmemmove(ws, L"", s))); + ASSERT_SAME_TYPE(wchar_t*, decltype(wmemset(ws, L' ', s))); + ASSERT_SAME_TYPE(size_t, decltype(wcsftime(ws, s, L"", tm))); + ASSERT_SAME_TYPE(wint_t, decltype(btowc(0))); + ASSERT_SAME_TYPE(int, decltype(wctob(w))); + ASSERT_SAME_TYPE(int, decltype(mbsinit(&mb))); + ASSERT_SAME_TYPE(size_t, decltype(mbrlen("", s, &mb))); + ASSERT_SAME_TYPE(size_t, decltype(mbrtowc(ws, "", s, &mb))); + ASSERT_SAME_TYPE(size_t, decltype(wcrtomb(ns, L' ', &mb))); + ASSERT_SAME_TYPE(size_t, decltype(mbsrtowcs(ws, (const char**)0, s, &mb))); + ASSERT_SAME_TYPE(size_t, decltype(wcsrtombs(ns, (const wchar_t**)0, s, &mb))); #ifndef _LIBCPP_HAS_NO_STDIN - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); + ASSERT_SAME_TYPE(wint_t, decltype(getwchar())); + ASSERT_SAME_TYPE(int, decltype(vwscanf(L"", va))); + ASSERT_SAME_TYPE(int, decltype(wscanf(L""))); #endif #ifndef _LIBCPP_HAS_NO_STDOUT - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); - static_assert((std::is_same::value), ""); + ASSERT_SAME_TYPE(wint_t, decltype(putwchar(L' '))); + ASSERT_SAME_TYPE(int, decltype(vwprintf(L"", va))); + ASSERT_SAME_TYPE(int, decltype(wprintf(L""))); #endif return 0; diff --git a/libcxx/test/std/strings/c.strings/cwchar.pass.cpp b/libcxx/test/std/strings/c.strings/cwchar.pass.cpp index 7d670d0..6c3da91 100644 --- a/libcxx/test/std/strings/c.strings/cwchar.pass.cpp +++ b/libcxx/test/std/strings/c.strings/cwchar.pass.cpp @@ -43,6 +43,8 @@ int main(int, char**) char* ns = 0; wchar_t* ws = 0; + const wchar_t* cws = 0; + wchar_t** wsp = 0; ((void)mb); // Prevent unused warning ((void)s); // Prevent unused warning @@ -52,6 +54,8 @@ int main(int, char**) ((void)va); // Prevent unused warning ((void)ns); // Prevent unused warning ((void)ws); // Prevent unused warning + ((void)cws); // Prevent unused warning + ((void)wsp); // Prevent unused warning ASSERT_SAME_TYPE(int, decltype(std::fwprintf(fp, L""))); ASSERT_SAME_TYPE(int, decltype(std::fwscanf(fp, L""))); @@ -69,13 +73,13 @@ int main(int, char**) ASSERT_SAME_TYPE(std::wint_t, decltype(std::getwc(fp))); ASSERT_SAME_TYPE(std::wint_t, decltype(std::putwc(L' ', fp))); ASSERT_SAME_TYPE(std::wint_t, decltype(std::ungetwc(L' ', fp))); - ASSERT_SAME_TYPE(double, decltype(std::wcstod(L"", (wchar_t**)0))); - ASSERT_SAME_TYPE(float, decltype(std::wcstof(L"", (wchar_t**)0))); - ASSERT_SAME_TYPE(long double, decltype(std::wcstold(L"", (wchar_t**)0))); - ASSERT_SAME_TYPE(long, decltype(std::wcstol(L"", (wchar_t**)0, 0))); - ASSERT_SAME_TYPE(long long, decltype(std::wcstoll(L"", (wchar_t**)0, 0))); - ASSERT_SAME_TYPE(unsigned long, decltype(std::wcstoul(L"", (wchar_t**)0, 0))); - ASSERT_SAME_TYPE(unsigned long long, decltype(std::wcstoull(L"", (wchar_t**)0, 0))); + ASSERT_SAME_TYPE(double, decltype(std::wcstod(L"", wsp))); + ASSERT_SAME_TYPE(float, decltype(std::wcstof(L"", wsp))); + ASSERT_SAME_TYPE(long double, decltype(std::wcstold(L"", wsp))); + ASSERT_SAME_TYPE(long, decltype(std::wcstol(L"", wsp, 0))); + ASSERT_SAME_TYPE(long long, decltype(std::wcstoll(L"", wsp, 0))); + ASSERT_SAME_TYPE(unsigned long, decltype(std::wcstoul(L"", wsp, 0))); + ASSERT_SAME_TYPE(unsigned long long, decltype(std::wcstoull(L"", wsp, 0))); ASSERT_SAME_TYPE(wchar_t*, decltype(std::wcscpy(ws, L""))); ASSERT_SAME_TYPE(wchar_t*, decltype(std::wcsncpy(ws, L"", s))); ASSERT_SAME_TYPE(wchar_t*, decltype(std::wcscat(ws, L""))); @@ -84,20 +88,20 @@ int main(int, char**) ASSERT_SAME_TYPE(int, decltype(std::wcscoll(L"", L""))); ASSERT_SAME_TYPE(int, decltype(std::wcsncmp(L"", L"", s))); ASSERT_SAME_TYPE(std::size_t, decltype(std::wcsxfrm(ws, L"", s))); - ASSERT_SAME_TYPE(wchar_t*, decltype(std::wcschr((wchar_t*)0, L' '))); - ASSERT_SAME_TYPE(const wchar_t*, decltype(std::wcschr((const wchar_t*)0, L' '))); + ASSERT_SAME_TYPE(wchar_t*, decltype(std::wcschr(ws, L' '))); + ASSERT_SAME_TYPE(const wchar_t*, decltype(std::wcschr(cws, L' '))); ASSERT_SAME_TYPE(std::size_t, decltype(std::wcscspn(L"", L""))); ASSERT_SAME_TYPE(std::size_t, decltype(std::wcslen(L""))); - ASSERT_SAME_TYPE(wchar_t*, decltype(std::wcspbrk((wchar_t*)0, L""))); - ASSERT_SAME_TYPE(const wchar_t*, decltype(std::wcspbrk((const wchar_t*)0, L""))); - ASSERT_SAME_TYPE(wchar_t*, decltype(std::wcsrchr((wchar_t*)0, L' '))); - ASSERT_SAME_TYPE(const wchar_t*, decltype(std::wcsrchr((const wchar_t*)0, L' '))); + ASSERT_SAME_TYPE(wchar_t*, decltype(std::wcspbrk(ws, L""))); + ASSERT_SAME_TYPE(const wchar_t*, decltype(std::wcspbrk(cws, L""))); + ASSERT_SAME_TYPE(wchar_t*, decltype(std::wcsrchr(ws, L' '))); + ASSERT_SAME_TYPE(const wchar_t*, decltype(std::wcsrchr(cws, L' '))); ASSERT_SAME_TYPE(std::size_t, decltype(std::wcsspn(L"", L""))); - ASSERT_SAME_TYPE(wchar_t*, decltype(std::wcsstr((wchar_t*)0, L""))); - ASSERT_SAME_TYPE(const wchar_t*, decltype(std::wcsstr((const wchar_t*)0, L""))); - ASSERT_SAME_TYPE(wchar_t*, decltype(std::wcstok(ws, L"", (wchar_t**)0))); - ASSERT_SAME_TYPE(wchar_t*, decltype(std::wmemchr((wchar_t*)0, L' ', s))); - ASSERT_SAME_TYPE(const wchar_t*, decltype(std::wmemchr((const wchar_t*)0, L' ', s))); + ASSERT_SAME_TYPE(wchar_t*, decltype(std::wcsstr(ws, L""))); + ASSERT_SAME_TYPE(const wchar_t*, decltype(std::wcsstr(cws, L""))); + ASSERT_SAME_TYPE(wchar_t*, decltype(std::wcstok(ws, L"", wsp))); + ASSERT_SAME_TYPE(wchar_t*, decltype(std::wmemchr(ws, L' ', s))); + ASSERT_SAME_TYPE(const wchar_t*, decltype(std::wmemchr(cws, L' ', s))); ASSERT_SAME_TYPE(int, decltype(std::wmemcmp(L"", L"", s))); ASSERT_SAME_TYPE(wchar_t*, decltype(std::wmemcpy(ws, L"", s))); ASSERT_SAME_TYPE(wchar_t*, decltype(std::wmemmove(ws, L"", s))); -- 2.7.4