--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/datacommsserver/esockserver/test/TE_ESock/EsockTestSection6.cpp Thu Dec 17 09:22:25 2009 +0200
@@ -0,0 +1,569 @@
+// Copyright (c) 2001-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// This contains ESock Test cases from section 6
+//
+//
+
+// EPOC includes
+#include <e32base.h>
+#include <in_sock.h>
+#include <es_mbuf.h>
+#include <ss_pman.h>
+
+// Test system includes
+#include "EsockTestSection6.h"
+
+
+// Test step 6.1
+const TDesC& CEsockTest6_1::GetTestName()
+ {
+ // store the name of this test case
+ _LIT(ret,"Test6.1");
+
+ return ret;
+ }
+
+CEsockTest6_1::~CEsockTest6_1()
+ {
+ }
+
+enum TVerdict CEsockTest6_1::easyTestStepPreambleL()
+ {
+ CloseSockets();
+
+ TInt connections;
+ TRAPD(ret, connections = OpenConnectionsL(_L("Test_6.1"), iSockIndex2, iSockIndex3));
+ if (KErrNone != ret)
+ {
+ return EFail;
+ }
+ if (0 >= connections)
+ {
+ return EFail;
+ }
+
+ return EPass;
+ }
+
+enum TVerdict CEsockTest6_1::easyTestStepL()
+ {
+ TESTL(EPass == TestStepResult());
+
+ TRequestStatus stat;
+ // shutdown server socket - Normal mode
+ iEsockSuite->GetSocketHandle(iSockIndex3).Shutdown(RSocket::ENormal, stat);
+ User::WaitForRequest(stat);
+ TESTEL(stat==KErrNone, stat.Int());
+
+ TBuf8<40> rbuf;
+ // read from server socket
+ iEsockSuite->GetSocketHandle(iSockIndex3).Read(rbuf, stat);
+ User::WaitForRequest(stat);
+ TESTEL(stat==KErrBadHandle, stat.Int());
+
+ // write on server socket
+ iEsockSuite->GetSocketHandle(iSockIndex3).Write(_L8("some data"), stat);
+ User::WaitForRequest(stat);
+ TESTEL(stat==KErrBadHandle, stat.Int());
+
+ // read fronm client socket
+ iEsockSuite->GetSocketHandle(iSockIndex2).Read(rbuf, stat);
+ User::WaitForRequest(stat);
+ TESTEL(stat==KErrEof, stat.Int()); // nothing to read
+
+ // write on client socket
+ iEsockSuite->GetSocketHandle(iSockIndex2).Write(_L8("some data"), stat);
+ User::WaitForRequest(stat);
+ TESTEL(stat==KErrNone, stat.Int()); // successful
+
+ return EPass;
+ }
+
+
+// Test step 6.2
+const TDesC& CEsockTest6_2::GetTestName()
+ {
+ // store the name of this test case
+ _LIT(ret,"Test6.2");
+
+ return ret;
+ }
+
+CEsockTest6_2::~CEsockTest6_2()
+ {
+ }
+
+enum TVerdict CEsockTest6_2::easyTestStepPreambleL()
+ {
+ CloseSockets();
+
+ TInt connections;
+ TRAPD(ret, connections = OpenConnectionsL(_L("Test_6.2"), iSockIndex2, iSockIndex3));
+ if (KErrNone != ret)
+ {
+ return EFail;
+ }
+ if (0 >= connections)
+ {
+ return EFail;
+ }
+
+ return EPass;
+ }
+
+enum TVerdict CEsockTest6_2::easyTestStepL()
+ {
+ TESTL(EPass == TestStepResult());
+
+ TRequestStatus stat;
+ // shutdown server socket - StopOutput mode
+ iEsockSuite->GetSocketHandle(iSockIndex3).Shutdown(RSocket::EStopOutput, stat);
+ User::WaitForRequest(stat);
+ TESTEL(stat==KErrNone, stat.Int());
+
+ // write on server socket
+ iEsockSuite->GetSocketHandle(iSockIndex3).Write(_L8("some data"), stat);
+ User::WaitForRequest(stat);
+ TESTEL(stat==KErrEof, stat.Int());
+
+ // read on client
+ TBuf8<40> rbuf, wbuf;
+ iEsockSuite->GetSocketHandle(iSockIndex2).Read(rbuf, stat);
+ User::WaitForRequest(stat);
+ TESTEL(stat==KErrEof, stat.Int());
+
+ // write on client
+ wbuf.SetMax();
+ iEsockSuite->GetSocketHandle(iSockIndex2).Write(wbuf, stat);
+ User::WaitForRequest(stat);
+ TESTEL(stat==KErrNone, stat.Int());
+
+ // read on server
+ iEsockSuite->GetSocketHandle(iSockIndex3).Read(rbuf, stat);
+ User::WaitForRequest(stat);
+ TESTEL(stat==KErrNone, stat.Int());
+
+ TESTL(rbuf==wbuf);
+
+ return EPass;
+ }
+
+
+// Test step 6.3
+const TDesC& CEsockTest6_3::GetTestName()
+ {
+ // store the name of this test case
+ _LIT(ret,"Test6.3");
+
+ return ret;
+ }
+
+CEsockTest6_3::~CEsockTest6_3()
+ {
+ }
+
+enum TVerdict CEsockTest6_3::easyTestStepPreambleL()
+ {
+ CloseSockets();
+
+ TInt connections;
+ TRAPD(ret, connections = OpenConnectionsL(_L("Test_6.3"), iSockIndex2, iSockIndex3));
+ if (KErrNone != ret)
+ {
+ return EFail;
+ }
+ if (0 >= connections)
+ {
+ return EFail;
+ }
+
+ return EPass;
+ }
+
+enum TVerdict CEsockTest6_3::easyTestStepL()
+ {
+ TESTL(EPass == TestStepResult());
+
+ TRequestStatus stat;
+ // shutdown server socket - StopInput mode
+ iEsockSuite->GetSocketHandle(iSockIndex3).Shutdown(RSocket::EStopInput, stat);
+ User::WaitForRequest(stat);
+ TESTEL(stat==KErrNone, stat.Int());
+
+ TBuf8<4> rbuf, wbuf;
+ // write on server
+ wbuf.SetMax();
+ iEsockSuite->GetSocketHandle(iSockIndex3).Write(wbuf, stat);
+ User::WaitForRequest(stat);
+ TESTEL(stat==KErrNone, stat.Int());
+
+ // read on client
+ iEsockSuite->GetSocketHandle(iSockIndex2).Read(rbuf, stat);
+ User::WaitForRequest(stat);
+ TESTEL(stat==KErrNone, stat.Int());
+
+ TESTL(rbuf==wbuf);
+
+ // write on client socket
+ iEsockSuite->GetSocketHandle(iSockIndex2).Write(_L8("some data"), stat);
+ User::WaitForRequest(stat);
+ TESTEL(stat==KErrNone, stat.Int());
+
+ // read on server
+ iEsockSuite->GetSocketHandle(iSockIndex3).Read(rbuf, stat);
+ User::WaitForRequest(stat);
+ TESTEL(stat==KErrEof, stat.Int());
+
+ return EPass;
+ }
+
+
+// Test step 6.4
+const TDesC& CEsockTest6_4::GetTestName()
+ {
+ // store the name of this test case
+ _LIT(ret,"Test6.4");
+
+ return ret;
+ }
+
+CEsockTest6_4::~CEsockTest6_4()
+ {
+ }
+
+enum TVerdict CEsockTest6_4::easyTestStepPreambleL()
+ {
+ CloseSockets();
+
+ TInt connections;
+ TRAPD(ret, connections = OpenConnectionsL(_L("Test_6.4"), iSockIndex2, iSockIndex3));
+ if (KErrNone != ret)
+ {
+ return EFail;
+ }
+ if (0 >= connections)
+ {
+ return EFail;
+ }
+
+ return EPass;
+ }
+
+enum TVerdict CEsockTest6_4::easyTestStepL()
+ {
+ TESTL(EPass == TestStepResult());
+
+ TRequestStatus stat;
+ // shutdown server socket - Immediate mode
+ iEsockSuite->GetSocketHandle(iSockIndex3).Shutdown(RSocket::EImmediate, stat);
+ User::WaitForRequest(stat);
+ TESTEL(stat==KErrNone, stat.Int());
+
+ TBuf8<40> rbuf;
+ // read on server socket
+ iEsockSuite->GetSocketHandle(iSockIndex3).Read(rbuf, stat);
+ User::WaitForRequest(stat);
+ TESTEL(stat==KErrBadHandle, stat.Int());
+
+ // write on server
+ iEsockSuite->GetSocketHandle(iSockIndex3).Write(_L8("some data"), stat);
+ User::WaitForRequest(stat);
+ TESTEL(stat==KErrBadHandle, stat.Int());
+
+ // read on client
+ iEsockSuite->GetSocketHandle(iSockIndex2).Read(rbuf, stat);
+ User::WaitForRequest(stat);
+ TESTEL(stat==KErrDisconnected, stat.Int());
+
+ // write on client
+ iEsockSuite->GetSocketHandle(iSockIndex2).Write(_L8("more data"), stat);
+ User::WaitForRequest(stat);
+ TESTEL(stat==KErrDisconnected, stat.Int());
+
+ return EPass;
+ }
+
+
+// Test step 6.5
+const TDesC& CEsockTest6_5::GetTestName()
+ {
+ // store the name of this test case
+ _LIT(ret,"Test6.5");
+
+ return ret;
+ }
+
+CEsockTest6_5::~CEsockTest6_5()
+ {
+ }
+
+enum TVerdict CEsockTest6_5::easyTestStepPreambleL()
+ {
+ CloseSockets();
+
+ TInt connections;
+ TRAPD(ret, connections = OpenConnectionsL(_L("Test_6.5"), iSockIndex2, iSockIndex3));
+ if (KErrNone != ret)
+ {
+ return EFail;
+ }
+ if (0 >= connections)
+ {
+ return EFail;
+ }
+
+ return EPass;
+ }
+
+enum TVerdict CEsockTest6_5::easyTestStepL()
+ {
+ TESTL(EPass == TestStepResult());
+
+ TRequestStatus stat;
+ // shutdown client socket - Normal mode
+ iEsockSuite->GetSocketHandle(iSockIndex2).Shutdown(RSocket::ENormal, stat);
+ User::WaitForRequest(stat);
+ TESTEL(stat==KErrNone, stat.Int());
+
+ TBuf8<40> rbuf;
+ // read on client socket
+ iEsockSuite->GetSocketHandle(iSockIndex2).Read(rbuf, stat);
+ User::WaitForRequest(stat);
+ TESTEL(stat==KErrBadHandle, stat.Int());
+
+ // write on client
+ iEsockSuite->GetSocketHandle(iSockIndex2).Write(_L8("some data"), stat);
+ User::WaitForRequest(stat);
+ TESTEL(stat==KErrBadHandle, stat.Int());
+
+ // read on server
+ iEsockSuite->GetSocketHandle(iSockIndex3).Read(rbuf, stat);
+ User::WaitForRequest(stat);
+ TESTEL(stat==KErrEof, stat.Int());
+
+ // write on server
+ iEsockSuite->GetSocketHandle(iSockIndex3).Write(_L8("more data"), stat);
+ User::WaitForRequest(stat);
+ TESTEL(stat==KErrNone, stat.Int());
+
+ return EPass;
+ }
+
+
+// Test step 6.6
+const TDesC& CEsockTest6_6::GetTestName()
+ {
+ // store the name of this test case
+ _LIT(ret,"Test6.6");
+
+ return ret;
+ }
+
+CEsockTest6_6::~CEsockTest6_6()
+ {
+ }
+
+enum TVerdict CEsockTest6_6::easyTestStepPreambleL()
+ {
+ CloseSockets();
+
+ TInt connections;
+ TRAPD(ret, connections = OpenConnectionsL(_L("Test_6.6"), iSockIndex2, iSockIndex3));
+ if (KErrNone != ret)
+ {
+ return EFail;
+ }
+ if (0 >= connections)
+ {
+ return EFail;
+ }
+
+ return EPass;
+ }
+
+enum TVerdict CEsockTest6_6::easyTestStepL()
+ {
+ TESTL(EPass == TestStepResult());
+
+ TRequestStatus stat;
+ // shutdown client socket - StopOutput mode
+ iEsockSuite->GetSocketHandle(iSockIndex2).Shutdown(RSocket::EStopOutput, stat);
+ User::WaitForRequest(stat);
+ TESTEL(stat==KErrNone, stat.Int());
+
+ // write on client socket
+ iEsockSuite->GetSocketHandle(iSockIndex2).Write(_L8("some data"), stat);
+ User::WaitForRequest(stat);
+ TESTEL(stat==KErrEof, stat.Int());
+
+ TBuf8<40> rbuf, wbuf;
+ // read on server
+ iEsockSuite->GetSocketHandle(iSockIndex3).Read(rbuf, stat);
+ User::WaitForRequest(stat);
+ TESTEL(stat==KErrEof, stat.Int());
+
+ // write on server
+ wbuf.SetMax();
+ iEsockSuite->GetSocketHandle(iSockIndex3).Write(wbuf, stat);
+ User::WaitForRequest(stat);
+ TESTEL(stat==KErrNone, stat.Int());
+
+ // read on client
+ iEsockSuite->GetSocketHandle(iSockIndex2).Read(rbuf, stat);
+ User::WaitForRequest(stat);
+ TESTEL(stat==KErrNone, stat.Int());
+
+ TESTL(rbuf==wbuf);
+
+ return EPass;
+ }
+
+
+// Test step 6.7
+const TDesC& CEsockTest6_7::GetTestName()
+ {
+ // store the name of this test case
+ _LIT(ret,"Test6.7");
+
+ return ret;
+ }
+
+CEsockTest6_7::~CEsockTest6_7()
+ {
+ }
+
+enum TVerdict CEsockTest6_7::easyTestStepPreambleL()
+ {
+ CloseSockets();
+
+ TInt connections;
+ TRAPD(ret, connections = OpenConnectionsL(_L("Test_6.7"), iSockIndex2, iSockIndex3));
+ if (KErrNone != ret)
+ {
+ return EFail;
+ }
+ if (0 >= connections)
+ {
+ return EFail;
+ }
+
+ return EPass;
+ }
+
+enum TVerdict CEsockTest6_7::easyTestStepL()
+ {
+ TESTL(EPass == TestStepResult());
+
+ TRequestStatus stat;
+ // shutdown client socket - StopInput mode
+ iEsockSuite->GetSocketHandle(iSockIndex2).Shutdown(RSocket::EStopInput, stat);
+ User::WaitForRequest(stat);
+ TESTEL(stat==KErrNone, stat.Int());
+
+ // For testing - try a short delay
+ User::After(1000000);
+
+ TBuf8<40> rbuf, wbuf;
+ // write on client
+ wbuf.SetMax();
+ iEsockSuite->GetSocketHandle(iSockIndex2).Write(wbuf, stat);
+ User::WaitForRequest(stat);
+ TESTEL(stat==KErrNone, stat.Int());
+
+ // read on server
+ iEsockSuite->GetSocketHandle(iSockIndex3).Read(rbuf, stat);
+ User::WaitForRequest(stat);
+ TESTEL(stat==KErrNone, stat.Int());
+
+ // write on server socket
+ iEsockSuite->GetSocketHandle(iSockIndex3).Write(_L8("some data"), stat);
+ User::WaitForRequest(stat);
+ TESTEL(stat==KErrNone, stat.Int());
+
+ // read on client
+ iEsockSuite->GetSocketHandle(iSockIndex2).Read(rbuf, stat);
+ User::WaitForRequest(stat);
+ TESTEL(stat==KErrEof, stat.Int());
+
+ // For testing - try a short delay
+ User::After(1000000);
+
+ return EPass;
+ }
+
+
+// Test step 6.8
+const TDesC& CEsockTest6_8::GetTestName()
+ {
+ // store the name of this test case
+ _LIT(ret,"Test6.8");
+
+ return ret;
+ }
+
+CEsockTest6_8::~CEsockTest6_8()
+ {
+ }
+
+enum TVerdict CEsockTest6_8::easyTestStepPreambleL()
+ {
+ CloseSockets();
+
+ TInt connections;
+ TRAPD(ret, connections = OpenConnectionsL(_L("Test_6.8"), iSockIndex2, iSockIndex3));
+ if (KErrNone != ret)
+ {
+ return EFail;
+ }
+ if (0 >= connections)
+ {
+ return EFail;
+ }
+
+ return EPass;
+ }
+
+enum TVerdict CEsockTest6_8::easyTestStepL()
+ {
+ TESTL(EPass == TestStepResult());
+
+ TRequestStatus stat;
+ // shutdown client socket - Immediate mode
+ iEsockSuite->GetSocketHandle(iSockIndex2).Shutdown(RSocket::EImmediate, stat);
+ User::WaitForRequest(stat);
+ TESTEL(stat==KErrNone, stat.Int());
+
+ // read on client socket
+ TBuf8<40> rbuf;
+ iEsockSuite->GetSocketHandle(iSockIndex2).Read(rbuf, stat);
+ User::WaitForRequest(stat);
+ TESTEL(stat==KErrBadHandle, stat.Int());
+
+ // write on client
+ iEsockSuite->GetSocketHandle(iSockIndex2).Write(_L8("some data"), stat);
+ User::WaitForRequest(stat);
+ TESTEL(stat==KErrBadHandle, stat.Int());
+
+ // read on server
+ iEsockSuite->GetSocketHandle(iSockIndex3).Read(rbuf, stat);
+ User::WaitForRequest(stat);
+ TESTEL(stat==KErrDisconnected, stat.Int());
+
+ // write on server
+ iEsockSuite->GetSocketHandle(iSockIndex3).Write(_L8("more data"), stat);
+ User::WaitForRequest(stat);
+ TESTEL(stat==KErrDisconnected, stat.Int());
+ return EPass;
+ }
+