diff options
Diffstat (limited to 'libcxx/test/std/experimental/string.view/string.view.nonmem/quoted.pass.cpp')
-rw-r--r-- | libcxx/test/std/experimental/string.view/string.view.nonmem/quoted.pass.cpp | 214 |
1 files changed, 0 insertions, 214 deletions
diff --git a/libcxx/test/std/experimental/string.view/string.view.nonmem/quoted.pass.cpp b/libcxx/test/std/experimental/string.view/string.view.nonmem/quoted.pass.cpp deleted file mode 100644 index 202e9ced451..00000000000 --- a/libcxx/test/std/experimental/string.view/string.view.nonmem/quoted.pass.cpp +++ /dev/null @@ -1,214 +0,0 @@ -//===----------------------------------------------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -// <iomanip> - -// quoted - -#include <iomanip> -#include <sstream> -#include <experimental/string_view> -#include <cassert> - -#include "test_macros.h" - -#if TEST_STD_VER > 11 -// quoted is C++14 only - -bool is_skipws ( const std::istream *is ) { - return ( is->flags() & std::ios_base::skipws ) != 0; - } - - -bool is_skipws ( const std::wistream *is ) { - return ( is->flags() & std::ios_base::skipws ) != 0; - } - -void round_trip ( const char *p ) { - std::stringstream ss; - bool skippingws = is_skipws ( &ss ); - std::experimental::string_view sv {p}; - - ss << std::quoted(sv); - std::string s; - ss >> std::quoted(s); - assert ( s == sv ); - assert ( skippingws == is_skipws ( &ss )); - } - -void round_trip_ws ( const char *p ) { - std::stringstream ss; - std::noskipws ( ss ); - bool skippingws = is_skipws ( &ss ); - std::experimental::string_view sv {p}; - - ss << std::quoted(sv); - std::string s; - ss >> std::quoted(s); - assert ( s == sv ); - assert ( skippingws == is_skipws ( &ss )); - } - -void round_trip_d ( const char *p, char delim ) { - std::stringstream ss; - std::experimental::string_view sv {p}; - - ss << std::quoted(sv, delim); - std::string s; - ss >> std::quoted(s, delim); - assert ( s == sv ); - } - -void round_trip_e ( const char *p, char escape ) { - std::stringstream ss; - std::experimental::string_view sv {p}; - - ss << std::quoted(sv, '"', escape ); - std::string s; - ss >> std::quoted(s, '"', escape ); - assert ( s == sv ); - } - - - -std::string quote ( const char *p, char delim='"', char escape='\\' ) { - std::stringstream ss; - ss << std::quoted(p, delim, escape); - std::string s; - ss >> s; // no quote - return s; -} - -std::string unquote ( const char *p, char delim='"', char escape='\\' ) { - std::stringstream ss; - ss << p; - std::string s; - ss >> std::quoted(s, delim, escape); - return s; -} - - -void round_trip ( const wchar_t *p ) { - std::wstringstream ss; - bool skippingws = is_skipws ( &ss ); - std::experimental::wstring_view sv {p}; - - ss << std::quoted(sv); - std::wstring s; - ss >> std::quoted(s); - assert ( s == sv ); - assert ( skippingws == is_skipws ( &ss )); - } - - -void round_trip_ws ( const wchar_t *p ) { - std::wstringstream ss; - std::noskipws ( ss ); - bool skippingws = is_skipws ( &ss ); - std::experimental::wstring_view sv {p}; - - ss << std::quoted(sv); - std::wstring s; - ss >> std::quoted(s); - assert ( s == sv ); - assert ( skippingws == is_skipws ( &ss )); - } - -void round_trip_d ( const wchar_t *p, wchar_t delim ) { - std::wstringstream ss; - std::experimental::wstring_view sv {p}; - - ss << std::quoted(sv, delim); - std::wstring s; - ss >> std::quoted(s, delim); - assert ( s == sv ); - } - -void round_trip_e ( const wchar_t *p, wchar_t escape ) { - std::wstringstream ss; - std::experimental::wstring_view sv {p}; - - ss << std::quoted(sv, wchar_t('"'), escape ); - std::wstring s; - ss >> std::quoted(s, wchar_t('"'), escape ); - assert ( s == sv ); - } - - -std::wstring quote ( const wchar_t *p, wchar_t delim='"', wchar_t escape='\\' ) { - std::wstringstream ss; - std::experimental::wstring_view sv {p}; - - ss << std::quoted(sv, delim, escape); - std::wstring s; - ss >> s; // no quote - return s; -} - -std::wstring unquote ( const wchar_t *p, wchar_t delim='"', wchar_t escape='\\' ) { - std::wstringstream ss; - std::experimental::wstring_view sv {p}; - - ss << sv; - std::wstring s; - ss >> std::quoted(s, delim, escape); - return s; -} - -int main() -{ - round_trip ( "" ); - round_trip_ws ( "" ); - round_trip_d ( "", 'q' ); - round_trip_e ( "", 'q' ); - - round_trip ( L"" ); - round_trip_ws ( L"" ); - round_trip_d ( L"", 'q' ); - round_trip_e ( L"", 'q' ); - - round_trip ( "Hi" ); - round_trip_ws ( "Hi" ); - round_trip_d ( "Hi", '!' ); - round_trip_e ( "Hi", '!' ); - assert ( quote ( "Hi", '!' ) == "!Hi!" ); - assert ( quote ( "Hi!", '!' ) == R"(!Hi\!!)" ); - - round_trip ( L"Hi" ); - round_trip_ws ( L"Hi" ); - round_trip_d ( L"Hi", '!' ); - round_trip_e ( L"Hi", '!' ); - assert ( quote ( L"Hi", '!' ) == L"!Hi!" ); - assert ( quote ( L"Hi!", '!' ) == LR"(!Hi\!!)" ); - - round_trip ( "Hi Mom" ); - round_trip_ws ( "Hi Mom" ); - round_trip ( L"Hi Mom" ); - round_trip_ws ( L"Hi Mom" ); - - assert ( quote ( "" ) == "\"\"" ); - assert ( quote ( L"" ) == L"\"\"" ); - assert ( quote ( "a" ) == "\"a\"" ); - assert ( quote ( L"a" ) == L"\"a\"" ); - -// missing end quote - must not hang - assert ( unquote ( "\"abc" ) == "abc" ); - assert ( unquote ( L"\"abc" ) == L"abc" ); - - assert ( unquote ( "abc" ) == "abc" ); // no delimiter - assert ( unquote ( L"abc" ) == L"abc" ); // no delimiter - assert ( unquote ( "abc def" ) == "abc" ); // no delimiter - assert ( unquote ( L"abc def" ) == L"abc" ); // no delimiter - - assert ( unquote ( "" ) == "" ); // nothing there - assert ( unquote ( L"" ) == L"" ); // nothing there - } -#else -int main() {} -#endif |