diff -r 71e347f905f2 -r 4a7fac7dd34a gstreamer_core/tsrc/gstreamertestcases_suite2/src/GstreamerTestCasesBlocks.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gstreamer_core/tsrc/gstreamertestcases_suite2/src/GstreamerTestCasesBlocks.cpp Fri Apr 16 15:15:52 2010 +0300 @@ -0,0 +1,237 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). All rights reserved. +* +* This library is free software; you can redistribute it and/or +* modify it under the terms of the GNU Lesser General Public +* License as published by the Free Software Foundation; either +* version 2 of the License, or (at your option) any later version. +* +* This library is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +* Lesser General Public License for more details. +* +* You should have received a copy of the GNU Lesser General Public +* License along with this library; if not, write to the +* Free Software Foundation, Inc., 59 Temple Place - Suite 330, +* Boston, MA 02111-1307, USA. +* +* Description: This file contains testclass implementation. +* +*/ + +// [INCLUDE FILES] - do not remove +#include +#include +#include +#include "GstreamerTestCases.h" + +// EXTERNAL DATA STRUCTURES +//extern ?external_data; + +// EXTERNAL FUNCTION PROTOTYPES +//extern ?external_function( ?arg_type,?arg_type ); + +// CONSTANTS +//const ?type ?constant_var = ?constant; + +// MACROS +//#define ?macro ?macro_def + +// LOCAL CONSTANTS AND MACROS +//const ?type ?constant_var = ?constant; +//#define ?macro_name ?macro_def + +// MODULE DATA STRUCTURES +//enum ?declaration +//typedef ?declaration + +// LOCAL FUNCTION PROTOTYPES +//?type ?function_name( ?arg_type, ?arg_type ); + +// FORWARD DECLARATIONS +//class ?FORWARD_CLASSNAME; + +// ============================= LOCAL FUNCTIONS =============================== + +// ----------------------------------------------------------------------------- +// ?function_name ?description. +// ?description +// Returns: ?value_1: ?description +// ?value_n: ?description_line1 +// ?description_line2 +// ----------------------------------------------------------------------------- +// +/* +?type ?function_name( + ?arg_type arg, // ?description + ?arg_type arg) // ?description + { + + ?code // ?comment + + // ?comment + ?code + } +*/ + +// ============================ MEMBER FUNCTIONS =============================== + +// ----------------------------------------------------------------------------- +// CGstreamerTestCases::Delete +// Delete here all resources allocated and opened from test methods. +// Called from destructor. +// ----------------------------------------------------------------------------- +// +void CGstreamerTestCases::Delete() + { + + } + +// ----------------------------------------------------------------------------- +// CGstreamerTestCases::RunMethodL +// Run specified method. Contains also table of test mothods and their names. +// ----------------------------------------------------------------------------- +// +TInt CGstreamerTestCases::RunMethodL( + CStifItemParser& aItem ) + { + + static TStifFunctionInfo const KFunctions[] = + { + // Copy this line for every implemented function. + // First string is the function name used in TestScripter script file. + // Second is the actual implementation member function. + ENTRY( "Example", CGstreamerTestCases::ExampleL ), + //ADD NEW ENTRY HERE + // [test cases entries] - Do not remove + + }; + + const TInt count = sizeof( KFunctions ) / + sizeof( TStifFunctionInfo ); + + return RunInternalL( KFunctions, count, aItem ); + + } + +// ----------------------------------------------------------------------------- +// CGstreamerTestCases::ExampleL +// Example test method function. +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +// +TInt CGstreamerTestCases::ExampleL( CStifItemParser& aItem ) +{ + TInt err = KErrNone; + RTimer timeoutTimer; + // Print to UI +// _LIT( KGstreamerTestCases, "GstreamerTestCases" ); +// _LIT( KExample, "Test case: " ); +// TestModuleIf().Printf( 0, KGstreamerTestCases, KExample ); + // Print to log file + + TPtrC string[2]; + TFileName arg; + //_LIT( KParam, "Param[%i]: %S" ); + + if( aItem.GetNextString ( string[0] ) != KErrNone) + { + iLog->Log( _L(">> Test cases Not Found") ); + return -1; + } + iLog->Log( _L( "Test case Name is : " ) ); + iLog->Log( string[0] ); + + while ( aItem.GetNextString ( string[1] ) == KErrNone ) + { + iLog->Log( string[1] ); + arg.Append( string[1] ); + arg.Append( TChar(' ') ); + } + + + _LIT( KArg, "Arg: " ); + iLog->Log( KArg ); + iLog->Log( arg ); + RProcess process; + err = process.Create( string[0],arg ); + + if( !err ) + { + + if( timeoutTimer.CreateLocal() != KErrNone ) + { + iLog->Log( _L(">> timeoutTimer.CreateLocal failed") ); + } + + iLog->Log( _L(">> Test cases Started") ); + TRequestStatus processStatus = KRequestPending; + TRequestStatus timerStatus = KRequestPending; + process.Logon( processStatus ); + + process.Resume(); + TTimeIntervalMicroSeconds32 timeout = 1 * 60 * 1000000; + timeoutTimer.After( timerStatus, timeout ); + + while( processStatus == KRequestPending && timerStatus == KRequestPending ) + { + User::WaitForAnyRequest(); + + } + + err = process.ExitReason(); + if( timerStatus != KRequestPending ) + { + err = KErrTimedOut; + } + + process.LogonCancel( processStatus ); + timeoutTimer.Cancel(); + /// required to complete one of the pending request.. + User::WaitForAnyRequest(); + + process.Kill( KErrNone ); + process.Close(); + timeoutTimer.Close(); + iLog->Log( _L(">> test cases completed") ); + } + else + { + iLog->Log( _L(">> test cases exe not found") ); + } + + + if( err != KErrNone ) + { + iLog->Log( CStifLogger::ERed, _L( "Test cases FAILED!" ) ); + } + else + { + iLog->Log( CStifLogger::EGreen, _L( "Test cases PASSED!" ) ); + } + + + return err; +} + +// ----------------------------------------------------------------------------- +// CGstreamerTestCases::?member_function +// ?implementation_description +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +// +/* +TInt CGstreamerTestCases::?member_function( + CItemParser& aItem ) + { + + ?code + + } +*/ + +// ========================== OTHER EXPORTED FUNCTIONS ========================= +// None + +// [End of File] - Do not remove