datacommsserver/esockserver/test/TE_ESock/EsockTestSection2.cpp
changeset 0 dfb7c4ff071f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/datacommsserver/esockserver/test/TE_ESock/EsockTestSection2.cpp	Thu Dec 17 09:22:25 2009 +0200
@@ -0,0 +1,281 @@
+// 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 2
+// 
+//
+
+// EPOC includes
+#include <e32base.h>
+#include <in_sock.h>
+
+// Test system includes
+#include "EsockTestSection2.h"
+
+
+// Test step 2.1
+const TDesC& CEsockTest2_1::GetTestName()
+	{
+	// store the name of this test case
+	_LIT(ret,"Test2.1");
+	
+	return ret;
+	}
+
+CEsockTest2_1::~CEsockTest2_1()
+	{
+	}
+
+enum TVerdict CEsockTest2_1::easyTestStepPreambleL()
+	{
+	if (KErrNone != OpenMinSockets(_L("Test_2.1"),KAfInet, KSockStream, KProtocolInetTcp))
+		{
+		return EFail;
+		}
+
+	return EPass;
+	}
+
+enum TVerdict CEsockTest2_1::easyTestStepL()
+	{
+	TESTL(EPass == TestStepResult());
+	TInt nSockets = iEsockSuite->GetSocketListCount();
+	// bind to n sockets on port 0
+	
+	// get ip address
+	TInetAddr addr, addr1;
+	TESTL(GetIpAddressFromConfig(SectionName(_L("Test_2.1")), _L("ipAddress"), addr));
+	
+	// set the port number to 0
+	addr.SetPort(0);
+	
+	// for each open socket
+	TInt nRet;
+	TUint port;
+	for (TInt n = 0; n < nSockets; n++)
+		{
+		// bind the socket
+		nRet = iEsockSuite->GetSocketHandle(n + 1).Bind(addr);
+		TESTEL(nRet == KErrNone, nRet);
+		
+		// get the socket name
+		iEsockSuite->GetSocketHandle(n + 1).LocalName(addr1);
+		
+		// check address has been set correctly
+		TESTL(addr.Match(addr1));
+		
+		// get port number - check it is non-zero
+		port = iEsockSuite->GetSocketHandle(n + 1).LocalPort();
+		TESTL(port > 0);
+		}
+	
+	return EPass;
+	}
+
+
+// Test step 2.2
+const TDesC& CEsockTest2_2::GetTestName()
+	{
+	// store the name of this test case
+	_LIT(ret,"Test2.2");
+	
+	return ret;
+	}
+
+CEsockTest2_2::~CEsockTest2_2()
+	{
+	}
+
+enum TVerdict CEsockTest2_2::easyTestStepPreambleL()
+	{
+	if (KErrNone != OpenMinSockets(_L("Test_2.2"),KAfInet, KSockStream, KProtocolInetTcp))
+		{
+		return EFail;
+		}
+
+	return EPass;
+	}
+
+enum TVerdict CEsockTest2_2::easyTestStepL()
+	{
+	TESTL(EPass == TestStepResult());
+	// bind to an illegal port number
+	
+	// get IP address
+	TInetAddr addr;
+	TESTL(GetIpAddressFromConfig(SectionName(_L("Test_2.2")), _L("ipAddress"), addr));
+	
+	// set port number to invalid value
+	addr.SetPort(65537);
+	
+	// socket already opened - retrieve
+	// socket handle and bind
+	TInt nRet = iEsockSuite->GetSocketHandle(1).Bind(addr);
+	
+	TESTEL(nRet == KErrTooBig, nRet);
+	
+	return EPass;
+	}
+
+
+// Test step 2.3
+const TDesC& CEsockTest2_3::GetTestName()
+	{
+	// store the name of this test case
+	_LIT(ret,"Test2.3");
+	
+	return ret;
+	
+	}
+
+CEsockTest2_3::~CEsockTest2_3()
+	{
+	}
+
+enum TVerdict CEsockTest2_3::easyTestStepPreambleL()
+	{
+	if (KErrNone != OpenMinSockets(_L("Test_2.3"),KAfInet, KSockStream, KProtocolInetTcp))
+		{
+		return EFail;
+		}
+
+	return EPass;
+	}
+
+enum TVerdict CEsockTest2_3::easyTestStepL()
+	{
+	TESTL(EPass == TestStepResult());
+	// bind to an illegal address
+	
+	// get IP address
+	TInetAddr addr;
+	TESTL(GetIpAddressFromConfig(SectionName(_L("Test_2.3")), _L("ipAddress"), addr));
+	
+	// set port number to a valid value
+	addr.SetPort(7);
+	
+	// socket already opened - retrieve
+	// socket handle and bind
+	TInt nRet = iEsockSuite->GetSocketHandle(1).Bind(addr);
+	
+	TESTEL(nRet == KErrNotFound, nRet);
+	
+	return EPass;
+	}
+
+
+// Test step 2.4
+const TDesC& CEsockTest2_4::GetTestName()
+	{
+	// store the name of this test case
+	_LIT(ret,"Test2.4");
+	
+	return ret;
+	}
+
+CEsockTest2_4::~CEsockTest2_4()
+	{
+	}
+
+enum TVerdict CEsockTest2_4::easyTestStepPreambleL()
+	{
+	if (KErrNone != OpenMinSockets(_L("Test_2.4"),KAfInet, KSockStream, KProtocolInetTcp, 2))
+		{
+		return EFail;
+		}
+
+	return EPass;
+	}
+
+enum TVerdict CEsockTest2_4::easyTestStepL()
+	{
+	TESTL(EPass == TestStepResult());
+	// double bind on different sockets
+	
+	// get IP address
+	TInetAddr addr;
+	TESTL(GetIpAddressFromConfig(SectionName(_L("Test_2.4")), _L("ipAddress"), addr));
+	
+	// set port number to a valid value
+	addr.SetPort(9);
+	
+	// socket already opened - retrieve
+	// socket handle and bind
+	TInt nRet = iEsockSuite->GetSocketHandle(1).Bind(addr);
+	
+	// bind should succeed
+	TESTEL(nRet == KErrNone, nRet);
+	
+	// socket already opened - retrieve
+	// socket handle and bind again to same address
+	nRet = iEsockSuite->GetSocketHandle(2).Bind(addr);
+	
+	// second bind should fail
+	TESTEL(nRet == KErrInUse, nRet);
+	
+	return EPass;
+	}
+
+
+// Test step 2.5
+const TDesC& CEsockTest2_5::GetTestName()
+	{
+	// store the name of this test case
+	_LIT(ret,"Test2.5");
+	
+	return ret;
+	}
+
+CEsockTest2_5::~CEsockTest2_5()
+	{
+	}
+
+enum TVerdict CEsockTest2_5::easyTestStepPreambleL()
+	{
+	if (KErrNone != OpenMinSockets(_L("Test_2.5"),KAfInet, KSockStream, KProtocolInetTcp))
+		{
+		return EFail;
+		}
+
+	return EPass;
+	}
+
+enum TVerdict CEsockTest2_5::easyTestStepL()
+	{
+	TESTL(EPass == TestStepResult());
+	
+	// get port numbers
+	TInt port1, port2;
+	TESTL(GetIntFromConfig(SectionName(_L("Test_2.5")), _L("port1"), port1));
+	TESTL(GetIntFromConfig(SectionName(_L("Test_2.5")), _L("port2"), port2));
+	
+	// set the local port number to port1
+	TInt nRet = iEsockSuite->GetSocketHandle(1).SetLocalPort(port1);
+	TESTEL(nRet == KErrNone, nRet);
+	
+	// check port has been set correctly
+	TUint port = iEsockSuite->GetSocketHandle(1).LocalPort();
+	TESTL(port == (TUint)port1);
+	
+	// set the local port number to port2
+	// check that this is not successful
+	nRet = iEsockSuite->GetSocketHandle(1).SetLocalPort(port2);
+	TESTEL(nRet == KErrAlreadyExists, nRet);
+	
+	// check port has not been changed
+	port = iEsockSuite->GetSocketHandle(1).LocalPort();
+	TESTL(port == (TUint)port1);
+	
+	return EPass;
+	}
+