Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // TODO multiple ip address in localmachine (..localmachine)
- BOOST_AUTO_TEST_CASE( test_resolver )
- {
- boost::asio::io_service io_service;
- boost::system::error_code error;
- tcp::resolver resolver(io_service);
- tcp::resolver::iterator end_;
- // localmachine
- {
- tcp::resolver::query query(boost::asio::ip::host_name(),"");
- tcp::resolver::iterator iterator = resolver.resolve(query);
- tcp::endpoint _endpoint = *iterator;
- BOOST_CHECK_EQUAL( _endpoint.address().to_string(), "192.168.10.101" );
- }
- // host -> ip
- {
- tcp::resolver::query query("reiot.cafe24.com","");
- tcp::resolver::iterator iterator = resolver.resolve(query);
- tcp::endpoint _endpoint = *iterator;
- BOOST_CHECK_EQUAL( _endpoint.address().to_string(), "123.214.172.49" );
- }
- // localhost
- {
- tcp::resolver::query query("localhost","");
- tcp::resolver::iterator iterator = resolver.resolve(query);
- tcp::endpoint _endpoint = *iterator;
- BOOST_CHECK_EQUAL( _endpoint.address().to_string(), "127.0.0.1" );
- if ( ++iterator != end_ )
- {
- _endpoint = *iterator;
- BOOST_CHECK_EQUAL( _endpoint.address().to_string(), "192.168.10.101" );
- }
- }
- // http
- {
- tcp::resolver::query query("reiot.cafe24.com","http");
- tcp::resolver::iterator iterator = resolver.resolve(query);
- tcp::endpoint _endpoint = *iterator;
- BOOST_CHECK_EQUAL( _endpoint.address().to_string(), "123.214.172.49" );
- BOOST_CHECK_EQUAL( _endpoint.port(), 80 );
- }
- // ftp
- {
- tcp::resolver::query query("reiot.cafe24.com","ftp");
- tcp::resolver::iterator iterator = resolver.resolve(query);
- tcp::endpoint _endpoint = *iterator;
- BOOST_CHECK_EQUAL( _endpoint.address().to_string(), "123.214.172.49" );
- BOOST_CHECK_EQUAL( _endpoint.port(), 21 );
- }
- // telnet
- {
- tcp::resolver::query query("reiot.cafe24.com","telnet");
- tcp::resolver::iterator iterator = resolver.resolve(query);
- tcp::endpoint _endpoint = *iterator;
- BOOST_CHECK_EQUAL( _endpoint.address().to_string(), "123.214.172.49" );
- BOOST_CHECK_EQUAL( _endpoint.port(), 23 );
- }
- // unknown host
- {
- tcp::resolver::query query("reiot1.com","");
- resolver.resolve(query,error);
- BOOST_CHECK_EQUAL( error.value(), boost::asio::error::host_not_found );
- }
- // unknown service
- {
- tcp::resolver::query query("reiot.cafe24.com","test");
- resolver.resolve(query,error);
- BOOST_CHECK_EQUAL( error.value(), boost::asio::error::service_not_found );
- }
- }
- void print_address(const boost::system::error_code& e, tcp::resolver::iterator itr )
- {
- tcp::endpoint endpoint_ = *itr;
- BOOST_MESSAGE( endpoint_.address() );
- }
- class AsyncResolveHandler
- {
- public :
- AsyncResolveHandler( int errorcode ) : address_(""), port_(0), errorcode_(errorcode) {}
- AsyncResolveHandler( std::string addr, int port = 0 ) : address_(addr), port_(port) {}
- void operator() (const boost::system::error_code& e, tcp::resolver::iterator itr )
- {
- if ( !e )
- {
- tcp::endpoint endpoint_ = *itr;
- BOOST_CHECK_EQUAL( endpoint_.address().to_string(), address_ );
- if ( port_ != 0 )
- {
- BOOST_CHECK_EQUAL( endpoint_.port(), port_ );
- }
- }
- else
- {
- BOOST_CHECK_EQUAL( e.value(), errorcode_ );
- }
- }
- std::string address_;
- int port_;
- int errorcode_;
- };
- BOOST_AUTO_TEST_CASE( test_async_resolver )
- {
- boost::asio::io_service io_service;
- tcp::resolver resolver(io_service);
- boost::system::error_code error;
- // host -> ip
- {
- tcp::resolver::query query("reiot.cafe24.com","");
- resolver.async_resolve(query,AsyncResolveHandler("123.214.172.49"));
- BOOST_CHECK_EQUAL(io_service.run_one(error),1);
- BOOST_CHECK_MESSAGE(!error,error.message());
- io_service.reset();
- }
- // localhost -> 127.0.0.1
- {
- tcp::resolver::query query("localhost","");
- resolver.async_resolve(query,AsyncResolveHandler("127.0.0.1"));
- BOOST_CHECK_EQUAL(io_service.run_one(error),1);
- BOOST_CHECK_MESSAGE(!error,error.message());
- io_service.reset();
- }
- // http
- {
- tcp::resolver::query query("reiot.cafe24.com","http");
- resolver.async_resolve(query,AsyncResolveHandler("123.214.172.49",80));
- BOOST_CHECK_EQUAL(io_service.run_one(error),1);
- BOOST_CHECK_MESSAGE(!error,error.message());
- io_service.reset();
- }
- // ftp
- {
- tcp::resolver::query query("reiot.cafe24.com","ftp");
- resolver.async_resolve(query,AsyncResolveHandler("123.214.172.49",21));
- BOOST_CHECK_EQUAL(io_service.run_one(error),1);
- BOOST_CHECK_MESSAGE(!error,error.message());
- io_service.reset();
- }
- // telnet
- {
- tcp::resolver::query query("reiot.cafe24.com","telnet");
- resolver.async_resolve(query,AsyncResolveHandler("123.214.172.49",23));
- BOOST_CHECK_EQUAL(io_service.run_one(error),1);
- BOOST_CHECK_MESSAGE(!error,error.message());
- io_service.reset();
- }
- // unknown host
- {
- tcp::resolver::query query("reiot1.com","");
- resolver.async_resolve(query,AsyncResolveHandler(boost::asio::error::host_not_found));
- BOOST_CHECK_EQUAL(io_service.run_one(error),1);
- BOOST_CHECK_MESSAGE(!error,error.message());
- io_service.reset();
- }
- // unknown service
- {
- tcp::resolver::query query("reiot.cafe24.com","test");
- resolver.async_resolve(query,AsyncResolveHandler(boost::asio::error::service_not_found));
- BOOST_CHECK_EQUAL(io_service.run_one(error),1);
- BOOST_CHECK_MESSAGE(!error,error.message());
- io_service.reset();
- }
- }
Add Comment
Please, Sign In to add comment