diff -r 000000000000 -r c6b0df440bee dbgsrv/coredumpserver/plugins/writers/file/test/filewriterteststeps.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dbgsrv/coredumpserver/plugins/writers/file/test/filewriterteststeps.cpp Tue Mar 02 10:33:16 2010 +0530 @@ -0,0 +1,410 @@ +// Copyright (c) 2007-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: +// Example CTestStep derived implementation +// + + + +/** + @file filewriterteststeps.cpp +*/ + +#include "filewriterteststeps.h" +#include + +TInt getFileWriter(CTestStep* logger, CCrashDataSave **dataSave) +{ + TUid dataSaveUid = { 0x102831e4 }; + TRAPD(err, *dataSave = CCrashDataSave::NewL(dataSaveUid)); + switch(err) + { + case KErrNoMemory: + logger->Logger().LogExtra(((TText8*)__FILE__), __LINE__, ESevrErr, (_L("KErrNoMemory\n"))); + RDebug::Print(_L("KErrNoMemory\n")); + break; + + case KErrNotFound: + logger->Logger().LogExtra(((TText8*)__FILE__), __LINE__, ESevrErr, (_L("KErrNotFound\n"))); + RDebug::Print(_L("KErrNotFound\n")); + break; + + case KErrArgument: + logger->Logger().LogExtra(((TText8*)__FILE__), __LINE__, ESevrErr, (_L("KErrArgument\n"))); + RDebug::Print(_L("KErrArgument\n")); + break; + + case KErrPermissionDenied: + logger->Logger().LogExtra(((TText8*)__FILE__), __LINE__, ESevrErr, (_L("KErrPermissionDenied\n"))); + RDebug::Print(_L("KErrPermissionDenied\n")); + break; + } + + return err; +} + +CFileWriterTestStep1::~CFileWriterTestStep1() +/** + * Destructor + */ + { + } + +CFileWriterTestStep1::CFileWriterTestStep1() +/** + * Constructor + */ + { + // Call base class method to set up the human readable name for logging + SetTestStepName(KFileWriterTestStep1); + SetTestStepResult(EPass); + } + +TVerdict CFileWriterTestStep1::doTestStepPreambleL() +/** + * @return - TVerdict code + * Override of base class virtual + */ + { + return TestStepResult(); + } + +TVerdict CFileWriterTestStep1::doTestStepL() +/** + * @return - TVerdict code + * Override of base class pure virtual + */ + { + /* + INFO_PRINTF1(_L("Testing GetFormattingPromptL")); + RBuf format; + CleanupClosePushL(format); + + format.Create(255); + + CCrashDataSave *writer = 0; + testBooleanTrueL(getFileWriter(this, &writer) == KErrNone, (TText8*)__FILE__, __LINE__); + CleanupStack::PushL(writer); + INFO_PRINTF1(_L("File writer created")); + + TRAPD(err, writer->GetFormattingPromptL(format)); + + testBooleanTrue(err == KErrNone, (TText8*)__FILE__, __LINE__); + + INFO_PRINTF1(_L("Got the format from GetFormattingPromptL")); + INFO_PRINTF2(_L("The format is: %S"), &format); + + _LIT(KPluginDescription, "Symbian Elf Core Dump Writer"); + testBooleanTrue(format == KPluginDescription, (TText8*)__FILE__, __LINE__); + + CleanupStack::PopAndDestroy(writer); + INFO_PRINTF1(_L("File writer destroyed and popped")); + + CleanupStack::PopAndDestroy(); + + */ + return TestStepResult(); + } + +TVerdict CFileWriterTestStep1::doTestStepPostambleL() +/** + * @return - TVerdict code + * Override of base class virtual + */ + { + return TestStepResult(); + } + +// + +CFileWriterTestStep2::~CFileWriterTestStep2() +/** + * Destructor + */ + { + } +CFileWriterTestStep2::CFileWriterTestStep2() +/** + * Constructor + */ + { + // Call base class method to set up the human readable name for logging + SetTestStepName(KFileWriterTestStep2); + SetTestStepResult(EPass); + } + +TVerdict CFileWriterTestStep2::doTestStepPreambleL() +/** + * @return - TVerdict code + * Override of base class virtual + */ + { + return TestStepResult(); + } + +TVerdict CFileWriterTestStep2::doTestStepL() +/** + * @return - TVerdict code + * Override of base class pure virtual + */ + { + /* + INFO_PRINTF1(_L("Testing FormatL")); + + CCrashDataSave *writer = 0; + testBooleanTrueL(getFileWriter(this, &writer) == KErrNone, (TText8*)__FILE__, __LINE__); + CleanupStack::PushL(writer); + INFO_PRINTF1(_L("File writer created")); + + _LIT(KNewFormat, "New format"); + + TRAPD(err, writer->FormatL(KNewFormat)); + INFO_PRINTF1(_L("Set new format")); + testBooleanTrue(err == KErrNone, (TText8*)__FILE__, __LINE__); + + RBuf format; + format.Create(255); + CleanupClosePushL(format); + + TRAP(err, writer->GetFormattingPromptL(format)); + testBooleanTrue(err == KErrNone, (TText8*)__FILE__, __LINE__); + testBooleanTrue(format.Compare(KNewFormat) == 0, (TText8*)__FILE__, __LINE__); + + CleanupStack::PopAndDestroy(); + CleanupStack::PopAndDestroy(writer); + + */ + return TestStepResult(); + } + +TVerdict CFileWriterTestStep2::doTestStepPostambleL() +/** + * @return - TVerdict code + * Override of base class virtual + */ + { + return TestStepResult(); + } +// + +CFileWriterTestStep3::~CFileWriterTestStep3() +/** + * Destructor + */ + { + } + +CFileWriterTestStep3::CFileWriterTestStep3() +/** + * Constructor + */ + { + // Call base class method to set up the human readable name for logging + SetTestStepName(KFileWriterTestStep3); + SetTestStepResult(EPass); + } + +TVerdict CFileWriterTestStep3::doTestStepPreambleL() +/** + * @return - TVerdict code + * Override of base class virtual + */ + { + return TestStepResult(); + } + +TVerdict CFileWriterTestStep3::doTestStepL() +/** + * @return - TVerdict code + * Override of base class pure virtual + */ + { + INFO_PRINTF1(_L("Testing OpenL")); + CCrashDataSave *writer = 0; + testBooleanTrueL(getFileWriter(this, &writer) == KErrNone, (TText8*)__FILE__, __LINE__); + CleanupStack::PushL(writer); + INFO_PRINTF1(_L("File writer created")); + + TRAPD(err, writer->OpenL(_L("c:\\dumpfiles\\file1"))); + INFO_PRINTF2(_L("Opened file c:\\dumpfiles\\file1 and the error code back was (should be 0): %d"), err); + testBooleanTrue(err == KErrNone, (TText8*)__FILE__, __LINE__); + TRAP(err, writer->CloseL()); + + User::After(500000); + INFO_PRINTF1(_L("Create 10 more files")); + + for (TInt i = 0; i < 10; i++) + { + TBuf<255> filename; + filename.Format(_L("C:\\dumpfiles\\file%d"), i); + TRAP(err, writer->OpenL(filename)); + testBooleanTrue(err == KErrNone, (TText8*)__FILE__, __LINE__); + INFO_PRINTF2(_L("Opened file %d"), i ); + + TRAP(err, writer->CloseL() ); + testBooleanTrue(err == KErrNone, (TText8*)__FILE__, __LINE__); + INFO_PRINTF2(_L("Closed file %d"), i); + } + + CleanupStack::PopAndDestroy(writer); + return TestStepResult(); + } + +TVerdict CFileWriterTestStep3::doTestStepPostambleL() +/** + * @return - TVerdict code + * Override of base class virtual + */ + { + return TestStepResult(); + } + + +CFileWriterTestStep4::~CFileWriterTestStep4() +/** + * Destructor + */ + { + } + +CFileWriterTestStep4::CFileWriterTestStep4() +/** + * Constructor + */ + { + // Call base class method to set up the human readable name for logging + SetTestStepName(KFileWriterTestStep4); + } + +TVerdict CFileWriterTestStep4::doTestStepPreambleL() +/** + * @return - TVerdict code + * Override of base class virtual + */ + { + return TestStepResult(); + } + +TVerdict CFileWriterTestStep4::doTestStepL() +/** + * @return - TVerdict code + * Override of base class pure virtual + */ + { + INFO_PRINTF1(_L("Testing CloseL")); + CCrashDataSave *writer = 0; + testBooleanTrueL(getFileWriter(this, &writer) == KErrNone, (TText8*)__FILE__, __LINE__); + CleanupStack::PushL(writer); + INFO_PRINTF1(_L("File writer created")); + + + TRAPD(err, writer->OpenL(_L("c:\\dumpfiles\\file1"))); + INFO_PRINTF2(_L("Opened file file 1 and the error code back was (should be 0): %d"), err); + testBooleanTrue(err == KErrNone, (TText8*)__FILE__, __LINE__); + + + TRAP(err, writer->CloseL()); + testBooleanTrue(err == KErrNone, (TText8*)__FILE__, __LINE__); + INFO_PRINTF1(_L("Closed file")); + + CleanupStack::PopAndDestroy(writer); + return TestStepResult(); + } + +TVerdict CFileWriterTestStep4::doTestStepPostambleL() +/** + * @return - TVerdict code + * Override of base class virtual + */ + { + return TestStepResult(); + } + + +CFileWriterTestStep5::~CFileWriterTestStep5() +/** + * Destructor + */ + { + } + +CFileWriterTestStep5::CFileWriterTestStep5() +/** + * Constructor + */ + { + // Call base class method to set up the human readable name for logging + SetTestStepName(KFileWriterTestStep5); + } + +TVerdict CFileWriterTestStep5::doTestStepPreambleL() +/** + * @return - TVerdict code + * Override of base class virtual + */ + { + return TestStepResult(); + } + +TVerdict CFileWriterTestStep5::doTestStepL() +/** + * @return - TVerdict code + * Override of base class pure virtual + */ + { + INFO_PRINTF1(_L("Testing WriteL")); + CCrashDataSave *writer = 0; + testBooleanTrueL(getFileWriter(this, &writer) == KErrNone, (TText8*)__FILE__, __LINE__); + CleanupStack::PushL(writer); + INFO_PRINTF1(_L("File writer created")); + + TRAPD(err, writer->OpenL(_L("c:\\dumpfiles\\file1") )); + INFO_PRINTF2(_L("Opened file file 1 and the error code back was (should be 0): %d"), err); + testBooleanTrue(err == KErrNone, (TText8*)__FILE__, __LINE__); + + RBuf8 buf; + CleanupClosePushL(buf); + buf.Create(100); + buf = _L8("1234567890123456789012345678901234567890123456789012345678901234567890"); + + TAny* ptr = static_cast(const_cast(buf.Ptr())); + + TRAP(err, writer->WriteL( 0, ptr, buf.Length())); + testBooleanTrue(err == KErrNone, (TText8*)__FILE__, __LINE__); + INFO_PRINTF1(_L("Wrote 70 bytes")); + + TRAP(err, writer->WriteL( 0x100, ptr, buf.Length())); + testBooleanTrue(err == KErrNone, (TText8*)__FILE__, __LINE__); + INFO_PRINTF1(_L("Wrote 70 bytes start at pos 100")); + + TRAP(err, writer->WriteL( -1, ptr, buf.Length())); + testBooleanTrue(err != KErrNone, (TText8*)__FILE__, __LINE__); + INFO_PRINTF2(_L("Negative test: Tried to write 70 bytes start at -1, leave code %d"), err); + + TRAP(err, writer->CloseL()); + testBooleanTrue(err == KErrNone, (TText8*)__FILE__, __LINE__); + INFO_PRINTF1(_L("Closed file")); + + CleanupStack::PopAndDestroy(); // buf + CleanupStack::PopAndDestroy(writer); + return TestStepResult(); + } + +TVerdict CFileWriterTestStep5::doTestStepPostambleL() +/** + * @return - TVerdict code + * Override of base class virtual + */ + { + return TestStepResult(); + }