void CGroupViewTester::HandleContactViewEvent(const CContactViewBase& aView,const TContactViewEvent& aEvent) { switch (iCurrentTest) { case ECreateLocalView: test(iLocalView==&aView); test(aEvent.iEventType==TContactViewEvent::EReady); NextTest(); break; case ECreateRemoteNamedView: test(iNamedRemoteView==&aView); test(aEvent.iEventType==TContactViewEvent::EReady); NextTest(); break; case EStartLocalTests: case EEndLocalTests: case EStartRemoteTests: case EEndRemoteTests: case ENumTests: break; default: test(EFalse); break; } }
bool CCodeBlock::Compile() { CPU_Message("====== Code Block ======"); CPU_Message("Native entry point: %X", CompiledLocation()); CPU_Message("Start of Block: %X", VAddrEnter()); CPU_Message("No of Sections: %d", NoOfSections()); CPU_Message("====== recompiled code ======"); m_RecompilerOps->EnterCodeBlock(); if (g_System->bLinkBlocks()) { while (m_EnterSection->GenerateNativeCode(NextTest())); } else { if (!m_EnterSection->GenerateNativeCode(NextTest())) { return false; } } m_RecompilerOps->CompileExitCode(); uint32_t PAddr; g_TransVaddr->TranslateVaddr(VAddrFirst(), PAddr); MD5(g_MMU->Rdram() + PAddr, (VAddrLast() - VAddrFirst()) + 4).get_digest(m_Hash); #if defined(ANDROID) && (defined(__arm__) || defined(_M_ARM)) __clear_cache_android((uint8_t *)((uint32_t)m_CompiledLocation & ~1), (uint8_t *)(*g_RecompPos)); #endif return true; }
void CAsyncTest::RunL() { switch (iTestNo) { case EOpenAndCancelPart1: OpenUnnamedDatabaseTestL(); User::After(100000); // Give other threads a chance to run during concurrent tests SetActive(); ++iTestNo; break; case EOpenAndCancelPart2:// Allow the database to open before cancelling CancelDatabaseTestL(); NextTest(); ++iTestNo; break; case EOpenAndCancel: OpenAndCancelDatabaseTestL(); SetActive(); ++iTestNo; break; case EOpenUnnamed: OpenUnnamedDatabaseTestL(); SetActive(); ++iTestNo; break; case ETestOpenUnnamed: User::LeaveIfError(iStatus.Int()); TestResultL(); NextTest(); ++iTestNo; break; case EOpenNamed: User::LeaveIfError(iStatus.Int()); OpenNamedDatabaseTestL(); User::After(1000); SetActive(); ++iTestNo; break; case ETestOpenNamed: { TestResultL(); RThread thread; if(thread.RequestCount()!=0) User::Leave(KErrBadHandle); CActiveScheduler::Stop(); iTest->Next(_L("Test Completed OK\n")); break; } default: ASSERT(EFalse); break; } }
void CGroupViewTester::ConstructL() { iSortOrder_1.AppendL(KUidContactFieldGivenName); iSortOrder_1.AppendL(KUidContactFieldFamilyName); iSortOrder_1.AppendL(KUidContactFieldCompanyName); NextTest(); }
void CTestConductor::ConstructL() { // Create the db files used in the tests iDb = CContactDatabase::ReplaceL(KDbDamaged); CleanupStack::PushL(iDb); iDb->DamageDatabaseL(0x666); CleanupStack::PopAndDestroy(iDb); iDb = CContactDatabase::ReplaceL(KDbFileName); delete iDb; iDb = CContactDatabase::ReplaceL(KDefaultDb); delete iDb; CopyCdbFileL(KDatabaseV4,KDbOldVersionFilePath); iDb = NULL; iTestError = KErrNone; NextTest(); CActiveScheduler::Start(); User::LeaveIfError(iTestError); }
void CPntBufWindow::WinKeyL(const TKeyEvent &aKey,const TTime &) { switch(aKey.iCode) { case ' ': NextTest(); break; case EKeyEscape: iTest->FinishedTests(); break; case '0': SetUpState(); break; case '1': case '2': case '3': { TInt mode=aKey.iCode-'1'; if (mode!=iMode) { iMode=mode; SetUpState(); } } break; } }
void CCodeBlock::DetermineLoops() { for (SectionMap::iterator itr = m_SectionMap.begin(); itr != m_SectionMap.end(); itr++) { CCodeSection * Section = itr->second; uint32_t Test = NextTest(); Section->DetermineLoop(Test, Test, Section->m_SectionID); } }
void CUnfiledGroupViewTester::HandleContactViewEvent(const CContactViewBase& aView,const TContactViewEvent& aEvent) { TCntProfile profile; TInt sizeOfView = 0; switch (iCurrentTest) { case ECreateUnfiledGroupView: test(iGroupViewUnfiled==&aView); test(aEvent.iEventType==TContactViewEvent::EReady); // Stop timer. STOP_CLOCK_TIME( profile ); iLog.LogLine(_L("<< Stop Clock [%d] \n"), macroTimer); iLog.LogLine(_L("=== Time Taken to create view ")); iTestConductor.PrintTimeTaken(profile.iTime); NextTest(); break; case ETestAddUnfiledContacts: case ETestRemoveUnfiledContacts: TRAPD(err, sizeOfView = iGroupViewUnfiled->CountL() ); test(err == KErrNone); if (sizeOfView == iSizeOfViewToExpect) { // Stop timer. STOP_CLOCK_TIME( profile ); iLog.LogLine(_L("=== Time Taken handle all Messages ")); iLog.LogLine(_L("<< Stop Clock [%d] \n"), macroTimer); iTestConductor.PrintTimeTaken(profile.iTime); iSizeOfViewToExpect = 0; NextTest(); } break; case ENumTests: break; default: test(EFalse); break; } }
void CGroupViewTester::ConstructL() { iSortOrder_1.AppendL(KUidContactFieldGivenName); iSortOrder_1.AppendL(KUidContactFieldFamilyName); iSortOrder_1.AppendL(KUidContactFieldCompanyName); iTextDef=CContactTextDef::NewL(); iTextDef->AppendL(TContactTextDefItem(KUidContactFieldGivenName,KTextDefSeparator)); iTextDef->AppendL(TContactTextDefItem(KUidContactFieldFamilyName,KTextDefSeparator)); iTextDef->AppendL(TContactTextDefItem(KUidContactFieldCompanyName,KTextDefSeparator)); NextTest(); }
bool CCodeBlock::Compile() { CPU_Message("====== Code Block ======"); CPU_Message("x86 code at: %X",CompiledLocation()); CPU_Message("Start of Block: %X",VAddrEnter() ); CPU_Message("No of Sections: %d",NoOfSections() ); CPU_Message("====== recompiled code ======"); EnterCodeBlock(); if (g_SyncSystem) { //if ((uint32_t)BlockInfo.CompiledLocation == 0x60A7B73B) //{ // X86BreakPoint(__FILEW__,__LINE__); //} //MoveConstToVariable((uint32_t)BlockInfo.CompiledLocation,&CurrentBlock,"CurrentBlock"); } if (g_System->bLinkBlocks()) { while (m_EnterSection->GenerateX86Code(NextTest())); } else { if (!m_EnterSection->GenerateX86Code(NextTest())) { return false; } } CompileExitCode(); uint32_t PAddr; g_TransVaddr->TranslateVaddr(VAddrFirst(),PAddr); MD5(g_MMU->Rdram() + PAddr,(VAddrLast() - VAddrFirst()) + 4).get_digest(m_Hash); return true; }
void CTPointerCapture::doIncSubStateL() { iSubState++; TInt max=0; switch(iTest->iState) { case ECaptureDisabled: max=ESubStates1; break; case ENormalCapture: max=ESubStates2; break; case ECaptureAllGroups: max=ESubStates3; break; case EDragDropCapture: max=ESubStates4; break; case EDragDropCaptureAllGroups: max=ESubStates5; break; case ENormalCaptureWithoutFocus: max=ESubStates6; break; } //SubState 4 has been broken by something in the framework if (iSubState==max || iSubState==4) { #if defined(LOGGING) _LIT(KLog,"IncState OldState=%d SubState=%d"); LOG_MESSAGE3(KLog,iTest->iState,iSubState); #endif NextTest(); } StateChanged(); TheClient->WaitForRedrawsToFinish(); if (iSubState>0) SendEventsL(); }
void CTPointerCapture::TestFailed() { if (iFailed) { _LIT(KLog,"Test Failed State=%d SubState=%d"); LOG_MESSAGE3(KLog,iTest->iState,iSubState); } __ASSERT_DEBUG(iFailed==EFalse,AutoPanic(ETManPanicPcFailed)); TInt dRet=1; #if !defined(DISABLE_FAIL_DIALOG) Client()->iGroup->GroupWin()->SetOrdinalPosition(0,10); // Put error dialog on top of test windows TRAPD(err,dRet=doTestFailedL()); Client()->iGroup->GroupWin()->SetOrdinalPosition(0,0); #endif switch(dRet) { case 0: break; case 1: iFailed=ETrue; NextTest(); break; } }
//-------------------- // Check States //-------------------- void DLCSystemTests::InitCompleted(DLCStatusCode withStatus) { switch ( state ) { case TEST_1: if ( withStatus == DOWNLOAD_SUCCESS ) { if ( DLCSystem::Instance()->GetDLCSource(0)->state != DLCSystem::DLC_NOT_DOWNLOADED ) { isSucsess = false; } if ( DLCSystem::Instance()->GetDLCSource(1)->state != DLCSystem::DLC_NOT_DOWNLOADED ) { isSucsess = false; } DLCSystem::Instance()->DownloadAllDLC(); } else { isSucsess = false; NextTest(); } break; case TEST_2: if ( withStatus == DOWNLOAD_SUCCESS ) { if ( DLCSystem::Instance()->GetDLCSource(0)->state != DLCSystem::DLC_FILES_TREE_CORRUPT ) { isSucsess = false; } if ( DLCSystem::Instance()->GetDLCSource(1)->state != DLCSystem::DLC_DOWNLOADED ) { isSucsess = false; } DLCSystem::Instance()->DownloadAllDLC(); } else { isSucsess = false; NextTest(); } break; case TEST_3: case TEST_6: if ( withStatus == DOWNLOAD_SUCCESS ) { if ( DLCSystem::Instance()->GetDLCSource(0)->state != DLCSystem::DLC_DOWNLOADED ) { isSucsess = false; } if ( DLCSystem::Instance()->GetDLCSource(1)->state != DLCSystem::DLC_NOT_DOWNLOADED ) { isSucsess = false; } DLCSystem::Instance()->DownloadAllDLC(); } else { isSucsess = false; NextTest(); } break; case TEST_4: if ( withStatus == DOWNLOAD_SUCCESS ) { if ( DLCSystem::Instance()->GetDLCSource(0)->state != DLCSystem::DLC_DOWNLOADED ) { isSucsess = false; } if ( DLCSystem::Instance()->GetDLCSource(1)->state != DLCSystem::DLC_DOWNLOAD_NOT_FINISHED ) { isSucsess = false; } DLCSystem::Instance()->DownloadAllDLC(); } else { isSucsess = false; NextTest(); } break; case TEST_5: if ( withStatus == DOWNLOAD_SUCCESS ) { DLCSystem::Instance()->DownloadAllDLC(); if ( DLCSystem::Instance()->GetDLCSource(0)->state != DLCSystem::DLC_OLD_VERSION ) { isSucsess = false; Logger::Debug(" INIT FALSE 1 state = %d", DLCSystem::Instance()->GetDLCSource(0)->state); } if ( DLCSystem::Instance()->GetDLCSource(1)->state != DLCSystem::DLC_DOWNLOADED ) { isSucsess = false; Logger::Debug(" INIT FALSE 2 state = %d", DLCSystem::Instance()->GetDLCSource(1)->state); } } else { Logger::Debug(" INIT FALSE 3"); isSucsess = false; NextTest(); } break; case TEST_7: if ( withStatus == DOWNLOAD_SUCCESS ) { DLCSystem::Instance()->DownloadAllDLC(); if ( DLCSystem::Instance()->GetDLCSource(0)->state != DLCSystem::DLC_DOWNLOADED ) { isSucsess = false; } if ( DLCSystem::Instance()->GetDLCSource(1)->state != DLCSystem::DLC_OLD_VERSION ) { isSucsess = false; } } else { isSucsess = false; NextTest(); } break; case TEST_8: if ( withStatus == DOWNLOAD_SUCCESS ) { DLCSystem::Instance()->DownloadAllDLC(); if ( DLCSystem::Instance()->GetDLCSource(0)->state != DLCSystem::DLC_DOWNLOADED ) { isSucsess = false; } if ( DLCSystem::Instance()->GetDLCSource(1)->state != DLCSystem::DLC_NOT_DOWNLOADED ) { isSucsess = false; } if ( DLCSystem::Instance()->GetDLCSource(2)->state != DLCSystem::DLC_DOWNLOADED ) { isSucsess = false; } } else { isSucsess = false; NextTest(); } break; default: break; } }
void CTestConductor::RunL() { User::After(1000); switch (iCurrentTestNumber) { // Test One - Async Open of a Named Database case EAsyncOpenNamed: test.Next(_L("=== Async Open of Named Db")); SetActive(); iContactOpenOperation = CContactDatabase::Open(KDbFileName,iStatus); ++iCurrentTestNumber; break; // Check Test One Results case EAsyncOpenedNamed: test(iStatus.Int() == KErrNone); test.Printf(_L("=== Opened Async\n")); iDb = iContactOpenOperation->TakeDatabase(); test(iDb != NULL); delete iContactOpenOperation; delete iDb; NextTest(); break; // Test Two - Async Open of the Default Database case EAsyncOpenDefault: test.Next(_L("=== Async Open Default")); SetActive(); iContactOpenOperation = CContactDatabase::Open(iStatus); ++iCurrentTestNumber; break; // Check Test Two Results case EAsyncOpenedDefault: test(iStatus.Int() == KErrNone); test.Printf(_L("=== Opened Async Default \n")); iDb = iContactOpenOperation->TakeDatabase(); test(iDb != NULL); delete iContactOpenOperation; delete iDb; NextTest(); break; // Test Three - Attempted Async Open of a Non-Existent File case EAsyncOpenNonExistent: test.Next(_L("=== Attempted Open of Non-Existent File")); SetActive(); iContactOpenOperation = CContactDatabase::Open(KDbFileNameNotExist,iStatus); ++iCurrentTestNumber; break; // Check Test Three Results case EAsyncOpenedNonExistent: test.Printf(_L("=== Opened Non Existent Response\n")); test(iStatus.Int() == KErrNotFound); delete iContactOpenOperation; NextTest(); break; // Test Four - Cancel the Async Open case EAsyncCancelOpenDefault: test.Next(_L("=== Cancel Async Open")); SetActive(); iContactOpenOperation = CContactDatabase::Open(iStatus); ++iCurrentTestNumber; // Cancel the request delete iContactOpenOperation; break; // Check Test Four Results case EAsyncCanceledOpenedDefault: test.Printf(_L("=== Cancelled Async Open\n")); test(iStatus.Int() == KErrCancel); NextTest(); break; // Test Five - Async Open of a damaged Database case EAsyncOpenDamaged: test.Next(_L("Open a damaged database")); SetActive(); iContactOpenOperation = CContactDatabase::Open(KDbDamaged,iStatus); ++iCurrentTestNumber; break; // Check Test Five Results case EAsyncOpenedDamaged: test(iStatus.Int() == KErrNone); test.Printf(_L("=== Opened Damaged Db \n")); iDb = iContactOpenOperation->TakeDatabase(); test(iDb != NULL); delete iContactOpenOperation; delete iDb; NextTest(); break; // Test Six - Async Open of a Previous version of the Database case EAsyncOpenPreviousVersion: test.Next(_L("Open an old version database")); SetActive(); iContactOpenOperation = CContactDatabase::Open(KDbOldVersionFileName,iStatus); ++iCurrentTestNumber; break; // Check Test Six Results case EAsyncOpenedPreviousVersion: test(iStatus.Int() == KErrNone); test.Printf(_L("=== Opened Previoius Version Db \n")); iDb = iContactOpenOperation->TakeDatabase(); test(iDb != NULL); delete iContactOpenOperation; delete iDb; NextTest(); break; // Test Seven - Async Open of a Previous version of the Database, and an Async // call open of the same database in a different thread. case EOpenAsyncAndAsync: test.Next(_L("Open Async Then Sync")); // Copy Version 4 Db CopyCdbFileL(KDatabaseV4,KDbOldVersionFilePath); // Open Async SetActive(); iContactOpenOperation = CContactDatabase::Open(KDbOldVersionFileName,iStatus); ++iCurrentTestNumber; // Lauch Thread to Open Db Asynchronously CDbOpenLauncher::Create(KThreadOpenAsync, KThreadOpenAsync); break; // Check Test Seven Results case EOpenedAsyncAndAsync: test(iStatus.Int() == KErrNone); test.Printf(_L("=== Opened After Async Open Db \n")); iDb = iContactOpenOperation->TakeDatabase(); test(iDb != NULL); delete iContactOpenOperation; delete iDb; NextTest(); break; // Iterate through these states (allowing other thread to open asynchronously) case EWaitState: test.Printf(_L("=== Waiting in first thread \n")); iCurrentTestNumber = EWaitedState; SetActive(); iContactOpenOperation = CContactDatabase::Open(KDbOldVersionFileName,iStatus); break; case EWaitedState: test(iStatus.Int() == KErrNone); test.Printf(_L("=== Opened After Wait Db \n")); iDb = iContactOpenOperation->TakeDatabase(); test(iDb != NULL); delete iContactOpenOperation; delete iDb; if (iWaitCounter < KNumWaitLoops) { iCurrentTestNumber = EWaitState - 1; iWaitCounter++; } else { // move onto next test iCurrentTestNumber = EWaitedState; } NextTest(); break; // Test Eight - Async Open of a Previous version of the Database, and a Sync // open of the same database in a different thread. case EOpenAsyncAndSync: test.Next(_L("Open Async Then Sync")); // Copy Version 4 Db CopyCdbFileL(KDatabaseV4,KDbOldVersionFilePath); // Open Async SetActive(); iContactOpenOperation = CContactDatabase::Open(KDbOldVersionFileName,iStatus); ++iCurrentTestNumber; // Lauch Thread to Open Db Synchronously CDbOpenLauncher::Create(KThreadOpenSync, KThreadOpenSync); break; // Check Test Eight Results case EOpenedAsyncAndSync: test(iStatus.Int() == KErrNone); test.Printf(_L("=== Opened After Sync Open Db \n")); iDb = iContactOpenOperation->TakeDatabase(); test(iDb != NULL); delete iContactOpenOperation; delete iDb; NextTest(); break; // End of Tests case ENumTests: { test.Printf(_L("=== Main Tests Complete\n")); RThread thread; test(thread.RequestCount()==0); // tidy up files CContactDatabase::DeleteDatabaseL(KDbDamaged); CContactDatabase::DeleteDatabaseL(KDefaultDb); CContactDatabase::DeleteDatabaseL(KDbOldVersionFileName); CContactDatabase::DeleteDatabaseL(KDbFileName); CActiveScheduler::Stop(); } break; default: ASSERT(EFalse); break; } }
void CUnfiledGroupViewTester::StartL() { iClientStatus = KRequestPending; NextTest(); }
void CTester::ConstructL() { NextTest(); CActiveScheduler::Start(); }
void CGroupViewTester::RunL() { TCntProfile profile; switch (iCurrentTest) { case ECreateLocalView: iLog.LogLine(_L("=== Create local view \n")); iLocalView=CContactLocalView::NewL(*this,iDb,iSortOrder_1,EContactAndGroups); break; case ECreateRemoteNamedView: iLog.LogLine(_L("=== Create Remote named view \n")); iNamedRemoteView = CContactNamedRemoteView::NewL(*this,KRemoteViewName,iDb,iSortOrder_1,EContactAndGroups); break; case EStartLocalTests: iLog.LogLine(_L("=== Start Local Tests \n")); CLEAR_ALL_CLOCKS; iLog.LogLine(_L(">> Start Clock [%d] \n"), macroTimer); START_CLOCK; iTester = CUnfiledGroupViewTester::NewL(iLog, iDb, iTestConductor, *iLocalView, iStatus); SetActive(); iCurrentTest = EEndLocalTests; iTester->StartL(); break; case EEndLocalTests: STOP_CLOCK_TIME( profile ); iLog.LogLine(_L("<< Stop Clock [%d] \n"), macroTimer); iLog.LogLine(_L("== End Local Tests Time to complete \n")); delete iTester; iTester = NULL; iTestConductor.PrintTimeTaken(profile.iTime); NextTest(); break; case EStartRemoteTests: iLog.LogLine(_L("=== Start Remote Tests \n")); CLEAR_ALL_CLOCKS; iLog.LogLine(_L(">> Start Clock [%d] \n"), macroTimer); START_CLOCK; iTester = CUnfiledGroupViewTester::NewL(iLog, iDb, iTestConductor, *iNamedRemoteView, iStatus); SetActive(); iCurrentTest = EEndRemoteTests; iTester->StartL(); break; case EEndRemoteTests: STOP_CLOCK_TIME( profile ); iLog.LogLine(_L("<< Stop Clock [%d] \n"), macroTimer); iLog.LogLine(_L("== End Remote Tests Time to complete\n")); delete iTester; iTester = NULL; iTestConductor.PrintTimeTaken(profile.iTime); NextTest(); break; case ENumTests: iLog.LogLine(_L("==== No Time to report, tests over ! \n")); iLog.LogLine(_L("==== Group View Tests Finished, All Passed...\n")); CActiveScheduler::Stop(); delete this; break; default: ASSERT(EFalse); break; } }
void CGroupViewTester::HandleContactViewEvent(const CContactViewBase& aView,const TContactViewEvent& aEvent) { switch (iCurrentTest) { case ECreateLocalView: iLog.LogLine(_L("==== Handling the local view creation \n")); test(iLocalView==&aView); test(aEvent.iEventType==TContactViewEvent::EReady); break; case ECreateGroupOne: iLog.LogLine(_L("==== Handling the group creation \n")); break; case ECreateGroupOneView: iLog.LogLine(_L("==== Handling the group view creation \n")); test(iGroupViewOne==&aView); test(aEvent.iEventType==TContactViewEvent::EReady); break; case EAddContactToGroupOne: iLog.LogLine(_L("==== Handling the addition of a contact to the group \n")); break; case EAddContact: iLog.LogLine(_L("==== Handling the addition of a contact \n")); break; case EModifyContactInGroupOne: iLog.LogLine(_L("==== Handling Contact being modified. \n")); switch (aEvent.iEventType) { case TContactViewEvent::EItemRemoved: iLog.LogLine(_L("==== Contact Is removed for modify \n")); break; case TContactViewEvent::EItemAdded: iLog.LogLine(_L("==== Contact Is added for modify \n")); { TInt numberOfEntries = 0; TRAPD(err, numberOfEntries = aView.CountL() ); test(err == KErrNone && numberOfEntries != 0); } break; default: break; } break; case ENumTests: default: test(EFalse); break; } if (--iNumNotificationExpected<=0) { NextTest(); iNumNotificationExpected=0; } }
int main( int argc, char *argv[] ) { SDL_Surface* screen; int depth = 0; bool speedtest = false; U32 flags = SDL_SWSURFACE; int i; bool timerOn = true; bool useOpenGL = false; // bool saveBMP = false; const SDL_version* sdlVersion = SDL_Linked_Version(); if ( sdlVersion->minor < 2 ) { GLOUTPUT(( "SDL version must be at least 1.2.0" )); GLASSERT( 0 ); exit( 254 ); } /* Initialize the SDL library */ if ( SDL_Init(SDL_INIT_VIDEO|SDL_INIT_TIMER|SDL_INIT_NOPARACHUTE) < 0 ) { GLOUTPUT(( "Couldn't initialize SDL: %s\n",SDL_GetError())); exit(255); } SDL_WM_SetCaption( "Kyra Demo", 0 ); for ( i=1; i<argc; i++ ) { if ( *argv[i] == '-' && *(argv[i]+1) ) { const char* param = argv[i]+2; switch( *(argv[i]+1) ) { case 'd': { depth = atoi( param ); } break; case 's': { speedtest = true; } break; case 'f': { flags |= SDL_FULLSCREEN; } break; case '1': { timerOn = false; } break; case 't': { singleTest = atoi( param ); } break; case 'o': { useOpenGL = true; } } } } if ( useOpenGL ) { if ( flags & SDL_FULLSCREEN ) flags = SDL_OPENGL | SDL_FULLSCREEN; else flags = SDL_OPENGL; } /* Create a display for the image. If we are forcing the mode, skip this step and potentially use a shadow surface. */ if ( depth == 0 ) { depth = SDL_VideoModeOK( SCREENX, SCREENY, 32, flags ); if ( depth < 16 ) depth = 16; } if ( useOpenGL ) { // We want *at least* 5 bits per channel. //SDL_GL_SetAttribute( SDL_GL_RED_SIZE, 5 ); //SDL_GL_SetAttribute( SDL_GL_GREEN_SIZE, 5 ); //SDL_GL_SetAttribute( SDL_GL_BLUE_SIZE, 5 ); SDL_GL_SetAttribute( SDL_GL_DEPTH_SIZE, depth ); SDL_GL_SetAttribute( SDL_GL_DOUBLEBUFFER, 1 ); } screen = SDL_SetVideoMode( SCREENX, SCREENY, depth, flags ); if ( screen == NULL ) { fprintf( stdout, "Can't open display (%dx%d %dbps %s)\n", SCREENX, SCREENY, depth, useOpenGL ? "OpenGL" : "" ); fprintf( stdout, "SDL_Error: %s\n", SDL_GetError() ); exit(3); } char buf[512]; factory.GetHeader( screen, buf ); printf( buf ); GLOUTPUT(( "%s\n", buf )); SDL_Event event; if ( speedtest ) { memset( &event, 0, sizeof( event ) ); event.type = SDL_TIMER_EVENT; SDL_PeepEvents( &event, 1, SDL_ADDEVENT, 0 ); GLOUTPUT(( "Speedtest mode!\n" )); } else if ( timerOn ) { SDL_SetTimer( timerInterval, TimerCallback ); GLOUTPUT(( "Demo play mode!\n" )); } U32 start = SDL_GetTicks(); if ( singleTest < 0 ) currentGame = factory.CreateGame( 0, screen ); else currentGame = factory.CreateGame( singleTest, screen ); timerInterval = currentGame->FrameInterval(); while( currentGame && SDL_WaitEvent(&event) ) { if ( event.type == SDL_QUIT ) break; // Cull extra timer messages: if ( !speedtest && timerOn ) { SDL_Event nextEvent; if ( SDL_PeepEvents( &nextEvent, 1, SDL_PEEKEVENT, SDL_ALLEVENTS ) && nextEvent.type == SDL_TIMER_EVENT ) { // the event is duplicated //GLOUTPUT( "Timer event tossed.\n" ); continue; } } switch(event.type) { case SDL_KEYDOWN: { if ( event.key.keysym.sym == SDLK_F10 ) { // save a bitmap. static int count = 0; char buf[ 256 ]; sprintf( buf, "krdemo%d.bmp", count++ ); if ( !(screen->flags & SDL_OPENGL ) ) SDL_SaveBMP( screen, buf ); } else if ( !timerOn && event.key.keysym.sym == SDLK_SPACE ) { // Simulate a timer: SDL_Event e; memset( &e, 0, sizeof( e ) ); e.type = SDL_TIMER_EVENT; SDL_PeepEvents( &e, 1, SDL_ADDEVENT, 0 ); } else if ( event.key.keysym.sym == SDLK_s ) { timerInterval = 500; } else if ( event.key.keysym.sym == SDLK_a ) { timerInterval = 10000; } else { NextTest( screen ); } } break; case SDL_KEYUP: { if ( event.key.keysym.sym == SDLK_s || event.key.keysym.sym == SDLK_a ) { if ( currentGame ) timerInterval = currentGame->FrameInterval(); SDL_SetTimer( 0, TimerCallback ); SDL_SetTimer( timerInterval, TimerCallback ); } } break; case SDL_VIDEOEXPOSE: { currentGame->VideoExpose(); // currentGame->UpperDrawFrame(); } break; case SDL_TIMER_EVENT: { if ( currentGame ) { currentGame->UpperDrawFrame(); // if ( speedtest // && currentGame->Frame() == currentGame->TestFrames() ) if ( currentGame->Frame() == currentGame->TestFrames() ) { U32 end = SDL_GetTicks(); factory.SetTime( end - start ); NextTest( screen ); start = SDL_GetTicks(); } if ( speedtest ) { SDL_Event e; memset( &e, 0, sizeof( e ) ); e.type = SDL_TIMER_EVENT; SDL_PeepEvents( &e, 1, SDL_ADDEVENT, 0 ); } } } break; } } if ( speedtest ) { factory.PrintTimes( screen ); } else { printf( "Tested at %dbbp\n", screen->format->BitsPerPixel ); } if ( speedtest ) { FILE* fp = fopen( "perf.txt", "w" ); if ( fp ) { fprintf( fp, "Performance: \n" ); grinliz::Performance::Dump( fp, "kyra" ); fclose( fp ); } } SDL_Quit(); return 0; }
void CGroupViewTester::HandleContactViewEvent( const CContactViewBase& aView, const TContactViewEvent& aEvent ) { // Log events from both underlying view and group view. LogEvent( const_cast<TContactViewEvent&>( aEvent ) ); switch (iCurrentTest) { case ECreateLocalView: test(iLocalView==&aView); test(aEvent.iEventType==TContactViewEvent::EReady); break; case ECreateGroupOneView: { test(iGroupViewOne == &aView); test(aEvent.iEventType == TContactViewEvent::EReady); //Reserve the IDs of last three contacts in the group TInt index = KNumContactsInGroupOne-1; TRAPD(err, iLastContactID = iGroupViewOne->ContactAtL(index).Id() ); if (err) { _LIT(KErrMsg, "Contact view error in CGroupViewTester::HandleContactViewEvent() assigning iLastContactID\n"); test.Printf(KErrMsg); User::Invariant(); } --index; TRAP(err, iSecondLastContactID = iGroupViewOne->ContactAtL(index).Id() ); if (err) { _LIT(KErrMsg, "Contact view error in CGroupViewTester::HandleContactViewEvent() assigning iSecondLastContactID\n"); test.Printf(KErrMsg); User::Invariant(); } --index; TRAP(err, iThirdLastContactID = iGroupViewOne->ContactAtL(index).Id() ); if (err) { _LIT(KErrMsg, "Contact view error in CGroupViewTester::HandleContactViewEvent() assigning iThirdLastContactID\n"); test.Printf(KErrMsg); User::Invariant(); } } break; case ECreateGroupTwoView: test( iGroupViewTwo == &aView ); test( aEvent.iEventType == TContactViewEvent::EReady ); break; case EDeleteItemsFromView: { // Bulk delete complete when the last Ready is received from the // base view. This comes after the group view ready event. Break to // run next test. TBool lastEvent = (aEvent.iEventType == TContactViewEvent::EReady) && (&aView == iLocalView); if (lastEvent) { break; } if (aEvent.iEventType == TContactViewEvent::EItemRemoved) { // Only proces events from group view. if (&aView == iGroupViewOne) { // Ensure that only 1 contact is removed per notification. iNumRemovedEvents++; TInt numItemsExpected = KNumContactsInGroupOne - iNumRemovedEvents; TInt numItems(0); TRAPD(err, numItems = iGroupViewOne->CountL() ); if (err) { _LIT(KErrMsg, "Contact view error in CGroupViewTester::HandleContactViewEvent() assigning numItems\n"); test.Printf(KErrMsg); User::Invariant(); } test(numItems == numItemsExpected ); // Verify the contacts were deleted as expected. TBool testVal(EFalse); TInt index = numItemsExpected - 1; TRAP(err, testVal = (iGroupViewOne->ContactAtL(index).Id() == iLastContactID) ); if (err) { _LIT(KErrMsg, "Contact view error in CGroupViewTester::HandleContactViewEvent() assigning testVal for iLastContactID\n"); test.Printf(KErrMsg); User::Invariant(); } test(testVal); --index; TRAP(err, testVal = (iGroupViewOne->ContactAtL(index).Id() == iSecondLastContactID) ); if (err) { _LIT(KErrMsg, "Contact view error in CGroupViewTester::HandleContactViewEvent() assigning testVal for iSecondLastContactID\n"); test.Printf(KErrMsg); User::Invariant(); } test(testVal); --index; TRAP(err, testVal = (iGroupViewOne->ContactAtL(index).Id() == iThirdLastContactID) ); if (err) { _LIT(KErrMsg, "Contact view error in CGroupViewTester::HandleContactViewEvent() assigning testVal for iThirdLastContactID\n"); test.Printf(KErrMsg); User::Invariant(); } test(testVal); } // More events expected, don't run next test. return; } else { // Ignore all other events. return; } } case EAddItemToGroup: { // Break to run next test if this is the last expected event. The last // event is the group being added from the base view. The local view // removes and then adds the group id whenever the group changes. These // events are meaningless. TBool lastEvent = (&aView == iLocalView) && (aEvent.iEventType == TContactViewEvent::EItemAdded) && (aEvent.iContactId == iGroupOneId); if (lastEvent) { break; // Run next test. } // Verify contact has been added. if (aEvent.iEventType == TContactViewEvent::EItemAdded && &aView == iGroupViewOne) { // Check if contact was added. test( aEvent.iContactId == iIdAdded ); TInt index = iGroupViewOne->FindL( iIdAdded ); test (index != KErrNotFound); // More events expected, don't run next test. return; } else { // Ignore all other events. return; } } default: test( EFalse ); break; } // Run the next test. if (--iNumNotificationExpected <= 0) { NextTest(); iNumNotificationExpected = 0; } }
/** @SYMTestCaseID SYSLIB-CENTRALREPOSITORY-CT-1419 @SYMTestCaseDesc Test Coarse-Grained Caching functionality. @SYMTestPriority High @SYMTestActions Check correct initialization of the cache manager, expected caching behaviour after repository open/close, correct setting of cache size, correct functioning of the cache flush functionality, OOM recovery by cache flushing feature and cache Disable/Enable functionality @SYMTestExpectedResults The test must not fail. @SYMPREQ PREQ1192 @SYMTestStatus Defined @SYMDevelopedForRelease Symbian OS v9.3 @SYMAuthor Aleks Pamir */ void TRepositoryCacheManagerTester::FuncTestsL() { NextTest(_L( " @SYMTestCaseID:SYSLIB-CENTRALREPOSITORY-CT-1419 Initialize Cache Manager " )); iTestStepStage = 0; TEST( TServerResources::iCacheManager != 0 ); TEST( TServerResources::iCacheManager->iIdleRepositories.Count() == 0 ); TServerResources::iCacheManager->EnableCache(); NextTest( _L( "Cache Repository (Open/Close)" ) ); CacheRepositoryL(KUidCacheTestRepositorySm); if ((iStage == ESizeMin)||(iStage == EReallyWorstCase)) { TEST( TServerResources::iCacheManager->iIdleRepositories.Count() == 0 ); } else { TEST( TServerResources::iCacheManager->iIdleRepositories.Count() == 1 ); } NextTest( _L( "Check Cache Size" ) ); if ((iStage == ESizeMin)||(iStage == EReallyWorstCase)) { TEST( TServerResources::iCacheManager->iTotalCacheUsage == 0 ); } else { TEST( TServerResources::iCacheManager->iTotalCacheUsage > 0 ); } NextTest( _L( "Flush Cache" ) ); TServerResources::iCacheManager->FlushCache(); TEST( TServerResources::iCacheManager->iIdleRepositories.Count() == 0 ); TEST( TServerResources::iCacheManager->iTotalCacheUsage == 0 ); if (!iOOMTest) { // This test is excluded from generic OOM testing because // 1. It is trying to simulate OOM condition in a different way (fillingup the memory with // allocs) which makes it very tricky to work under normal OOM testing method // 2. Loading Lrg repository within OOM takes forever because there're many allocations, and // loading other repositories are already tested in other tests NextTest( _L( "Cache OOM Handling" ) ); // Fill cache with reps TInt totalsize; TInt cachedRepositoryCount = 0; totalsize = CacheRepositoryL(KUidCacheTestRepositorySm); if (TServerResources::iCacheManager->iCacheSize >= totalsize) { cachedRepositoryCount++; } totalsize += CacheRepositoryL(KUidCacheTestRepositorySm2); if (TServerResources::iCacheManager->iCacheSize >= totalsize) { cachedRepositoryCount++; } totalsize += CacheRepositoryL(KUidCacheTestRepositoryLrg); if (TServerResources::iCacheManager->iCacheSize >= totalsize) { cachedRepositoryCount++; } totalsize += CacheRepositoryL(KUidCacheTestRepositoryMed2); if (TServerResources::iCacheManager->iCacheSize >= totalsize) { cachedRepositoryCount++; } TInt res = KErrNone; // Fill Memory TInt popCount=0; RHeap& myHeap = User::Heap(); TInt firstSize = myHeap.Size(); TInt biggestBlock; TInt firstAvail = myHeap.Available(biggestBlock); while(ETrue) { // We need to really fill up the memory, because we want it to be really freed when we explictly // free it, so that when we alloc again there will be some free memory. Using debug allocfail // tools would have been too artifical for such a test TAny* dummy = User::Alloc(KMemoryFiller); if (dummy) { popCount++; TRAP( res, CleanupStack::PushL(dummy); CleanupStack::Pop(dummy);); if (res == KErrNoMemory) { // If we cannot allocate enough memory for the cleanupstack frame, we also deallocate // the last memory block. This is mandatory for the correct functioning of the // following test cases // Note when an object that is attempted to be PushL to the cleanupstack and it fails // the object will be freed automatically. popCount--; break; } else { CleanupStack::PushL(dummy); } } else {
void CGroupViewTester::RunL() { switch (iCurrentTest) { case ECreateLocalView: iLog.LogLine(_L("=== Create local view")); iLocalView=CContactLocalView::NewL(*this,iDb,iSortOrder_1,EContactAndGroups/*EContactsOnly*/); break; case EExerciseLocalView: iLog.LogLine(_L("=== Exercise local view")); ExceriseViewL(*iLocalView); NextTest(); break; case ECreateGroupOneView: { iLog.LogLine(_L("=== GroupOneView")); iGroupViewOne=CContactGroupView::NewL(iDb,*iLocalView,*this,iGroupOne->Id(),CContactGroupView::EShowContactsInGroup); } break; case ETestGroupOneView: { iLog.LogLine(_L("==== Exercise ETestGroupOneView")); TInt groupCount = iGroupOne->ItemsContained()->Count(); test(iGroupViewOne->CountL()==groupCount); const CContactIdArray* array= iGroupOne->ItemsContained(); for (TInt ii=0;ii<groupCount;ii++) { test(iGroupViewOne->FindL((*array)[ii])!=KErrNotFound); } TestGroupViewSortOrderL(*iGroupViewOne); NextTest(); } break; case ECreateGroupOneViewByName: { iLog.LogLine(_L("=== Create GroupOneView By Name")); iGroupViewOneByName=CContactGroupView::NewL(iDb,*iLocalView,*this,KGroupOneName,CContactGroupView::EShowContactsInGroup); } break; case ETestGroupOneViewByName: { iLog.LogLine(_L("==== Exercise ETestGroupOneView By Name")); TInt groupCount = iGroupOne->ItemsContained()->Count(); test(iGroupViewOneByName->CountL()==groupCount); const CContactIdArray* array= iGroupOne->ItemsContained(); for (TInt ii=0;ii<groupCount;ii++) { test(iGroupViewOneByName->FindL((*array)[ii])!=KErrNotFound); } TestGroupViewSortOrderL(*iGroupViewOneByName); NextTest(); break; } case ECreateGroupOneViewNotInGroup: { iLog.LogLine(_L("=== Create GroupOneViewNotInGroup By Name")); iGroupViewOneNotInGroup=CContactGroupView::NewL(iDb,*iLocalView,*this,KGroupOneName,CContactGroupView::EShowContactsNotInGroup); } break; case ETestGroupOneViewNotInGroup: { iLog.LogLine(_L("==== Exercise GroupOneViewNotInGroup By Name")); TInt totalContacts = iLocalView->CountL(); TInt totalNotInGroup = totalContacts - KNumContactsInGroupOne; test(iGroupViewOneNotInGroup->CountL()==totalNotInGroup); const CContactIdArray* array= iGroupOne->ItemsContained(); TInt groupCount = array->Count(); for (TInt ii=0;ii<groupCount;ii++) { test(iGroupViewOneNotInGroup->FindL((*array)[ii])==KErrNotFound); } TestGroupViewSortOrderL(*iGroupViewOneNotInGroup); NextTest(); break; } case EAllViewsOutOfBoundsAccess: { //Views depend on their underlying views being in a good state, however //as some base views are potentially in other processes they must be resistant //to out of date views accessesing out of bound members, views, should not //panic but should leave with KErrNotFound; //local view TInt err=0; iLog.LogLine(_L("=== Test views for out of bounds access")); TInt outCount = iGroupViewOneByName->CountL(); TRAP(err,iGroupViewOneByName->AtL(outCount)); test(err==KErrNotFound); TRAP(err,iGroupViewOneByName->ContactAtL(outCount)); test(err==KErrNotFound); NextTest(); } break; case ECreateUnfiledGroupView: { iLog.LogLine(_L("=== Create Unfiled group view")); iGroupViewUnfiled=CContactGroupView::NewL(iDb,*iLocalView,*this,KNullContactId,CContactGroupView::EShowContactsNotInAnyGroup); } break; case ETestUnfiledGroupView: { iLog.LogLine(_L("==== Exercise Unfiled group")); const TInt totalContacts = iLocalView->CountL(); const TInt totalUnfiled = totalContacts - KNumContactsInGroupOne - KNumGroups; test(iGroupViewUnfiled->CountL()==totalUnfiled); test(iGroupViewUnfiled->FindL(iGroupOneId)); TestGroupViewSortOrderL(*iGroupViewUnfiled); CRandomContactGenerator* generator = CRandomContactGenerator::NewL(); CleanupStack::PushL(generator); generator->SetDbL(iDb); generator->AddTypicalRandomContactL(); CleanupStack::PopAndDestroy(generator); iNumNotificationExpected=5; } break; case ETestUnfiledGroupAddition: { iLog.LogLine(_L("==== Exercise Unfiled group addition")); TInt revisedCount = iGroupViewUnfiled->CountL(); CContactIdArray* unfiled = iDb.UnfiledContactsL(); test(revisedCount == unfiled->Count()); delete unfiled; ExceriseViewL(*iGroupViewUnfiled); // Test that adding contact which currently forms part of // iGroupViewUnfiled to iGroupOne causes update of // iGroupViewUnfiled such that the contact no longer forms // part of iGroupViewUnfiled (i.e. by adding the contact to the // group it is no longer unfiled and should not appear in the // unfiled view). The update to iGroupViewUnfiled will not take // place until the view receives the change event so wait until the // view observer method HandleContactViewEvent() is called before // testing that the expected change to iGroupViewUnfiled has taken // place. iDb.AddContactToGroupL(KNumContacts,iGroupOne->Id()); // Expect (ESortOrderChanged x 4) + EGroupChanged + (EItemRemoved x // 4) + (EItemAdded x 4). iNumNotificationExpected=13; } break; case ENumTests: iLog.LogLine(_L("==== Group View Tests Finished, All Passed...\n")); CActiveScheduler::Stop(); delete this; break; default: ASSERT(EFalse); break; } }
void CGroupViewTester::HandleContactViewEvent(const CContactViewBase& aView,const TContactViewEvent& aEvent) { //LOGGING/////////////////////////////////////////////////////////////////////////////////// if(&aView == iLocalView) test.Printf(_L("LocalView ")); else if(&aView == iGroupViewOne) test.Printf(_L("GroupViewOne ")); else if(&aView == iGroupViewOneByName) test.Printf(_L("GroupViewOneByName ")); else if(&aView == iGroupViewOneNotInGroup) test.Printf(_L("GroupViewOneNotInGroup ")); else if(&aView == iGroupViewUnfiled) test.Printf(_L("GroupViewUnfiled ")); else test.Printf(_L("Er, none of the known views... ")); switch (aEvent.iEventType) { case TContactViewEvent::EUnavailable: test.Printf(_L("EUnavailable\n")); break; case TContactViewEvent::EReady: test.Printf(_L("EReady\n")); break; case TContactViewEvent::ESortOrderChanged: test.Printf(_L("ESortOrderChanged\n")); break; case TContactViewEvent::ESortError: test.Printf(_L("ESortError\n")); break; case TContactViewEvent::EServerError: test.Printf(_L("EServerError\n")); break; case TContactViewEvent::EIndexingError: test.Printf(_L("EIndexingError\n")); break; case TContactViewEvent::EItemAdded: test.Printf(_L("EItemAdded\n")); break; case TContactViewEvent::EItemRemoved: test.Printf(_L("EItemRemoved\n")); break; case TContactViewEvent::EGroupChanged: test.Printf(_L("EGroupChanged\n")); break; default: test.Printf(_L("Er, none of the known event types... ")); break; } //////////////////////////////////////////////////////////////////////////////////////////// switch (iCurrentTest) { case ECreateLocalView: test(iLocalView==&aView); test(aEvent.iEventType==TContactViewEvent::EReady); break; case EExerciseLocalView: test(ETrue); break; case ECreateGroupOneView: test(iGroupViewOne==&aView); test(aEvent.iEventType==TContactViewEvent::EReady); break; case ETestGroupOneView: test(EFalse); break; case ECreateGroupOneViewByName: test(iGroupViewOneByName==&aView); test(aEvent.iEventType==TContactViewEvent::EReady); break; case ETestGroupOneViewByName: test(EFalse); break; case ECreateGroupOneViewNotInGroup: test(iGroupViewOneNotInGroup==&aView); test(aEvent.iEventType==TContactViewEvent::EReady); break; case ETestGroupOneViewNotInGroup: test(EFalse); break; case EAllViewsOutOfBoundsAccess: test(EFalse); break; case ECreateUnfiledGroupView: test(iGroupViewUnfiled==&aView); test(aEvent.iEventType==TContactViewEvent::EReady); break; case ETestUnfiledGroupView: break; case ETestUnfiledGroupAddition: { // No point testing for each and every notification: the test will // pass for all notifications. if (iNumNotificationExpected > 1) { break; } // Test that adding contact which formed part of iGroupViewUnfiled // to iGroupOne caused update of iGroupViewUnfiled such that the // contact no longer forms part of iGroupViewUnfiled (i.e. by adding // the contact to the group it is no longer unfiled is not a member // of the unfiled view). TInt ret(KErrNone); TRAPD(err1, ret = iGroupViewUnfiled->FindL(KNumContacts) ); test(err1 == KErrNone && ret == KErrNotFound); // Double check - make sure the number of items in the unfiled // group view agrees with the number of unfiled items reported by // the database. TInt groupViewUnfiledCount(0); TRAPD(err2, groupViewUnfiledCount = iGroupViewUnfiled->CountL() ); CContactIdArray* dbUnfiled = NULL; TRAPD(err3, dbUnfiled = iDb.UnfiledContactsL() ); test(err2 == KErrNone && err3 == KErrNone && groupViewUnfiledCount==dbUnfiled->Count() ); delete dbUnfiled; } break; case ENumTests: default: test(EFalse); break; } if (--iNumNotificationExpected <= 0) { iNumNotificationExpected=0; NextTest(); } }
//-------------------- // Result & clean //-------------------- void DLCSystemTests::AllDLCCompleted() { NextTest(); }