diff -r 000000000000 -r dfb7c4ff071f datacommsserver/esockserver/test/TE_ESock/EsockTestSection1.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/datacommsserver/esockserver/test/TE_ESock/EsockTestSection1.cpp Thu Dec 17 09:22:25 2009 +0200 @@ -0,0 +1,619 @@ +// 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 1 +// +// + +// EPOC includes +#include +#include + +// Test system includes +#include "EsockTestSection1.h" + + +// Test step 1.1 +const TDesC& CEsockTest1_1::GetTestName() + { + // store the name of this test case + _LIT(ret,"Test1.1"); + return ret; + } + +CEsockTest1_1::~CEsockTest1_1() + { + } + +enum TVerdict CEsockTest1_1::easyTestStepL() + { + // get number of sockets from script + TInt nSockets; // number of sockets to open + TESTL(GetIntFromConfig(SectionName(_L("Test_1.1")), _L("numSockets"), nSockets)); + + Logger().WriteFormat(_L("Open %d blank socket(s)"), nSockets); + + TInt ret = OpenSockets(nSockets); + TESTEL(KErrNone == ret, ret); + + return EPass; + } + + +// Test step 1.2 +const TDesC& CEsockTest1_2::GetTestName() + { + // store the name of this test case + _LIT(ret,"Test1.2"); + + return ret; + } + +CEsockTest1_2::~CEsockTest1_2() + { + } + +enum TVerdict CEsockTest1_2::easyTestStepL() + { + // get number of sockets from script + TInt nSockets; // number of sockets to open + TESTL(GetIntFromConfig(SectionName(_L("Test_1.2")), _L("numSockets"), nSockets)); + + Logger().WriteFormat(_L("Open %d TCP socket(s)"), nSockets); + TInt ret = OpenSockets(KAfInet, KSockStream, KProtocolInetTcp, nSockets); + TESTEL(KErrNone == ret, ret); + + TInetAddr addr; + TBuf<32> buf; + for (TInt i = 0; i < nSockets; i++) + { + // Get local address of the socket (Empty) + (iEsockSuite->GetSocketHandle(i + 1)).LocalName(addr); + + // Check length of buffer, should be set to (Zero) + addr.OutputWithScope(buf); + TESTL(buf.Length() == 0); + } + + return EPass; + } + + +// Test step 1.3 +const TDesC& CEsockTest1_3::GetTestName() + { + // store the name of this test case + _LIT(ret,"Test1.3"); + + return ret; + } + +CEsockTest1_3::~CEsockTest1_3() + { + } + +enum TVerdict CEsockTest1_3::easyTestStepL() + { + // get number of sockets from script + TInt nSockets; // number of sockets to open + TESTL(GetIntFromConfig(SectionName(_L("Test_1.3")), _L("numSockets"), nSockets)); + + Logger().WriteFormat(_L("Open %d UDP socket(s)"), nSockets); + TInt ret = OpenSockets(KAfInet, KSockDatagram, KProtocolInetUdp, nSockets); + TESTEL(KErrNone == ret, ret); + + TInetAddr addr; + TBuf<39> buf; + for (TInt i = 0; i < nSockets; i++) + { + // Get local address of the socket (Empty) + (iEsockSuite->GetSocketHandle(i + 1)).LocalName(addr); + + // Check length of buffer, should be set to (Zero) + addr.OutputWithScope(buf); + TESTL(buf.Length() == 0); + } + + return EPass; + } + + +// Test step 1.4 +const TDesC& CEsockTest1_4::GetTestName() + { + // store the name of this test case + _LIT(ret,"Test1.4"); + + return ret; + } + +CEsockTest1_4::~CEsockTest1_4() + { + } + +enum TVerdict CEsockTest1_4::easyTestStepL() + { + // Open n ICMP sockets + + // get number of sockets from script + TInt nSockets; // number of sockets to open + TESTL(GetIntFromConfig(SectionName(_L("Test_1.4")), _L("numSockets"), nSockets)); + + Logger().WriteFormat(_L("Open %d ICMP socket(s)"), nSockets); + TInt ret = OpenSockets(KAfInet, KSockDatagram, KProtocolInetIcmp, nSockets); + TESTEL(KErrNone == ret, ret); + + TInetAddr addr; + TBuf<32> buf; + for (TInt i = 0; i < nSockets; i++) + { + // Get local address of the socket (Empty) + iEsockSuite->GetSocketHandle(i + 1).LocalName(addr); + + // Check length of buffer, should be set to (Zero) + addr.OutputWithScope(buf); + TESTL(buf.Length() == KErrNone); + } + + return EPass; + } + + +// Test step 1.5 +const TDesC& CEsockTest1_5::GetTestName() + { + // store the name of this test case + _LIT(ret,"Test1.5"); + + return ret; + } + +CEsockTest1_5::~CEsockTest1_5() + { + } + +enum TVerdict CEsockTest1_5::easyTestStepL() + { + // Open n IP sockets + + // get number of sockets from script + TInt nSockets; // number of sockets to open + TESTL(GetIntFromConfig(SectionName(_L("Test_1.5")), _L("numSockets"), nSockets)); + + Logger().WriteFormat(_L("Open %d IP socket(s)"), nSockets); + TInt ret = OpenSockets(KAfInet, KSockDatagram, KProtocolInetIp, nSockets); + TESTEL(KErrNone == ret, ret); + + TInetAddr addr; + TBuf<32> buf; + for (TInt i = 0; i < nSockets; i++) + { + // Get local address of the socket (Empty) + iEsockSuite->GetSocketHandle(i + 1).LocalName(addr); + + // Check length of buffer, should be set to (Zero) + addr.OutputWithScope(buf); + TESTL(buf.Length() == KErrNone); + } + + return EPass; + } + + +// Test step 1.6 +const TDesC& CEsockTest1_6::GetTestName() + { + // store the name of this test case + _LIT(ret,"Test1.6"); + + return ret; + } + +CEsockTest1_6::~CEsockTest1_6() + { + } + +enum TVerdict CEsockTest1_6::easyTestStepL() + { + // get number of sockets from script + TInt nSockets; // number of sockets to open + TESTL(GetIntFromConfig(SectionName(_L("Test_1.6")), _L("numSockets"), nSockets)); + + Logger().WriteFormat(_L("Open %d TCP socket(s) by name"), nSockets); + TInt ret = OpenSockets(_L("tcp"), nSockets); + TESTEL(KErrNone == ret, ret); + + TInetAddr addr; + TBuf<32> buf; + for (TInt i = 0; i < nSockets; i++) + { + // Get local address of the socket (Empty) + iEsockSuite->GetSocketHandle(i + 1).LocalName(addr); + + // Check length of buffer, should be set to (Zero) + addr.OutputWithScope(buf); + TESTL(buf.Length() == KErrNone); + } + + return EPass; + } + + +// Test step 1.7 +const TDesC& CEsockTest1_7::GetTestName() + { + // store the name of this test case + _LIT(ret,"Test1.7"); + + return ret; + } + +CEsockTest1_7::~CEsockTest1_7() + { + } + +enum TVerdict CEsockTest1_7::easyTestStepL() + { + // get number of sockets from script + TInt nSockets; // number of sockets to open + TESTL(GetIntFromConfig(SectionName(_L("Test_1.7")), _L("numSockets"), nSockets)); + + Logger().WriteFormat(_L("Open %d UDP socket(s) by name"), nSockets); + TInt ret = OpenSockets(_L("udp"), nSockets); + TESTEL(KErrNone == ret, ret); + + TInetAddr addr; + TBuf<32> buf; + for (TInt i = 0; i < nSockets; i++) + { + // Get local address of the socket (Empty) + iEsockSuite->GetSocketHandle(i + 1).LocalName(addr); + + // Check length of buffer, should be set to (Zero) + addr.OutputWithScope(buf); + TESTL(buf.Length() == KErrNone); + } + + return EPass; + } + + +// Test step 1.8 +const TDesC& CEsockTest1_8::GetTestName() + { + // store the name of this test case + _LIT(ret,"Test1.8"); + + return ret; + } + +CEsockTest1_8::~CEsockTest1_8() + { + } + +enum TVerdict CEsockTest1_8::easyTestStepL() + { + // get number of sockets from script + TInt nSockets; // number of sockets to open + TESTL(GetIntFromConfig(SectionName(_L("Test_1.8")), _L("numSockets"), nSockets)); + + Logger().WriteFormat(_L("Open %d ICMP socket(s) by name"), nSockets); + TInt ret = OpenSockets(_L("icmp"), nSockets); + TESTEL(KErrNone == ret, ret); + + TInetAddr addr; + TBuf<32> buf; + for (TInt i = 0; i < nSockets; i++) + { + // Get local address of the socket (Empty) + iEsockSuite->GetSocketHandle(i + 1).LocalName(addr); + + // Check length of buffer, should be set to (Zero) + addr.OutputWithScope(buf); + TESTL(buf.Length() == 0); + } + + return EPass; + } + + +// Test step 1.9 +const TDesC& CEsockTest1_9::GetTestName() + { + // store the name of this test case + _LIT(ret,"Test1.9"); + + return ret; + } + +CEsockTest1_9::~CEsockTest1_9() + { + } + +enum TVerdict CEsockTest1_9::easyTestStepL() + { + // get number of sockets from script + TInt nSockets; // number of sockets to open + TESTL(GetIntFromConfig(SectionName(_L("Test_1.9")), _L("numSockets"), nSockets)); + + Logger().WriteFormat(_L("Open %d IP sockets by name"), nSockets); + TInt ret = OpenSockets(_L("ip"), nSockets); + TESTEL(KErrNone == ret, ret); + + TInetAddr addr; + TBuf<32> buf; + for (TInt i = 0; i < nSockets; i++) + { + // Get local address of the socket (Empty) + iEsockSuite->GetSocketHandle(i + 1).LocalName(addr); + + // Check length of buffer, should be set to (Zero) + addr.OutputWithScope(buf); + TESTL(buf.Length() == KErrNone); + } + + return EPass; + } + + +// Test step 1.10 +const TDesC& CEsockTest1_10::GetTestName() + { + // store the name of this test case + _LIT(ret,"Test1.10"); + + return ret; + } + +CEsockTest1_10::~CEsockTest1_10() + { + } + +enum TVerdict CEsockTest1_10::easyTestStepL() + { + // Open a TCP socket with invalid socket type + Logger().WriteFormat(_L("Open socket, of invalid type, for TCP")); + RSocket sock; + CleanupClosePushL(sock); + TInt ret = sock.Open(iEsockSuite->iSocketServer, KAfInet, 0, KProtocolInetTcp); + TESTEL(ret==KErrBadName, ret); + + // Open a UDP socket with invalid socket type + Logger().WriteFormat(_L("Open socket, of invalid type, for UDP")); + RSocket sock2; + CleanupClosePushL(sock2); + ret = sock2.Open(iEsockSuite->iSocketServer, KAfInet, 12, KProtocolInetUdp); + TESTEL(ret==KErrBadName, ret); + + CleanupStack::PopAndDestroy(2, &sock); + return EPass; + } + + +// Test step 1.11 +const TDesC& CEsockTest1_11::GetTestName() + { + // store the name of this test case + _LIT(ret,"Test1.11"); + + return ret; + } + +CEsockTest1_11::~CEsockTest1_11() + { + } + +enum TVerdict CEsockTest1_11::easyTestStepL() + { + // open sockets with an invalid protocol + + // get protocol id's from script + TInt protocol1, protocol2; + TESTL(GetIntFromConfig(SectionName(_L("Test_1.11")), _L("protocolId1"), protocol1)); + TESTL(GetIntFromConfig(SectionName(_L("Test_1.11")), _L("protocolId2"), protocol2)); + + Logger().WriteFormat(_L("Open stream socket for invalid protocol")); + RSocket sock; + CleanupClosePushL(sock); + TInt ret = sock.Open(iEsockSuite->iSocketServer, KAfInet, KSockStream, protocol1); + TESTEL(ret==KErrBadName, ret); + + Logger().WriteFormat(_L("Open datagram socket for invalid protocol")); + RSocket sock2; + CleanupClosePushL(sock2); + ret = sock2.Open(iEsockSuite->iSocketServer, KAfInet, KSockDatagram, protocol2); + TESTEL(ret==KErrBadName, ret); + + CleanupStack::PopAndDestroy(2, &sock); + return EPass; + } + + +// Test step 1.12 +const TDesC& CEsockTest1_12::GetTestName() + { + // store the name of this test case + _LIT(ret,"Test1.12"); + + return ret; + } + +CEsockTest1_12::~CEsockTest1_12() + { + } + +enum TVerdict CEsockTest1_12::easyTestStepL() + { + Logger().WriteFormat(_L("Open stream socket for UDP")); + + RSocket sock; + CleanupClosePushL(sock); + TInt ret = sock.Open(iEsockSuite->iSocketServer, KAfInet, KSockStream, KProtocolInetUdp); + TESTEL(ret==KErrBadName, ret); + + CleanupStack::PopAndDestroy(); + return EPass; + } + + +// Test step 1.13 +const TDesC& CEsockTest1_13::GetTestName() + { + // store the name of this test case + _LIT(ret,"Test1.13"); + + return ret; + } + +CEsockTest1_13::~CEsockTest1_13() + { + } + +enum TVerdict CEsockTest1_13::easyTestStepL() + { + Logger().WriteFormat(_L("Open datagram socket for TCP")); + + RSocket sock; + CleanupClosePushL(sock); + TInt ret = sock.Open(iEsockSuite->iSocketServer, KAfInet, KSockDatagram, KProtocolInetTcp); + TESTEL(ret==KErrBadName, ret); + + CleanupStack::PopAndDestroy(); + return EPass; + } + + +// Test step 1.14 +const TDesC& CEsockTest1_14::GetTestName() + { + // store the name of this test case + _LIT(ret,"Test1.14"); + + return ret; + } + +CEsockTest1_14::~CEsockTest1_14() + { + } + +enum TVerdict CEsockTest1_14::easyTestStepL() + { + Logger().WriteFormat(_L("Open socket for invalid protocol by name")); + + RSocket sock; + CleanupClosePushL(sock); + TInt ret =sock.Open(iEsockSuite->iSocketServer, _L("abc")); + TESTEL(ret==KErrNotFound, ret); + + CleanupStack::PopAndDestroy(); + return EPass; + } + + +// Test step 1.15 +const TDesC& CEsockTest1_15::GetTestName() + { + // store the name of this test case + _LIT(ret,"Test1.15"); + + return ret; + } + +CEsockTest1_15::~CEsockTest1_15() + { + } + +enum TVerdict CEsockTest1_15::easyTestStepL() + { + CloseSockets(2); + return EPass; + } + +// Test step 1.16 +const TDesC& CEsockTest1_16::GetTestName() + { + // store the name of this test case + _LIT(ret,"Test1.16"); + + return ret; + } + +CEsockTest1_16::~CEsockTest1_16() + { + } + +enum TVerdict CEsockTest1_16::easyTestStepPreambleL() + { + TInt ret = OpenSockets(KAfInet, KSockDatagram, KProtocolInetUdp); + Logger().WriteFormat(_L("Open a UDP socket, returned %d"), ret); + if (KErrNone != ret) + { + return EFail; + } + return EPass; + } + +enum TVerdict CEsockTest1_16::easyTestStepL() + { + TESTL(EPass == TestStepResult()); + + if (iEsockSuite->GetSocketListCount() < 1) + { + return EInconclusive; + } + + const TInt KBufferLength = 10; + TBuf8 buffer; + buffer.SetMax(); + buffer.FillZ(); + + TInetAddr destAddr; + TRequestStatus status; + + Logger().WriteFormat(_L("Issuing 'SendTo' with invalid destination...")); + iEsockSuite->GetSocketHandle(1).SendTo(buffer, destAddr, 0, status); + User::WaitForRequest(status); + Logger().WriteFormat(_L("...which returned %d\n"), status.Int()); // Should return '-2' + TESTEL(status == KErrGeneral, EFail); + + // Test 1.15 Close socket + + return EPass; + } + +// Test step 1.17 +// Open a socket using the RawIp protocol +const TDesC& CEsockTest1_17::GetTestName() + { + // store the name of this test case + _LIT(ret, "Test1.17"); + + return ret; + } + +CEsockTest1_17::~CEsockTest1_17() + { + } + +enum TVerdict CEsockTest1_17::easyTestStepL() + { + Logger().WriteFormat(_L("Open a RawIP socket")); + + _LIT(KRawIp, "rawip"); + TInt ret = OpenSockets(KRawIp); + TESTEL(ret == KErrNone, ret); + + return EPass; + } + +