Utility tests should use lightweight_test instead of test

This commit is contained in:
Glen Fernandes
2017-12-23 12:58:39 -05:00
parent 51f7f7f53e
commit f8a243bcff
21 changed files with 513 additions and 558 deletions

View File

@@ -16,8 +16,7 @@
#include <boost/utility/string_view.hpp>
#include <boost/config.hpp>
#define BOOST_TEST_MAIN
#include <boost/test/unit_test.hpp>
#include <boost/core/lightweight_test.hpp>
typedef boost::string_view string_view;
@@ -28,27 +27,27 @@ void ends_with ( const char *arg ) {
const char *p = arg;
while ( *p ) {
BOOST_CHECK ( sr.ends_with ( p ));
BOOST_TEST ( sr.ends_with ( p ));
++p;
}
while ( !sr2.empty ()) {
BOOST_CHECK ( sr.ends_with ( sr2 ));
BOOST_TEST ( sr.ends_with ( sr2 ));
sr2.remove_prefix (1);
}
sr2 = arg;
while ( !sr2.empty ()) {
BOOST_CHECK ( sr.ends_with ( sr2 ));
BOOST_TEST ( sr.ends_with ( sr2 ));
sr2.remove_prefix (1);
}
char ch = sz == 0 ? '\0' : arg [ sz - 1 ];
sr2 = arg;
if ( sz > 0 )
BOOST_CHECK ( sr2.ends_with ( ch ));
BOOST_CHECK ( !sr2.ends_with ( ++ch ));
BOOST_CHECK ( sr2.ends_with ( string_view()));
BOOST_TEST ( sr2.ends_with ( ch ));
BOOST_TEST ( !sr2.ends_with ( ++ch ));
BOOST_TEST ( sr2.ends_with ( string_view()));
}
void starts_with ( const char *arg ) {
@@ -58,21 +57,21 @@ void starts_with ( const char *arg ) {
const char *p = arg + std::strlen ( arg ) - 1;
while ( p >= arg ) {
std::string foo ( arg, p + 1 );
BOOST_CHECK ( sr.starts_with ( foo ));
BOOST_TEST ( sr.starts_with ( foo ));
--p;
}
while ( !sr2.empty ()) {
BOOST_CHECK ( sr.starts_with ( sr2 ));
BOOST_TEST ( sr.starts_with ( sr2 ));
sr2.remove_suffix (1);
}
char ch = *arg;
sr2 = arg;
if ( sz > 0 )
BOOST_CHECK ( sr2.starts_with ( ch ));
BOOST_CHECK ( !sr2.starts_with ( ++ch ));
BOOST_CHECK ( sr2.starts_with ( string_view ()));
BOOST_TEST ( sr2.starts_with ( ch ));
BOOST_TEST ( !sr2.starts_with ( ++ch ));
BOOST_TEST ( sr2.starts_with ( string_view ()));
}
void reverse ( const char *arg ) {
@@ -82,14 +81,14 @@ void reverse ( const char *arg ) {
string_view sr2 ( string1 );
std::string string2 ( sr2.rbegin (), sr2.rend ());
BOOST_CHECK ( std::equal ( sr2.rbegin (), sr2.rend (), arg ));
BOOST_CHECK ( string2 == arg );
BOOST_CHECK ( std::equal ( sr1.begin (), sr1.end (), string2.begin ()));
BOOST_TEST ( std::equal ( sr2.rbegin (), sr2.rend (), arg ));
BOOST_TEST ( string2 == arg );
BOOST_TEST ( std::equal ( sr1.begin (), sr1.end (), string2.begin ()));
}
// This helper function eliminates signed vs. unsigned warnings
string_view::size_type ptr_diff ( const char *res, const char *base ) {
BOOST_CHECK ( res >= base );
BOOST_TEST ( res >= base );
return static_cast<string_view::size_type> ( res - base );
}
@@ -103,7 +102,7 @@ void find ( const char *arg ) {
sr1 = arg;
while ( *p ) {
string_view::size_type pos = sr1.find(*p);
BOOST_CHECK ( pos != string_view::npos && ( pos <= ptr_diff ( p, arg )));
BOOST_TEST ( pos != string_view::npos && ( pos <= ptr_diff ( p, arg )));
++p;
}
@@ -112,7 +111,7 @@ void find ( const char *arg ) {
sr1 = arg;
while ( *p ) {
string_view::size_type pos = sr1.rfind(*p);
BOOST_CHECK ( pos != string_view::npos && pos < sr1.size () && ( pos >= ptr_diff ( p, arg )));
BOOST_TEST ( pos != string_view::npos && pos < sr1.size () && ( pos >= ptr_diff ( p, arg )));
++p;
}
@@ -122,7 +121,7 @@ void find ( const char *arg ) {
while ( *p && *(p+1)) {
string_view sr3 ( p, 2 );
string_view::size_type pos = sr1.find ( sr3 );
BOOST_CHECK ( pos != string_view::npos && pos <= static_cast<string_view::size_type>( p - arg ));
BOOST_TEST ( pos != string_view::npos && pos <= static_cast<string_view::size_type>( p - arg ));
p++;
}
@@ -133,9 +132,9 @@ void find ( const char *arg ) {
for ( int ch = 1; ch < 256; ++ch ) {
string_view::size_type pos = sr1.find(ch);
const char *strp = std::strchr ( arg, ch );
BOOST_CHECK (( strp == NULL ) == ( pos == string_view::npos ));
BOOST_TEST (( strp == NULL ) == ( pos == string_view::npos ));
if ( strp != NULL )
BOOST_CHECK ( ptr_diff ( strp, arg ) == pos );
BOOST_TEST ( ptr_diff ( strp, arg ) == pos );
}
sr1 = arg;
@@ -145,9 +144,9 @@ void find ( const char *arg ) {
for ( int ch = 1; ch < 256; ++ch ) {
string_view::size_type pos = sr1.rfind(ch);
const char *strp = std::strrchr ( arg, ch );
BOOST_CHECK (( strp == NULL ) == ( pos == string_view::npos ));
BOOST_TEST (( strp == NULL ) == ( pos == string_view::npos ));
if ( strp != NULL )
BOOST_CHECK ( ptr_diff ( strp, arg ) == pos );
BOOST_TEST ( ptr_diff ( strp, arg ) == pos );
}
@@ -156,7 +155,7 @@ void find ( const char *arg ) {
sr1 = arg;
while ( !sr1.empty ()) {
string_view::size_type pos = sr1.find(*p);
BOOST_CHECK ( pos == 0 );
BOOST_TEST ( pos == 0 );
sr1.remove_prefix (1);
++p;
}
@@ -166,7 +165,7 @@ void find ( const char *arg ) {
p = arg + std::strlen ( arg ) - 1;
while ( !sr1.empty ()) {
string_view::size_type pos = sr1.rfind(*p);
BOOST_CHECK ( pos == sr1.size () - 1 );
BOOST_TEST ( pos == sr1.size () - 1 );
sr1.remove_suffix (1);
--p;
}
@@ -176,7 +175,7 @@ void find ( const char *arg ) {
p = arg;
while ( !sr1.empty ()) {
string_view::size_type pos = sr1.find_first_of(*p);
BOOST_CHECK ( pos == 0 );
BOOST_TEST ( pos == 0 );
sr1.remove_prefix (1);
++p;
}
@@ -187,7 +186,7 @@ void find ( const char *arg ) {
p = arg + std::strlen ( arg ) - 1;
while ( !sr1.empty ()) {
string_view::size_type pos = sr1.find_last_of(*p);
BOOST_CHECK ( pos == sr1.size () - 1 );
BOOST_TEST ( pos == sr1.size () - 1 );
sr1.remove_suffix (1);
--p;
}
@@ -196,8 +195,8 @@ void find ( const char *arg ) {
sr1 = arg;
sr2 = arg;
while ( !sr1.empty() ) {
BOOST_CHECK ( sr1.find_first_of ( sr2 ) == 0 );
BOOST_CHECK ( sr1.find_first_not_of ( sr2 ) == string_view::npos );
BOOST_TEST ( sr1.find_first_of ( sr2 ) == 0 );
BOOST_TEST ( sr1.find_first_not_of ( sr2 ) == string_view::npos );
sr1.remove_prefix ( 1 );
}
@@ -206,14 +205,14 @@ void find ( const char *arg ) {
while ( *p ) {
string_view::size_type pos1 = sr1.find_first_of(*p);
string_view::size_type pos2 = sr1.find_first_not_of(*p);
BOOST_CHECK ( pos1 != string_view::npos && pos1 < sr1.size () && pos1 <= ptr_diff ( p, arg ));
BOOST_TEST ( pos1 != string_view::npos && pos1 < sr1.size () && pos1 <= ptr_diff ( p, arg ));
if ( pos2 != string_view::npos ) {
for ( size_t i = 0 ; i < pos2; ++i )
BOOST_CHECK ( sr1[i] == *p );
BOOST_CHECK ( sr1 [ pos2 ] != *p );
BOOST_TEST ( sr1[i] == *p );
BOOST_TEST ( sr1 [ pos2 ] != *p );
}
BOOST_CHECK ( pos2 != pos1 );
BOOST_TEST ( pos2 != pos1 );
++p;
}
@@ -221,8 +220,8 @@ void find ( const char *arg ) {
sr1 = arg;
sr2 = arg;
while ( !sr1.empty() ) {
BOOST_CHECK ( sr1.find_last_of ( sr2 ) == ( sr1.size () - 1 ));
BOOST_CHECK ( sr1.find_last_not_of ( sr2 ) == string_view::npos );
BOOST_TEST ( sr1.find_last_of ( sr2 ) == ( sr1.size () - 1 ));
BOOST_TEST ( sr1.find_last_not_of ( sr2 ) == string_view::npos );
sr1.remove_suffix ( 1 );
}
@@ -231,15 +230,15 @@ void find ( const char *arg ) {
while ( *p ) {
string_view::size_type pos1 = sr1.find_last_of(*p);
string_view::size_type pos2 = sr1.find_last_not_of(*p);
BOOST_CHECK ( pos1 != string_view::npos && pos1 < sr1.size () && pos1 >= ptr_diff ( p, arg ));
BOOST_CHECK ( pos2 == string_view::npos || pos1 < sr1.size ());
BOOST_TEST ( pos1 != string_view::npos && pos1 < sr1.size () && pos1 >= ptr_diff ( p, arg ));
BOOST_TEST ( pos2 == string_view::npos || pos1 < sr1.size ());
if ( pos2 != string_view::npos ) {
for ( size_t i = sr1.size () -1 ; i > pos2; --i )
BOOST_CHECK ( sr1[i] == *p );
BOOST_CHECK ( sr1 [ pos2 ] != *p );
BOOST_TEST ( sr1[i] == *p );
BOOST_TEST ( sr1 [ pos2 ] != *p );
}
BOOST_CHECK ( pos2 != pos1 );
BOOST_TEST ( pos2 != pos1 );
++p;
}
@@ -335,14 +334,14 @@ void to_string ( const char *arg ) {
sr1 = arg;
// str2 = sr1.to_string<std::allocator<char> > ();
str2 = sr1.to_string ();
BOOST_CHECK ( str1 == str2 );
BOOST_TEST ( str1 == str2 );
std::basic_string<char, std::char_traits<char>, custom_allocator<char> > str3 = sr1.to_string(custom_allocator<char>());
BOOST_CHECK ( std::strcmp(str1.c_str(), str3.c_str()) == 0 );
BOOST_TEST ( std::strcmp(str1.c_str(), str3.c_str()) == 0 );
#ifndef BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
std::string str4 = static_cast<std::string> ( sr1 );
BOOST_CHECK ( str1 == str4 );
BOOST_TEST ( str1 == str4 );
#endif
}
@@ -353,28 +352,28 @@ void compare ( const char *arg ) {
str1.assign ( arg );
sr1 = arg;
BOOST_CHECK ( sr1 == sr1); // compare string_view and string_view
BOOST_CHECK ( sr1 == str1); // compare string and string_view
BOOST_CHECK ( str1 == sr1 ); // compare string_view and string
BOOST_CHECK ( sr1 == arg ); // compare string_view and pointer
BOOST_CHECK ( arg == sr1 ); // compare pointer and string_view
BOOST_TEST ( sr1 == sr1); // compare string_view and string_view
BOOST_TEST ( sr1 == str1); // compare string and string_view
BOOST_TEST ( str1 == sr1 ); // compare string_view and string
BOOST_TEST ( sr1 == arg ); // compare string_view and pointer
BOOST_TEST ( arg == sr1 ); // compare pointer and string_view
if ( sr1.size () > 0 ) {
(*str1.rbegin())++;
BOOST_CHECK ( sr1 != str1 );
BOOST_CHECK ( str1 != sr1 );
BOOST_CHECK ( sr1 < str1 );
BOOST_CHECK ( sr1 <= str1 );
BOOST_CHECK ( str1 > sr1 );
BOOST_CHECK ( str1 >= sr1 );
BOOST_TEST ( sr1 != str1 );
BOOST_TEST ( str1 != sr1 );
BOOST_TEST ( sr1 < str1 );
BOOST_TEST ( sr1 <= str1 );
BOOST_TEST ( str1 > sr1 );
BOOST_TEST ( str1 >= sr1 );
(*str1.rbegin()) -= 2;
BOOST_CHECK ( sr1 != str1 );
BOOST_CHECK ( str1 != sr1 );
BOOST_CHECK ( sr1 > str1 );
BOOST_CHECK ( sr1 >= str1 );
BOOST_CHECK ( str1 < sr1 );
BOOST_CHECK ( str1 <= sr1 );
BOOST_TEST ( sr1 != str1 );
BOOST_TEST ( str1 != sr1 );
BOOST_TEST ( sr1 > str1 );
BOOST_TEST ( sr1 >= str1 );
BOOST_TEST ( str1 < sr1 );
BOOST_TEST ( str1 <= sr1 );
}
}
@@ -388,7 +387,7 @@ const char *test_strings [] = {
NULL
};
BOOST_AUTO_TEST_CASE( test_main )
int main()
{
const char **p = &test_strings[0];
@@ -402,4 +401,6 @@ BOOST_AUTO_TEST_CASE( test_main )
p++;
}
return boost::report_errors();
}