libstdc++: P1423R3 char8_t remediation (3/4)

Updates to existing tests

This patch updates existing tests to validate the new value for the
__cpp_lib_char8_t feature test macros and to exercise u8path factory
function invocations with std::string, std::string_view, and interator
pair arguments.

2019-11-29  Tom Honermann  <tom@honermann.net>

	Updates to existing tests
	* testsuite/experimental/feat-char8_t.cc: Updated the expected
	__cpp_lib_char8_t feature test macro value.
	* testsuite/27_io/filesystem/path/factory/u8path.cc: Added testing of
	u8path invocation with std::string, std::string_view, and iterators
	thereof.
	* testsuite/experimental/filesystem/path/factory/u8path.cc: Added
	testing of u8path invocation with std::string, std::string_view, and
	iterators thereof.

From-SVN: r278857
This commit is contained in:
Tom Honermann 2019-11-29 17:43:46 +00:00 committed by Jonathan Wakely
parent 2b4e2c93d9
commit 2b68cdc7e5
4 changed files with 37 additions and 2 deletions

View File

@ -1,5 +1,15 @@
2019-11-29 Tom Honermann <tom@honermann.net>
Updates to existing tests
* testsuite/experimental/feat-char8_t.cc: Updated the expected
__cpp_lib_char8_t feature test macro value.
* testsuite/27_io/filesystem/path/factory/u8path.cc: Added testing of
u8path invocation with std::string, std::string_view, and iterators
thereof.
* testsuite/experimental/filesystem/path/factory/u8path.cc: Added
testing of u8path invocation with std::string, std::string_view, and
iterators thereof.
Update feature test macro, add deleted operators, update u8path
* include/bits/c++config: Bumped the value of the __cpp_lib_char8_t
feature test macro.

View File

@ -19,6 +19,7 @@
// { dg-do run { target c++17 } }
#include <filesystem>
#include <string_view>
#include <testsuite_hooks.h>
namespace fs = std::filesystem;
@ -34,6 +35,22 @@ test01()
p = fs::u8path("\xf0\x9d\x84\x9e");
VERIFY( p.u8string() == u8"\U0001D11E" );
std::string s1 = "filename2";
p = fs::u8path(s1);
VERIFY( p.u8string() == u8"filename2" );
std::string s2 = "filename3";
p = fs::u8path(s2.begin(), s2.end());
VERIFY( p.u8string() == u8"filename3" );
std::string_view sv1{ s1 };
p = fs::u8path(sv1);
VERIFY( p.u8string() == u8"filename2" );
std::string_view sv2{ s2 };
p = fs::u8path(sv2.begin(), sv2.end());
VERIFY( p.u8string() == u8"filename3" );
}
void

View File

@ -12,6 +12,6 @@
#ifndef __cpp_lib_char8_t
# error "__cpp_lib_char8_t"
#elif __cpp_lib_char8_t != 201811L
# error "__cpp_lib_char8_t != 201811L"
#elif __cpp_lib_char8_t != 201907L
# error "__cpp_lib_char8_t != 201907L"
#endif

View File

@ -35,6 +35,14 @@ test01()
p = fs::u8path("\xf0\x9d\x84\x9e");
VERIFY( p.u8string() == u8"\U0001D11E" );
std::string s1 = "filename2";
p = fs::u8path(s1);
VERIFY( p.u8string() == u8"filename2" );
std::string s2 = "filename3";
p = fs::u8path(s2.begin(), s2.end());
VERIFY( p.u8string() == u8"filename3" );
}
void