mirror of https://github.com/aria2/aria2
Added test for inetNtop()
parent
4f0a45abe2
commit
4747d003f7
|
@ -1,8 +1,12 @@
|
|||
#include "SocketCore.h"
|
||||
#include "Exception.h"
|
||||
|
||||
#include <cstring>
|
||||
#include <iostream>
|
||||
#include <cppunit/extensions/HelperMacros.h>
|
||||
|
||||
#include "a2functional.h"
|
||||
#include "Exception.h"
|
||||
|
||||
namespace aria2 {
|
||||
|
||||
class SocketCoreTest:public CppUnit::TestFixture {
|
||||
|
@ -10,6 +14,7 @@ class SocketCoreTest:public CppUnit::TestFixture {
|
|||
CPPUNIT_TEST_SUITE(SocketCoreTest);
|
||||
CPPUNIT_TEST(testWriteAndReadDatagram);
|
||||
CPPUNIT_TEST(testGetSocketError);
|
||||
CPPUNIT_TEST(testInetNtop);
|
||||
CPPUNIT_TEST_SUITE_END();
|
||||
public:
|
||||
void setUp() {}
|
||||
|
@ -18,6 +23,7 @@ public:
|
|||
|
||||
void testWriteAndReadDatagram();
|
||||
void testGetSocketError();
|
||||
void testInetNtop();
|
||||
};
|
||||
|
||||
|
||||
|
@ -69,4 +75,33 @@ void SocketCoreTest::testGetSocketError()
|
|||
CPPUNIT_ASSERT_EQUAL(std::string(""), s.getSocketError());
|
||||
}
|
||||
|
||||
void SocketCoreTest::testInetNtop()
|
||||
{
|
||||
char dest[NI_MAXHOST];
|
||||
{
|
||||
std::string s = "192.168.0.1";
|
||||
addrinfo* res;
|
||||
CPPUNIT_ASSERT_EQUAL(0, callGetaddrinfo(&res, s.c_str(), 0, AF_INET,
|
||||
SOCK_STREAM, 0, 0));
|
||||
WSAAPI_AUTO_DELETE<struct addrinfo*> resDeleter(res, freeaddrinfo);
|
||||
sockaddr_in addr;
|
||||
memcpy(&addr, res->ai_addr, sizeof(addr));
|
||||
CPPUNIT_ASSERT_EQUAL(0, inetNtop(AF_INET, &addr.sin_addr,
|
||||
dest, sizeof(dest)));
|
||||
CPPUNIT_ASSERT_EQUAL(s, std::string(dest));
|
||||
}
|
||||
{
|
||||
std::string s = "2001:db8::2:1";
|
||||
addrinfo* res;
|
||||
CPPUNIT_ASSERT_EQUAL(0, callGetaddrinfo(&res, s.c_str(), 0, AF_INET6,
|
||||
SOCK_STREAM, 0, 0));
|
||||
WSAAPI_AUTO_DELETE<struct addrinfo*> resDeleter(res, freeaddrinfo);
|
||||
sockaddr_in6 addr;
|
||||
memcpy(&addr, res->ai_addr, sizeof(addr));
|
||||
CPPUNIT_ASSERT_EQUAL(0, inetNtop(AF_INET6, &addr.sin6_addr,
|
||||
dest, sizeof(dest)));
|
||||
CPPUNIT_ASSERT_EQUAL(s, std::string(dest));
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace aria2
|
||||
|
|
Loading…
Reference in New Issue