test/cxx/ApplicationPool2/ProcessTest.cpp in passenger-4.0.60 vs test/cxx/ApplicationPool2/ProcessTest.cpp in passenger-5.0.0.beta1

- old
+ new

@@ -7,65 +7,64 @@ using namespace std; namespace tut { struct ApplicationPool2_ProcessTest { BackgroundEventLoop bg; - SocketListPtr sockets; + SocketList sockets; SocketPair adminSocket; Pipe errorPipe; FileDescriptor server1, server2, server3; ApplicationPool2_ProcessTest() { bg.start(); struct sockaddr_in addr; socklen_t len = sizeof(addr); - sockets = boost::make_shared<SocketList>(); server1 = createTcpServer("127.0.0.1", 0); getsockname(server1, (struct sockaddr *) &addr, &len); - sockets->add("main1", + sockets.add("main1", "tcp://127.0.0.1:" + toString(addr.sin_port), "session", 3); server2 = createTcpServer("127.0.0.1", 0); getsockname(server2, (struct sockaddr *) &addr, &len); - sockets->add("main2", + sockets.add("main2", "tcp://127.0.0.1:" + toString(addr.sin_port), "session", 3); server3 = createTcpServer("127.0.0.1", 0); getsockname(server3, (struct sockaddr *) &addr, &len); - sockets->add("main3", + sockets.add("main3", "tcp://127.0.0.1:" + toString(addr.sin_port), "session", 3); adminSocket = createUnixSocketPair(); errorPipe = createPipe(); } + + ProcessPtr createProcess() { + ProcessPtr process = boost::make_shared<Process>(123, + "123", adminSocket[0], errorPipe[0], sockets, 0, 0); + process->dummy = true; + process->requiresShutdown = false; + return process; + } }; DEFINE_TEST_GROUP(ApplicationPool2_ProcessTest); TEST_METHOD(1) { // Test initial state. - ProcessPtr process = boost::make_shared<Process>( - 123, "", "", adminSocket[0], - errorPipe[0], sockets, 0, 0); - process->dummy = true; - process->requiresShutdown = false; + ProcessPtr process = createProcess(); ensure_equals(process->busyness(), 0); ensure(!process->isTotallyBusy()); } TEST_METHOD(2) { // Test opening and closing sessions. - ProcessPtr process = boost::make_shared<Process>( - 123, "", "", adminSocket[0], - errorPipe[0], sockets, 0, 0); - process->dummy = true; - process->requiresShutdown = false; + ProcessPtr process = createProcess(); SessionPtr session = process->newSession(); SessionPtr session2 = process->newSession(); ensure_equals(process->sessions, 2); process->sessionClosed(session.get()); ensure_equals(process->sessions, 1); @@ -74,15 +73,11 @@ } TEST_METHOD(3) { // newSession() checks out the socket with the smallest busyness number // and sessionClosed() restores the session busyness statistics. - ProcessPtr process = boost::make_shared<Process>( - 123, "", "", adminSocket[0], - errorPipe[0], sockets, 0, 0); - process->dummy = true; - process->requiresShutdown = false; + ProcessPtr process = createProcess(); // The first 3 newSession() commands check out an idle socket. SessionPtr session1 = process->newSession(); SessionPtr session2 = process->newSession(); SessionPtr session3 = process->newSession(); @@ -97,11 +92,11 @@ // There should now be 1 process with 1 session // and 2 processes with 2 sessions. map<int, int> sessionCount; SocketList::const_iterator it; - for (it = process->sockets->begin(); it != process->sockets->end(); it++) { + for (it = process->sockets.begin(); it != process->sockets.end(); it++) { sessionCount[it->sessions]++; } ensure_equals(sessionCount.size(), 2u); ensure_equals(sessionCount[1], 1); ensure_equals(sessionCount[2], 2); @@ -110,23 +105,19 @@ // and 1 process having 2 sessions. process->sessionClosed(session1.get()); process->sessionClosed(session2.get()); process->sessionClosed(session3.get()); sessionCount.clear(); - for (it = process->sockets->begin(); it != process->sockets->end(); it++) { + for (it = process->sockets.begin(); it != process->sockets.end(); it++) { sessionCount[it->sessions]++; } ensure_equals(sessionCount[0], 1); ensure_equals(sessionCount[1], 2); } TEST_METHOD(4) { // If all sockets are at their full capacity then newSession() will fail. - ProcessPtr process = boost::make_shared<Process>( - 123, "", "", adminSocket[0], - errorPipe[0], sockets, 0, 0); - process->dummy = true; - process->requiresShutdown = false; + ProcessPtr process = createProcess(); vector<SessionPtr> sessions; for (int i = 0; i < 9; i++) { ensure(!process->isTotallyBusy()); SessionPtr session = process->newSession(); ensure(session != NULL);