datacommsserver/esockserver/test/TE_Socket/SocketTestSection9.cpp
branchRCL_3
changeset 9 77effd21b2c9
parent 0 dfb7c4ff071f
--- a/datacommsserver/esockserver/test/TE_Socket/SocketTestSection9.cpp	Tue Feb 02 00:53:00 2010 +0200
+++ b/datacommsserver/esockserver/test/TE_Socket/SocketTestSection9.cpp	Sat Feb 20 00:01:55 2010 +0200
@@ -601,3 +601,64 @@
     return verdict;
     }
 
+// Test step 9.9
+//
+// Test ESoRecvOneOrMoreNoLength IPC
+//
+const TDesC& CSocketTest9_9::GetTestName()
+    {
+    _LIT(ret,"Test9.9");
+    return ret;
+    }
+
+enum TVerdict CSocketTest9_9::InternalDoTestStepL( void )
+    {
+    TVerdict verdict = EPass;
+    
+    Logger().WriteFormat(_L("Test Purpose: Test RecvOneOrMore (no length) API"));
+    
+    // connect to esock
+    Logger().WriteFormat(_L("Attempting to connect to socket server"));
+    RSocketServ ss;
+    TInt ret = OptimalConnect(ss);
+    CleanupClosePushL(ss);
+    Logger().WriteFormat(_L("Connect returned %S"), &EpocErrorToText(ret));
+    TESTL(KErrNone == ret);
+    
+    RSocket sk;
+    Logger().WriteFormat(_L("Opening a socket on Dummy protocol 2"));
+    ret = sk.Open(ss, _L("Dummy Protocol 2"));
+    CleanupClosePushL(sk);
+    Logger().WriteFormat(_L("Open returned %S"), &EpocErrorToText(ret));
+    TESTL(KErrNone == ret);
+    
+    Logger().WriteFormat(_L("Connecting socket"));
+    TSockAddr addr;
+    TRequestStatus rstat;
+    sk.Connect(addr, rstat);
+    User::WaitForRequest(rstat);
+    Logger().WriteFormat(_L("Connect status %S"), &EpocErrorToText(rstat.Int()));
+    TESTL(KErrNone == rstat.Int());
+    
+    Logger().WriteFormat(_L("Trying RecvOneOrMore (no length)"));
+    TBuf8<10> buf;
+    sk.RecvOneOrMore(buf, 0, rstat);
+    TRequestStatus sstat;
+    _LIT8(KTestString, "Hello");
+    sk.Send(KTestString(), 0, sstat);
+    User::WaitForRequest(rstat);
+    Logger().WriteFormat(_L("RecvOneOrMore status %S"), &EpocErrorToText(rstat.Int()));
+    TESTL(KErrNone == rstat.Int());
+    User::WaitForRequest(sstat);
+    Logger().WriteFormat(_L("Send status %S"), &EpocErrorToText(sstat.Int()));
+    TESTL(KErrNone == sstat.Int());
+    TESTL(buf == KTestString());
+    
+    CleanupStack::Pop(&sk);
+    sk.Close();
+    CleanupStack::Pop(&ss);
+    ss.Close();
+    
+    SetTestStepResult(verdict);
+    return verdict;
+    }