mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-18 16:53:50 +08:00
Adapt and integrate string_view tests
The previous patch copied the string_view tests from libstdc++. This patch adjusts them in a similar way that the libstdc++ optional tests are integrated in our unit test suite. Not all tests are used, some of them require language features not present in c++11. For example, we can't use a string_view constructor where the length is not explicit in a constexpr, because std::char_traits::length is not a constexpr itself (it is in c++17 though). Nevertheless, a good number of tests are integrated, which covers pretty well the string_view features. gdb/ChangeLog: * Makefile.in (SUBDIR_UNITTESTS_SRCS): Add string_view-selftests.c. * unittests/basic_string_view/capacity/1.cc: Adapt to GDB testsuite. * unittests/basic_string_view/cons/char/1.cc: Likewise. * unittests/basic_string_view/cons/char/2.cc: Likewise. * unittests/basic_string_view/cons/char/3.cc: Likewise. * unittests/basic_string_view/element_access/char/1.cc: Likewise. * unittests/basic_string_view/element_access/char/empty.cc: Likewise. * unittests/basic_string_view/element_access/char/front_back.cc: Likewise. * unittests/basic_string_view/inserters/char/2.cc: Likewise. * unittests/basic_string_view/modifiers/remove_prefix/char/1.cc: Likewise. * unittests/basic_string_view/modifiers/remove_suffix/char/1.cc: Likewise. * unittests/basic_string_view/modifiers/swap/char/1.cc: Likewise. * unittests/basic_string_view/operations/compare/char/1.cc: Likewise. * unittests/basic_string_view/operations/compare/char/13650.cc: Likewise. * unittests/basic_string_view/operations/copy/char/1.cc: Likewise. * unittests/basic_string_view/operations/data/char/1.cc: Likewise. * unittests/basic_string_view/operations/find/char/1.cc: Likewise. * unittests/basic_string_view/operations/find/char/2.cc: Likewise. * unittests/basic_string_view/operations/find/char/3.cc: Likewise. * unittests/basic_string_view/operations/find/char/4.cc: Likewise. * unittests/basic_string_view/operations/rfind/char/1.cc: Likewise. * unittests/basic_string_view/operations/rfind/char/2.cc: Likewise. * unittests/basic_string_view/operations/rfind/char/3.cc: Likewise. * unittests/basic_string_view/operations/substr/char/1.cc: Likewise. * unittests/basic_string_view/operators/char/2.cc: Likewise. * unittests/string_view-selftests.c: New file.
This commit is contained in:

committed by
Simon Marchi

parent
fdc116781b
commit
c9638d2669
@ -109,17 +109,16 @@ template<class charT, class traits, class Allocator>
|
||||
const basic_string<charT,traits,Allocator>& rhs);
|
||||
*/
|
||||
|
||||
#include <string_view>
|
||||
#include <testsuite_hooks.h>
|
||||
namespace operators_2 {
|
||||
|
||||
void
|
||||
test01()
|
||||
{
|
||||
std::string_view str_0("costa rica");
|
||||
std::string_view str_1("costa marbella");
|
||||
std::string_view str_2("cost");
|
||||
std::string_view str_3("costa ricans");
|
||||
std::string_view str_4;
|
||||
gdb::string_view str_0("costa rica");
|
||||
gdb::string_view str_1("costa marbella");
|
||||
gdb::string_view str_2("cost");
|
||||
gdb::string_view str_3("costa ricans");
|
||||
gdb::string_view str_4;
|
||||
|
||||
str_4 = str_0;
|
||||
//comparisons between string objects
|
||||
@ -233,6 +232,7 @@ test01()
|
||||
VERIFY( str_0 <= "costa rica" );
|
||||
}
|
||||
|
||||
#ifndef GDB_STRING_VIEW
|
||||
constexpr bool
|
||||
test02()
|
||||
{
|
||||
@ -358,10 +358,16 @@ test02()
|
||||
|
||||
return true;
|
||||
}
|
||||
#endif
|
||||
|
||||
int
|
||||
main()
|
||||
{
|
||||
test01();
|
||||
#ifndef GDB_STRING_VIEW
|
||||
static_assert( test02() );
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
||||
} // namespace operators_2
|
||||
|
Reference in New Issue
Block a user