forked from boostorg/system
Update test/result_error_move.cpp
This commit is contained in:
@ -4,27 +4,27 @@
|
|||||||
|
|
||||||
#include <boost/system/result.hpp>
|
#include <boost/system/result.hpp>
|
||||||
#include <boost/core/lightweight_test.hpp>
|
#include <boost/core/lightweight_test.hpp>
|
||||||
#include <boost/core/lightweight_test_trait.hpp>
|
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
using namespace boost::system;
|
using namespace boost::system;
|
||||||
|
|
||||||
struct XM
|
struct X
|
||||||
{
|
{
|
||||||
int v_;
|
int v_;
|
||||||
|
|
||||||
explicit XM( int v = 0 ): v_( v ) {}
|
explicit X( int v = 0 ): v_( v ) {}
|
||||||
|
|
||||||
XM( XM const& ) = delete;
|
X( X const& ) = delete;
|
||||||
XM& operator=( XM const& ) = delete;
|
X& operator=( X const& ) = delete;
|
||||||
XM( XM && ) = default;
|
|
||||||
XM& operator=( XM && ) = default;
|
X( X && ) = default;
|
||||||
|
X& operator=( X && ) = default;
|
||||||
};
|
};
|
||||||
|
|
||||||
int main()
|
int main()
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
result<std::string, XM> r( 1 );
|
result<std::string, X> r( 1 );
|
||||||
|
|
||||||
BOOST_TEST( !r.has_value() );
|
BOOST_TEST( !r.has_value() );
|
||||||
BOOST_TEST( r.has_error() );
|
BOOST_TEST( r.has_error() );
|
||||||
@ -33,14 +33,14 @@ int main()
|
|||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
BOOST_TEST(( !result<std::string, XM>( 1 ).has_value() ));
|
BOOST_TEST(( !result<std::string, X>( 1 ).has_value() ));
|
||||||
BOOST_TEST(( result<std::string, XM>( 1 ).has_error() ));
|
BOOST_TEST(( result<std::string, X>( 1 ).has_error() ));
|
||||||
|
|
||||||
BOOST_TEST_EQ( (result<std::string, XM>( 1 ).error().v_), 1 );
|
BOOST_TEST_EQ( (result<std::string, X>( 1 ).error().v_), 1 );
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
result<std::string, XM> r( "s" );
|
result<std::string, X> r( "s" );
|
||||||
|
|
||||||
BOOST_TEST( r.has_value() );
|
BOOST_TEST( r.has_value() );
|
||||||
BOOST_TEST( !r.has_error() );
|
BOOST_TEST( !r.has_error() );
|
||||||
@ -49,23 +49,14 @@ int main()
|
|||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
result<std::string, XM> r( "s" );
|
BOOST_TEST(( result<std::string, X>( "s" ).has_value() ));
|
||||||
|
BOOST_TEST(( !result<std::string, X>( "s" ).has_error() ));
|
||||||
|
|
||||||
BOOST_TEST( r.has_value() );
|
BOOST_TEST_EQ( (result<std::string, X>( "s" ).error().v_), 0 );
|
||||||
BOOST_TEST( !r.has_error() );
|
|
||||||
|
|
||||||
BOOST_TEST_EQ( std::move( r ).error().v_, 0 );
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
|
||||||
BOOST_TEST(( result<std::string, XM>( "s" ).has_value() ));
|
|
||||||
BOOST_TEST(( !result<std::string, XM>( "s" ).has_error() ));
|
|
||||||
|
|
||||||
BOOST_TEST_EQ( (result<std::string, XM>( "s" ).error().v_), 0 );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
result<void, XM> r( 1 );
|
result<void, X> r( 1 );
|
||||||
|
|
||||||
BOOST_TEST( !r.has_value() );
|
BOOST_TEST( !r.has_value() );
|
||||||
BOOST_TEST( r.has_error() );
|
BOOST_TEST( r.has_error() );
|
||||||
@ -74,14 +65,14 @@ int main()
|
|||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
BOOST_TEST(( !result<void, XM>( 1 ).has_value() ));
|
BOOST_TEST(( !result<void, X>( 1 ).has_value() ));
|
||||||
BOOST_TEST(( result<void, XM>( 1 ).has_error() ));
|
BOOST_TEST(( result<void, X>( 1 ).has_error() ));
|
||||||
|
|
||||||
BOOST_TEST_EQ( (result<void, XM>( 1 ).error().v_), 1 );
|
BOOST_TEST_EQ( (result<void, X>( 1 ).error().v_), 1 );
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
result<void, XM> r;
|
result<void, X> r;
|
||||||
|
|
||||||
BOOST_TEST( r.has_value() );
|
BOOST_TEST( r.has_value() );
|
||||||
BOOST_TEST( !r.has_error() );
|
BOOST_TEST( !r.has_error() );
|
||||||
@ -90,19 +81,11 @@ int main()
|
|||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
result<void, XM> r;
|
BOOST_TEST(( result<void, X>().has_value() ));
|
||||||
|
BOOST_TEST(( !result<void, X>().has_error() ));
|
||||||
|
|
||||||
BOOST_TEST( r.has_value() );
|
BOOST_TEST_EQ( (result<void, X>().error().v_), 0 );
|
||||||
BOOST_TEST( !r.has_error() );
|
|
||||||
|
|
||||||
BOOST_TEST_EQ( std::move( r ).error().v_, 0 );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
|
||||||
BOOST_TEST(( result<void, XM>( ).has_value() ));
|
|
||||||
BOOST_TEST(( !result<void, XM>( ).has_error() ));
|
|
||||||
|
|
||||||
BOOST_TEST_EQ( (result<void, XM>( ).error().v_), 0 );
|
|
||||||
}
|
|
||||||
return boost::report_errors();
|
return boost::report_errors();
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user