datacommsserver/esockserver/test/util/src/ts_esockutilsteps.cpp
changeset 0 dfb7c4ff071f
child 13 0b0e9fce0b58
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/datacommsserver/esockserver/test/util/src/ts_esockutilsteps.cpp	Thu Dec 17 09:22:25 2009 +0200
@@ -0,0 +1,226 @@
+// Copyright (c) 2003-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:
+//
+
+// EPOC includes
+#include <e32base.h>
+
+// Test system includes
+#include <networking/log.h>
+#include <networking/testsuite.h>
+
+// Test includes
+#include "ts_esockutilsteps.h"
+#include "esockloader.h"
+#include "esocktestutils.h"
+
+class TTruncateOverflow16 : public TDes16Overflow
+	{
+public:
+	virtual void Overflow(TDes16&)
+		{
+		}
+	};
+
+class TTruncateOverflow8 : public TDes8Overflow
+	{
+public:
+	virtual void Overflow(TDes8&)
+		{
+		}
+	};
+
+void CTestStepESockUtil::Log(TRefByValue<const TDesC16> aFormat, ...)
+	{
+    VA_LIST vaList;
+	VA_START( vaList, aFormat );
+
+	TTruncateOverflow16 truncateOverflow;
+	TBuf<512> buf;
+	buf.AppendFormatList( aFormat, vaList, &truncateOverflow );
+
+	// write to the console
+	CTestStep::Log(_L("%S"), &buf);
+	}
+
+void CTestStepESockUtil::Log(TRefByValue<const TDesC8> aFormat, ...)
+	{
+    VA_LIST vaList;
+	VA_START( vaList, aFormat );
+
+	TTruncateOverflow8 truncateOverflow;
+	TBuf8<512> buf;
+	buf.AppendFormatList( aFormat, vaList, &truncateOverflow );
+	TBuf<512> dispBuf;
+	dispBuf.Copy(buf);
+
+	// write to the console
+	CTestStep::Log(_L("%S"), &dispBuf);
+	}
+
+CTestStepLoadESock::CTestStepLoadESock()
+	{
+	iTestStepName = _L("ESockUtilLoadESock");
+	}
+
+enum TVerdict CTestStepLoadESock::doTestStepL(void)
+	{
+	TVerdict verdict = EPass;
+
+	TInt err(ESockLoader::LoadESock(this));
+	if(err!=KErrNone)
+		{
+		verdict = EFail;
+		Log(_L("LoadESock returned error %d"), err);
+		}
+	return verdict;
+	}
+
+CTestStepUnloadESock::CTestStepUnloadESock()
+	{
+	iTestStepName = _L("ESockUtilUnloadESock");
+	}
+
+enum TVerdict CTestStepUnloadESock::doTestStepL(void)
+	{
+	TVerdict verdict = EPass;
+
+	TInt err(ESockLoader::UnloadESock(EGraceful, this));
+	if(err!=KErrNone)
+		{
+		verdict = EFail;
+		Log(_L("UnloadESock returned error %d"), err);
+		}
+	return verdict;
+	}
+	
+CTestStepUnloadESockBase::CTestStepUnloadESockBase(TLeak aLeak) :
+	iLeak(aLeak)
+	{
+	}
+
+enum TVerdict CTestStepUnloadESockBase::doTestStepL(void)
+	{
+	TVerdict verdict = EPass;
+
+	TInt err(ESockLoader::UnloadESock(EImmediate, this));
+
+	verdict = EFail;
+	switch (err)
+		{
+		case KErrNone:
+			{
+			if (iLeak == ELeaks)
+				{
+				INFO_PRINTF1(_L("We were expecting a leak and non occurred : check that the leak-detecion machnism is working."));
+				verdict = EFail;	
+				}
+			else
+				{
+				verdict = EPass;	
+				}
+			break;
+			}
+		case KErrSessionClosed:
+			{
+			INFO_PRINTF2(_L("UnloadESock returned %d. ESock had still had unclosed sessions when exiting."), err);
+			break;
+			}
+		case ESockLoader::KModuleLeaked:
+			{
+			INFO_PRINTF1(_L("A memory leak was detected on shutdown."));
+			INFO_PRINTF1(_L("Expect leaks if a panic occurred - Check the epocwind.out."));
+			if (iLeak == EMayLeak || iLeak == ELeaks)
+				{
+				verdict = EPass;
+				}
+#ifdef ALWAYS_PASS_UNLOAD
+			verdict = EPass;
+#endif
+			break;		
+			}
+		default:
+			{
+			INFO_PRINTF2(_L("UnloadESock returned error %d"), err);
+			}
+		}
+	return verdict;
+	}
+
+CTestStepUnloadESockForced::CTestStepUnloadESockForced() :
+	CTestStepUnloadESockBase(CTestStepUnloadESockBase::ENoLeak)
+	{
+	iTestStepName = _L("ESockUtilUnloadESockForced");
+	}
+
+	
+CTestStepUnloadESockMayLeak::CTestStepUnloadESockMayLeak() :
+	CTestStepUnloadESockBase(CTestStepUnloadESockBase::EMayLeak)
+	{
+	iTestStepName = _L("ESockUtilUnloadESock_MayLeak");
+	}
+	
+CTestStepUnloadESockLeaks::CTestStepUnloadESockLeaks() :
+	CTestStepUnloadESockBase(CTestStepUnloadESockBase::ELeaks)
+	{
+	iTestStepName = _L("ESockUtilUnloadESock_Leaks");
+	}
+
+
+
+
+
+CTestStepStopAllInterfaces::CTestStepStopAllInterfaces()
+	{
+	iTestStepName = _L("StopAllInterfaces");
+	}
+
+enum TVerdict CTestStepStopAllInterfaces::doTestStepL(void)
+	{
+	TVerdict verdict = EPass;
+
+	TBuf<1000> errDesc;
+	TInt err(ESockTestUtils::StopAllInterfaces(errDesc));
+	if(err!=KErrNone)
+		{
+		verdict = EFail;
+		Log(_L("StopAllInterfaces returned error %d:\n%S"), err, &errDesc);
+		}
+	return verdict;
+	}
+	
+CTestStepDefaultToConfig1::CTestStepDefaultToConfig1()
+	{
+	iTestStepName = _L("DefaultToConfig1");
+	}
+
+enum TVerdict CTestStepDefaultToConfig1::doTestStepL(void)
+	{
+	ESockTestUtils::DefaultToConfig1L();
+	return EPass;
+	}
+	
+CTestStepAlwaysFail::CTestStepAlwaysFail()
+	{
+	iTestStepName = _L("AlwaysFail");
+	}
+
+enum TVerdict CTestStepAlwaysFail::doTestStepL(void)
+	{
+	return EFail;
+	}
+
+
+
+