stif/DemoModule/src/Demomodulecases.cpp
branchRCL_3
changeset 40 07b41fa8d1dd
parent 39 3406c99bc375
child 43 ca8a1b6995f6
--- a/stif/DemoModule/src/Demomodulecases.cpp	Thu Jul 15 20:25:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,495 +0,0 @@
-/*
-* Copyright (c) 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 module contains the implementation of 
-* CTestModuleDemo class member functions that does the actual 
-* tests.
-*
-*/
-
-// INCLUDE FILES
-#include <e32math.h>
-#include "DemoModule.h"
-
-// EXTERNAL DATA STRUCTURES
-// None
-
-// EXTERNAL FUNCTION PROTOTYPES  
-// None
-
-// CONSTANTS
-// None
-
-// MACROS
-// None
-
-// LOCAL CONSTANTS AND MACROS
-// None
-
-// MODULE DATA STRUCTURES
-// None
-
-// LOCAL FUNCTION PROTOTYPES
-// None
-
-// FORWARD DECLARATIONS
-// None
-
-// ==================== LOCAL FUNCTIONS =======================================
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CDemoModule
-
-    Method: Case
-
-    Description: Returns a test case by number.
-
-    This function contains an array of all available test cases 
-    i.e pair of case name and test function. If case specified by parameter
-    aCaseNumber is found from array, then that item is returned.
-
-    The reason for this rather complicated function is to specify all the
-    test cases only in one place. It is not necessary to understand how
-    function pointers to class member functions works when adding new test
-    cases. See function body for instructions how to add new test case.
-    
-    Parameters:    const TInt aCaseNumber :in:      Test case number
-
-    Return Values: const TCaseInfo Struct containing case name & function
-
-    Errors/Exceptions: None
-
-    Status: Proposal
-
--------------------------------------------------------------------------------
-*/ 
-const TCaseInfo CDemoModule::Case ( 
-    const TInt aCaseNumber ) const 
-     {
-
-    /*
-    * To add new test cases, implement new test case function and add new 
-    * line to KCases array specify the name of the case and the function 
-    * doing the test case
-    * In practice, do following
-    *
-    * 1) Make copy of existing test case function and change its name
-    *    and functionality. Note that the function must be added to 
-    *    OOMHard.cpp file and to OOMHard.h 
-    *    header file.
-    *
-    * 2) Add entry to following KCases array either by using:
-    *
-    * 2.1: FUNCENTRY or ENTRY macro
-    * ENTRY macro takes two parameters: test case name and test case 
-    * function name.
-    *
-    * FUNCENTRY macro takes only test case function name as a parameter and
-    * uses that as a test case name and test case function name.
-    *
-    * Or
-    *
-    * 2.2: OOM_FUNCENTRY or OOM_ENTRY macro. Note that these macros are used
-    * only with OOM (Out-Of-Memory) testing!
-    *
-    * OOM_ENTRY macro takes five parameters: test case name, test case 
-    * function name, TBool which specifies is method supposed to be run using
-    * OOM conditions, TInt value for first heap memory allocation failure and 
-    * TInt value for last heap memory allocation failure.
-    * 
-    * OOM_FUNCENTRY macro takes test case function name as a parameter and uses
-    * that as a test case name, TBool which specifies is method supposed to be
-    * run using OOM conditions, TInt value for first heap memory allocation 
-    * failure and TInt value for last heap memory allocation failure. 
-    */ 
-
-    static TCaseInfoInternal const KCases[] =
-        {
-        // To add new test cases, add new items to this array
-        
-        // NOTE: When compiled to GCCE, there must be Classname::
-        // declaration in front of the method name, e.g. 
-        // CDemoModule::PrintTest. Otherwise the compiler
-        // gives errors.
-                
-        ENTRY( "Loop test", CDemoModule::LoopTest ),
-        ENTRY( "Simple math test", CDemoModule::SimpleMathTest ),
-        ENTRY( "Math test", CDemoModule::MathTest ),
-        ENTRY( "Print test", CDemoModule::PrintTest ),
-        // Example how to use OOM functionality
-        OOM_ENTRY( "Heap memory allocation with OOM (aborts)", CDemoModule::HeapMemoryAllocation, ETrue, 1, 2 ),
-        ENTRY( "Heap memory allocation (passes)", CDemoModule::HeapMemoryAllocation )
-        };
-
-    // Verify that case number is valid
-    if( (TUint) aCaseNumber >= sizeof( KCases ) / 
-                               sizeof( TCaseInfoInternal ) )
-        {
-
-        // Invalid case, construct empty object
-        TCaseInfo null( (const TText*) L"" );
-        null.iMethod = NULL;
-        null.iIsOOMTest = EFalse;
-        null.iFirstMemoryAllocation = 0;
-        null.iLastMemoryAllocation = 0;
-        return null;
-
-        } 
-
-    // Construct TCaseInfo object and return it
-    TCaseInfo tmp ( KCases[ aCaseNumber ].iCaseName );
-    tmp.iMethod = KCases[ aCaseNumber ].iMethod;
-    tmp.iIsOOMTest = KCases[ aCaseNumber ].iIsOOMTest;
-    tmp.iFirstMemoryAllocation = KCases[ aCaseNumber ].iFirstMemoryAllocation;
-    tmp.iLastMemoryAllocation = KCases[ aCaseNumber ].iLastMemoryAllocation;
-    return tmp;
-
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CDemoModule
-
-    Method: SimpleMathTest
-
-    Description: Simple Math testing.
-
-    Parameters:  TTestResult& aErrorDescription: out:   
-                    Test result and on error case a short description of error
-
-    Return Values: TInt: Always KErrNone to indicate that test was valid
-
-    Errors/Exceptions: None
-
-    Status: Approved
-
--------------------------------------------------------------------------------
-*/
-TInt CDemoModule::SimpleMathTest( TTestResult& aResult )
-    {
-    /* Test with mathematic calculations and printing */
-    _LIT( KDefinion , "RunTestCase");
-    _LIT( KData , "Simple Math calculations");
-    TestModuleIf().Printf( 0, KDefinion, KData );
-
-    // Random number.
-    TReal num = Math::Random(); 
-    // Intermediate result
-    TReal sqrt = 0;
-    // Result
-    TReal result = 0;
-
-    // Take square root of the number
-    TInt ret = Math::Sqrt( sqrt, num );
-    if( ret != KErrNone )
-        {
-        // Return error if Sqrt failed
-        _LIT( KResult ,"Math::Sqrt failed");
-        aResult.iResultDes.Copy( KResult );
-        aResult.iResult = KErrGeneral;
-
-        // Case was executed but failed
-        return KErrNone;
-        }
-
-    // Take power of two from the previous result
-    ret = Math::Pow( result, sqrt, 2 );
-    if( ret != KErrNone )
-        {
-        // Return error if Pow failed
-        _LIT( KResult ,"Math::Pow failed");
-        aResult.iResultDes.Copy( KResult );
-        aResult.iResult = KErrGeneral;
-        
-        // Case was executed but failed
-        return KErrNone;
-        }
-
-    // Compare final result to the original value, 
-    // rounded values should usually be same.
-    TInt32 a1;
-    TInt32 a2;
-    TInt r = Math::Int(a1, result);
-
-    if (r != KErrNone )
-        {
-        _LIT( KResult ,"1st conversion failed");
-        aResult.iResultDes.Copy( KResult );
-        aResult.iResult = r;
-        return KErrNone;
-        }
-
-    r = Math::Int(a2, num);
-    if (r != KErrNone )
-        {
-        _LIT( KResult ,"2nd conversion failed");
-        aResult.iResultDes.Copy( KResult );
-        aResult.iResult = r;
-        return KErrNone;
-        }
-
-    if(  a1 != a2 )
-        {
-        _LIT( KResult ,"Calculation doesn't match");
-        // Return error if comparison failed
-        aResult.iResultDes.Copy( KResult );
-        aResult.iResult = KErrGeneral;
-        // Case was executed but failed
-        return KErrNone;
-        }
-
-
-    // Test case passed
-
-    // Sets test case result and description(Maximum size is KStifMaxResultDes)
-    _LIT( KDescription , "Test case passed");
-    aResult.SetResult( KErrNone, KDescription );
-    //aResult.iResult = KErrNone;
-    //aResult.iResultDes = KDescription;
-
-    // Case was executed
-    return KErrNone;
-
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CDemoModule
-
-    Method: MathTest
-
-    Description: Print loop test. Actually does not test anything, just
-    demonstrate how to print. Test is always pased.
-  
-    Parameters:  TTestResult& aErrorDescription: out:   
-                    Test result and on error case a short description of error
-
-    Return Values: TInt: Always KErrNone to indicate that test was valid
-
-    Errors/Exceptions: None
-
-    Status: Approved
-
--------------------------------------------------------------------------------
-*/
-TInt CDemoModule::LoopTest( TTestResult& aResult )
-    {
-
-    /* Simple print and wait loop */
-    _LIT( KDefinion ,"State");
-    _LIT( KData ,"Looping");
-    TestModuleIf().Printf( 0, KDefinion, KData );
-    for( TInt i=0; i<10; i++)
-        {
-        _LIT( KRunning ,"Running");
-        _LIT( KLoop ,"%d");
-        TestModuleIf().Printf( 0, KRunning, KLoop, i);
-        User::After( 1000000 );
-        }
-    _LIT( KData2 ,"Finished");
-    TestModuleIf().Printf( 0, KDefinion, KData2 );
-
-    // Test case passed
-
-    // Sets test case result and description(Maximum size is KStifMaxResultDes)
-    _LIT( KDescription , "Test case passed");
-    aResult.SetResult( KErrNone, KDescription );
-    //aResult.iResult = KErrNone;
-    //aResult.iResultDes = KDescription;
-
-    // Case was executed
-    return KErrNone;
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CDemoModule
-
-    Method: MathTest
-
-    Description: Math testing.
-  
-    Parameters:  TTestResult& aErrorDescription: out:   
-                    Test result and on error case a short description of error
-
-    Return Values: TInt: Always KErrNone to indicate that test was valid
-
-    Errors/Exceptions: None
-
-    Status: Approved
-
--------------------------------------------------------------------------------
-*/
-TInt CDemoModule::MathTest( TTestResult& aResult )
-    {
-    /* Test with mathematic calculations and printing */
-    _LIT( KDefinion ,"RunTestCase");
-    _LIT( KData ,"Math calculations");
-    TestModuleIf().Printf( 0, KDefinion, KData );
-    // Result
-    TRealX res;
-    // Random numbers
-    TInt rand[6];
-    TRealX coef[5];
-    TInt i;
-    TInt j;
-    for( i=0; i<10; i++ )
-        {
-        for(j=0; j<6; j++)
-            rand[j] = Math::Random(); 
-        for(j=0; j<5; j++)
-            coef[j] = rand[j];
-        Math::PolyX(res, rand[5], 5, coef );
-
-        _LIT( KResult ,"Result %d");
-        TestModuleIf().Printf( 0, KDefinion, KResult, ( TInt )res);
-        }
-
-    // Test case passed
-
-    // Sets test case result and description(Maximum size is KStifMaxResultDes)
-    _LIT( KDescription , "Test case passed");
-    aResult.SetResult( KErrNone, KDescription );
-    //aResult.iResult = KErrNone;
-    //aResult.iResultDes = KDescription;
-
-    // Case was executed
-    return KErrNone;
-
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CDemoModule
-
-    Method: PrintTest
-
-    Description: Printing testing.
-
-    Parameters:  TTestResult& aErrorDescription: out:   
-                    Test result and on error case a short description of error
-
-    Return Values: TInt: Always KErrNone to indicate that test was valid
-
-    Errors/Exceptions: None
-
-    Status: Approved
-
--------------------------------------------------------------------------------
-*/
-TInt CDemoModule::PrintTest( TTestResult& aResult )
-    {
-    /* Tests printing with high intencity and different priority */ 
-    _LIT( KDefinion ,"CTestModuleDemo::RunTestCase");
-    _LIT( KData ,"Heavy print looping");
-    TestModuleIf().Printf( 0, KDefinion, KData );
-    TInt j;
-    for( TInt i=0; i<10; i++)
-        {
-
-        for(j=0; j<2; j++)
-            {
-            _LIT( KTmp ,"RunTestCase");
-            TBuf<15> tmp;
-            tmp.Copy( KTmp );
-            tmp.AppendNum( j );
-            _LIT( KNewData ,"p");
-            TestModuleIf().Printf(3, tmp, KNewData );
-            }
-
-        for(j=0; j<500; j++)
-            {
-             _LIT( KNewDefinion ,"RunTestCase");
-             _LIT( KNewData ,"%c");
-            TestModuleIf().Printf(1+(Math::Random() % 12),
-                KNewDefinion, 
-                KNewData, 'a'+(j%('z'-'a')) );
-            }
-
-        _LIT( KNewDefinion ,"RunTestCase");
-        _LIT( KNewData ,"Running %d");
-        TestModuleIf().Printf( 2, KNewDefinion,KNewData, i);
-        User::After( 1000000 );
-        }
-
-    // Test case passed
-
-    // Sets test case result and description(Maximum size is KStifMaxResultDes)
-    _LIT( KDescription , "Test case passed");
-    aResult.SetResult( KErrNone, KDescription );
-    //aResult.iResult = KErrNone;
-    //aResult.iResultDes = KDescription;
-
-    // Case was executed
-    return KErrNone;
-
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CDemoModule
-
-    Method: HeapMemoryAllocation
-
-    Description: Allocates heap descriptor.
-  
-    Parameters: TTestResult& aError
-
-    Return Values: TInt
-
-    Errors/Exceptions: Leaves with KErrNoMemory if heap allocation fails
-
-    Status: Proposal
-    
--------------------------------------------------------------------------------
-*/
-TInt CDemoModule::HeapMemoryAllocation( TTestResult& aResult )
-    {
-    _LIT( KLogInfo , "CDemoModule::HeapMemoryAllocation" );
-    iLog->Log( KLogInfo );
-
-    // Allocate heap descriptor
-    HBufC * buffer = HBufC::New( 10 );
-    if( buffer == NULL )
-        {
-        // Allocation failed
-        _LIT( KNewLogInfo , "buffer was NULL");
-        iLog->Log( KNewLogInfo );
-        User::Leave( KErrNoMemory );
-        }
-    else
-        {
-        // Descriptor creation was ok
-        _LIT( KNewLogInfo ,"buffer was allocated properly" );
-        iLog->Log( KNewLogInfo );
-        }
-
-    delete buffer;
-
-    _LIT( KDescription , "Test case passed");
-    aResult.SetResult( KErrNone, KDescription );
-    return KErrNone;
-    }
-
-// ================= OTHER EXPORTED FUNCTIONS =================================
-
-// End of File