#include <scpp_os.hpp> #include <iostream> #include <scpp_thread.hpp> #include <scpp_socket.hpp> #include <scpp_unittest.hpp> using namespace scpp; /*** * Socket 単体テスト */ class InetAddressTest : public TestCase { void suite() { // RUN_TEST(testException); } }; // class SocketServer : public Thread // { // public: // void run() // { // Socket server; // Socket client1; // Socket client2; // Socket client3; // try // { // server.bind("::1", 9999); // server.listen(10); // server.accept(&client1); // server.accept(&client2); // server.accept(&client3); // Thread::sleep(50); // client1.close(); // client2.close(); // client3.close(); // server.close(); // } // catch (SocketException& e) // { // Assertion::fail(); // } // } // // }; // // // class SocketServerRecv : public Thread // { // public: // void run() // { // Socket server; // Socket client; // char buff[1024]; // ssize_t readSize; // try // { // server.bind("127.0.0.1", 9997); // server.listen(10); // // SocketSet readfd; // readfd.add(server); // // Socket::select(&readfd, 0, 0, 0); // server.accept(&client); // readSize = client.read(buff, sizeof(buff)); // Assertion::assertEquals('A', buff[0]); // Assertion::assertEquals('B', buff[1]); // Assertion::assertEquals('C', buff[2]); // client.close(); // server.close(); // } // catch (SocketException& e) // { // Assertion::fail(); // } // } // // }; // // // class DummySocket : public Socket // { // public: // DummySocket() : Socket() {} // ~DummySocket() {} // void test() // { // setRemoteAddress(0, 0); // setLocalAddress(0, 0); // Assertion::assertEquals("", getAddress()); // Assertion::assertEquals("", getPort()); // Assertion::assertEquals("", getLocalAddress()); // Assertion::assertEquals("", getLocalPort()); // // } // }; // // /*** // * Socket 単体テスト // */ // class SocketTest : public TestCase // { // public: // SocketTest() {} // ~SocketTest() {} // // void testException() // { // SocketException e1; // SocketException e2("mag"); // SocketException e3(e1); // } // // void testSocket() // { // SocketServer serverThread; // serverThread.start(); // // Thread::sleep(100); // Socket sock1; // Socket sock2; // Socket sock3; // try // { // sock1.connect("::1", 9999, "::1", 9998); // Assertion::assertEquals("::1" , sock1.getAddress()); // Assertion::assertEquals("9999", sock1.getPort()); // Assertion::assertEquals("::1" , sock1.getLocalAddress()); // Assertion::assertEquals("9998", sock1.getLocalPort()); // // sock2.connect("::1", 9999, "::1"); // sock3.connect("::1", 9999); // // // Thread::sleep(100); // sock1.close(); // sock2.close(); // sock3.close(); // } // catch (SocketException& e) // { // std::cout << e.what() << std::endl; // Assertion::fail(); // } // serverThread.join(); // // } // // void testBindError() // { // Socket sock; // try // { // sock.bind("111.111.111.111", 12345); // Assertion::fail(); // } // catch (SocketException& e) // { // // ok // } // // try // { // sock.listen(10); // Assertion::fail(); // } // catch (SocketException& e) // { // // ok // } // // try // { // Socket svr; // svr.bind("::1", "1"); // sock.connect("xxxxx", "xyz", "::1", "1"); // Assertion::fail(); // } // catch (SocketException& e) // { // // ok // } // } // // // void testConnectError() // { // Socket sock; // try // { // sock.connect("127.0.0.1", 1); // Assertion::fail(); // } // catch (SocketException& e) // { // // ok // } // // try // { // sock.connect("127.0.0.1", 1, "127.0.0.1", 2); // Assertion::fail(); // } // catch (SocketException& e) // { // // ok // } // } // // // void testInvalidAddress() // { // Socket sock; // try // { // sock.connect("hogehuga", "abc"); // Assertion::fail(); // } // catch (SocketException& e) // { // // ok // } // // try // { // sock.bind("hogehuga", "abc"); // } // catch (SocketException& e) // { // // ok // } // // // } // // void testDummySocket() // { // DummySocket dsock; // dsock.test(); // } // // // void testSendRecv() // { // SocketServerRecv recvThread; // recvThread.start(); // Thread::sleep(10); // try // { // char buff[5]; // buff[0] = 'A'; // buff[1] = 'B'; // buff[2] = 'C'; // buff[3] = '\0'; // Socket client; // client.connect("127.0.0.1", 9997); // // SocketSet writefd; // writefd.add(client); // // Socket::select(0, &writefd, &writefd, 0); // // client.write(buff, 4); // client.close(); // } // catch (SocketException& e) // { // std::cout << e.what() << std::endl; // Assertion::fail(); // } // // recvThread.join(); // } // // // void testDatagramSocket() // { // DatagramSocket dsock; // dsock.close(); // } // // // // void suite() // { // RUN_TEST(testException); // RUN_TEST(testSocket); // RUN_TEST(testBindError); // RUN_TEST(testConnectError); // RUN_TEST(testInvalidAddress); // RUN_TEST(testDummySocket); // RUN_TEST(testDatagramSocket); // RUN_TEST(testSendRecv); // // } // // //};