void CConcurrentNotifierStep::SpeedDialTestL() { INFO_PRINTF1(KTest8); SetSharedTextL(KSharedNextTest, KSingleCharacter, ETrue); iWaiting = ETrue; iMyActive->Activate(); TContactItemId cid = iIterate->PreviousL();//start at last contact, so that other tests are not corrupted OpenL( cid ); TInt fieldId=iFields->Find(KUidContactFieldPhoneNumber); iSpeedPosition = 1; iContactsDatabase->SetFieldAsSpeedDialL(*iContactItem, fieldId, iSpeedPosition); CloseL( EFalse ); OpenL( cid ); iSpeedPosition2 = 2; iContactsDatabase->SetFieldAsSpeedDialL(*iContactItem, fieldId, iSpeedPosition2); CloseL( EFalse ); AddEventL( EContactDbObserverEventSpeedDialsChanged ); AddContactL( cid ); AddEventL( EContactDbObserverEventSpeedDialsChanged ); AddContactL( cid ); AddEventL( EContactDbObserverEventSpeedDialsChanged ); AddContactL( cid ); SetMessageCountL(); iStart.UniversalTime(); }
void CTransactionsStep::CreateCommitTransactionTestL(const TBool aRevert) { iContacts = 0; CPerformanceFunctionalityBase::InitializeL(); CContactItemFieldSet& templateFields = iTemplate->CardFields(); TInt fieldsCount = templateFields.Count() - 1; iContactsDatabase->DatabaseBeginLC(EFalse); iContacts = 2; TInt k = 0; CContactCard* contact = CContactCard::NewLC(iTemplate); for(; k < iContacts; k++) { iIterate->AddL( iContactsDatabase->doAddNewContactL(*contact,EFalse,ETrue) ); } CleanupStack::PopAndDestroy(contact); EndTransactionL(aRevert); if(aRevert) { iIterate->Reset(); TInt err = KErrNone; TESTPRINT( iContactsDatabase->CountL() == 0 ); for( k = 0; k < iContacts; ++k) { TRAP(err, ReadL( iIterate->NextL() ) ); TESTPRINTI( KErrNotFound == err, k ); CloseL( ETrue ); } } else { iIterate->Reset(); TESTPRINT( ( iContactsDatabase->CountL() == iContacts ) ); for(k = 0; k < iContacts; ++k) { ReadL( iIterate->NextL() ); TESTPRINTI( iFields->Count() == fieldsCount, k ); TESTPRINTI( CheckAllFieldsL(KNullDesC), k ); CloseL( ETrue ); } } }
/** either release resource after countdown has reached the necessary value or timeout test if countdown is not started after the timeout period has passed */ void CConcurrentTimeOutNotifierStep::ProcessWaitL(const TBool aTransaction) { StartCountdownL(); iEnd.UniversalTime(); const TInt64 KLockTime = iEnd.MicroSecondsFrom( iStart ).Int64(); const TInt64 KTestTime = iEnd.MicroSecondsFrom( iTestStart ).Int64(); if( iCountdown && ( KLockTime >= ((iSeconds - KTimeDiff) * KOneSecond) ) ) { iWaiting = EFalse; iCountdown = EFalse; if(aTransaction) { iContactsDatabase->DatabaseCommitL( EFalse );//unlock database } else { CloseL( ETrue );//unlock contact } ++iNextTest; SetSharedTextL(KSharedNextTest, KDoubleChar, EFalse); } else if( KTestTime > KTimeout ) //test has timed out { _LIT(KTimedOut,"Notifier test %d has timed out"); ERR_PRINTF2(KTimedOut, ++iNextTest); iWaiting = EFalse; iCountdown = EFalse; TESTPRINT( EFalse ); SetSharedTextL(KSharedNextTest, KDoubleChar, EFalse); iNextTest = iTests->Count(); } //else test is not complete and has not timed out... continue waiting }
void CTransactionsStep::NestedTransactionTestL() { TContactItemId cid = iIterate->NextL(); iContactsDatabase->DatabaseBeginLC(EFalse); iContactsDatabase->DatabaseBeginLC(ETrue); OpenL(cid); SetFieldL(1, GetFieldL(KStringFields, KField, 1) ); CommitL(ETrue); iContactsDatabase->DatabaseCommitLP(ETrue); OpenL(cid); SetFieldL(2, GetFieldL(KStringFields, KField, 2) ); CommitL(ETrue); EndTransactionL(ETrue); iIterate->Reset(); TInt err = KErrNone; TInt k = 0; TESTPRINT( iContactsDatabase->CountL() == iContacts ); for( k = 0; k < iContacts; ++k) { TRAP(err, ReadL( iIterate->NextL() ) ); TESTPRINTI( KErrNone == err, k ); TESTPRINTI( CheckAllFieldsL(KNullDesC), k ); CloseL( ETrue ); } }
/**initilize called within __UHEAP_MARK/__UHEAP_MARKEND of doTestStepL, so that all relevant memmory de/allocation is in scope*/ void CPerformanceFunctionalityBase::InitializeL() { CLEAR(iContactsDatabase); iIterate->Clear(); if( iConcurrent ) { iContactsDatabase = CContactDatabase::OpenL(); //open database created in earlier step for(TInt k = 1; k<=iContacts; k++) { TRAPD( err, ReadL(k)); CloseL( ETrue ); if( KErrNone == err ) { iIterate->AddL( k ); } } if( NULL == iTemplate ) { iTemplate = static_cast< CContactTemplate* >( iContactsDatabase->ReadContactL( iContactsDatabase->TemplateId(), *iViewAll ) ); } } else { iContactsDatabase = CContactDatabase::ReplaceL();//create clean/fresh database for all tests if( NULL == iTemplate ) { iTemplate = static_cast< CContactTemplate* >( iContactsDatabase->ReadContactL( iContactsDatabase->TemplateId(), *iViewAll ) ); } AddEmptyContactsL(iContacts, EFalse); } }
void CTransactionsStep::UpdateCommitTransactionTestL(const TBool aRevert) { CPerformanceFunctionalityBase::InitializeL(); const TContactItemId cid = iIterate->NextL(); const TContactItemId cid2 = iIterate->NextL(); iContactsDatabase->DatabaseBeginLC(EFalse); OpenL( cid ); SetAllFieldsL( GetNextFieldL(KStringFields, KField, ETrue) ); CommitL(ETrue); EndTransactionL(aRevert); iContactsDatabase->DatabaseBeginLC(EFalse); ReadL( cid2 ); SetAllFieldsL( GetNextFieldL(KStringFields, KField, EFalse) ); iContactsDatabase->UpdateContactLC(cid2, iContactItem); CleanupStack::PopAndDestroy(); CloseL( ETrue ); EndTransactionL(aRevert); if(aRevert) { iIterate->Reset(); TInt i = 0; for(; i < iContacts; ++i) { ReadL( iIterate->NextL() ); TESTPRINTI( CheckAllFieldsL(KNullDesC), i ); CloseL( ETrue ); } } else { ReadL( cid ); TESTPRINT( CheckAllFieldsL( GetNextFieldL(KStringFields, KField, ETrue) ) ); CloseL( ETrue ); ReadL( cid2 ); TESTPRINT( CheckAllFieldsL( GetNextFieldL(KStringFields, KField, EFalse) ) ); CloseL( ETrue ); } }
void CTransactionsStep::DeleteCommitTransactionTestL(const TBool aRevert) { iContacts = 10; CPerformanceFunctionalityBase::InitializeL(); iContactsDatabase->DatabaseBeginLC(EFalse); TInt k = 0; for(; k < iContacts; k++) { iContactsDatabase->doDeleteContactL(iIterate->NextL(), ETrue, ETrue); } EndTransactionL(aRevert); if(aRevert) { TESTPRINT( iContactsDatabase->CountL() == iContacts ); iIterate->Reset(); TInt err = KErrNone; for(k = 0; k < iContacts; ++k) { TRAP(err, ReadL( iIterate->NextL() ) ); TESTPRINTI( KErrNone == err, k ); TESTPRINTI( CheckAllFieldsL( KNullDesC ), k ); CloseL( ETrue ); } } else { TESTPRINT( iContactsDatabase->CountL() == 0 ); iIterate->Reset(); TInt err = KErrNone; for(k = 0; k < iContacts; ++k) { TRAP(err, ReadL( iIterate->NextL() ) ); TESTPRINTI( KErrNotFound == err, k ); CloseL( ETrue ); } iIterate->Clear(); } }
void CTransactionsStep::EmptyCommitTransactionTestL(const TBool aRevert) { CPerformanceFunctionalityBase::InitializeL(); iContactsDatabase->DatabaseBeginLC(EFalse); EndTransactionL(aRevert); iContactsDatabase->DatabaseBeginLC(EFalse); ReadL( iIterate->NextL() ); EndTransactionL(aRevert); CloseL( ETrue ); iIterate->Reset(); TInt i = 0; for(; i < iContacts; ++i) { ReadL( iIterate->NextL() ); TESTPRINTI( CheckAllFieldsL(KNullDesC), i ); CloseL( ETrue ); } }
void CConcurrentNotifierStep::ChangeOwnCardTestL() { INFO_PRINTF1(KTest14); SetSharedTextL(KSharedNextTest, KSingleCharacter, ETrue); iWaiting = ETrue; iMyActive->Activate(); TContactItemId cid = iIterate->NextL(); OpenL( cid ); iContactsDatabase->SetOwnCardL(*iContactItem); CloseL( ETrue ); AddEventL( EContactDbObserverEventOwnCardChanged ); AddContactL( cid ); SetMessageCountL(); iStart.UniversalTime(); }
void CConcurrentNotifierStep::OwnCardDeleteTestL() { INFO_PRINTF1(KTest9); SetSharedTextL(KSharedNextTest, KSingleCharacter, ETrue); iWaiting = ETrue; iMyActive->Activate(); TContactItemId cid = iContactsDatabase->OwnCardId(); ReadL( cid ); CloseL( EFalse ); DeleteContactL( cid, EFalse ); AddEventL( EContactDbObserverEventOwnCardDeleted ); AddContactL( cid); SetMessageCountL(); iStart.UniversalTime(); }
void CConcurrentNotifierStep::UpdateTestL() { INFO_PRINTF1(KTest1); SetSharedTextL(KSharedNextTest,KSingleCharacter , ETrue); iWaiting = ETrue; TContactItemId cid = iIterate->NextL(); ReadL( cid ); iContactsDatabase->UpdateContactLC( cid, iContactItem); CleanupStack::PopAndDestroy(); CloseL( ETrue ); AddEventL(EContactDbObserverEventContactChanged); AddContactL( cid ); SetMessageCountL(); iStart.UniversalTime(); }
void CConcurrentNotifierStep::MultipleChangeTransactionTestL() { if( iRevert ) { INFO_PRINTF1(KTest112); } else { INFO_PRINTF1(KTest11); } SetSharedTextL(KSharedNextTest, KSingleCharacter, ETrue); iWaiting = ETrue; TContactItemId cid = iIterate->NextL(); iContactsDatabase->DatabaseBeginLC(EFalse); OpenL( cid ); CommitL( ETrue ); AddEventL(EContactDbObserverEventContactChanged); AddContactL( cid ); cid = iIterate->NextL(); ReadL( cid ); iContactsDatabase->UpdateContactLC( cid, iContactItem); CleanupStack::PopAndDestroy(); CloseL( ETrue ); AddEventL(EContactDbObserverEventContactChanged); AddContactL( cid ); CContactCard* contact = CContactCard::NewLC(iTemplate); cid = iContactsDatabase->doAddNewContactL(*contact, EFalse, ETrue); if(!iRevert) { iIterate->AddL( cid ); } CleanupStack::PopAndDestroy(contact); AddEventL(EContactDbObserverEventContactAdded); AddContactL( cid ); cid = iIterate->NextL(); DeleteContactL( cid, ETrue ); AddEventL(EContactDbObserverEventContactDeleted); AddContactL( cid ); EndTransactionL(); SetMessageCountL(); iStart.UniversalTime(); }
void ES_RemoteDebugConnection::ReceiveMoreL() { while (TRUE) { if (!ReceiveDataL()) return; if (!receive_message) { if (receive_buffer_used < 12) return; receive_tail = TRUE; receive_item = receive_item_offset = 0; if (!ES_RemoteStringIsHex(receive_buffer, 12)) { CloseL(); return; } receive_message_size = ES_RemoteStringToUnsigned8(receive_buffer); receive_message_length = ES_RemoteStringToUnsigned4(receive_buffer + 8); receive_message_buffer = new (ELeave) char[receive_message_size]; receive_message = new (ELeave) ES_DebugMessage; receive_buffer_used = 0; receive_message_received = 0; continue; } else if (receive_message_received < receive_message_size) continue; else { receive_message->ParseL(receive_message_buffer, receive_message_size, receive_message_length); LEAVE_IF_ERROR(Received(receive_message)); delete[] receive_message_buffer; receive_message_buffer = NULL; receive_message = NULL; } } }
/** checks that all blobs in aCid match aBuf */ TBool CRandomBlobStep::CheckAllBlobsL(const TContactItemId aCid, const HBufC8 &aBuf) { TBool SingleTestResult = EFalse; TBool OverallTestResult = EFalse; ReadL( aCid ); TInt length = iFields->Count(); for( TInt i = 0; i < length; ++i ) { if( (*iFields)[i].StorageType() == KStorageTypeStore ) { TDesC8 *thething = (*iFields)[i].StoreStorage()->Thing(); TESTPRINTI( SingleTestResult = ( thething != NULL ), i ); OverallTestResult = SingleTestResult; TESTPRINTI( SingleTestResult = ( (*iFields)[i].StoreStorage()->Thing()->Compare(aBuf) == 0 ), i ); OverallTestResult = OverallTestResult && SingleTestResult; } } CloseL( EFalse ); return OverallTestResult; }
void CTransactionsStep::MultipleCommitTestL(const TBool aTrans) { iContacts = 40; CPerformanceFunctionalityBase::InitializeL(); if(aTrans) { iContactsDatabase->DatabaseBeginLC(EFalse); } MultipleCommitL(aTrans); if(aTrans) { EndTransactionL(EFalse); } TInt k = 0; iIterate->Reset(); for(; k < iContacts; ++k) { ReadL( iIterate->NextL() ); TESTPRINTI( CheckAllFieldsL( GetNextFieldL(KStringFields, KField, 0 == k ) ), k ); CloseL( ETrue ); } }
void CTransactionsStep::ManyUpdateCommitTransactionTestL( const TBool aRevert ) { iContacts = 1000; CPerformanceFunctionalityBase::InitializeL(); RCntList backuplist; backuplist.CopyL( *iIterate ); iContactsDatabase->DatabaseBeginLC(EFalse); TInt added = 0; TInt deleted = 0; TInt updated = 0; TInt k = 0; for(; k < iContacts; k++) { switch( k % KNumCUDOperations ) { case ( EOpen ): { OpenL( iIterate->NextL() ); //if setting first contact read first field from stringfields section //otherwise read next field in list of fields stored in ini file secion SetAllFieldsL( GetNextFieldL(KStringFields, KField, 0 == k ) ); CommitL(ETrue); ++updated; } break; case ( EUpdate ): { TContactItemId cid = iIterate->NextL(); ReadL( cid ); //if setting first contact read first field from stringfields section //otherwise read next field in list of fields stored in ini file secion SetAllFieldsL( GetNextFieldL(KStringFields, KField, 0 == k ) ); iContactsDatabase->UpdateContactLC(cid, iContactItem); CleanupStack::PopAndDestroy(); CloseL( ETrue ); ++updated; } break; case ( EAddDelete ): { DeleteContactL( iIterate->NextL(), ETrue ); //iterator position is shifted back, so that next nextL call is correct iIterate->PreviousL(); ++deleted; //Empty contact is appended to the database, //Contact id is stored at the end of iterator list not at current iterator position AddEmptyContactsL( 1, ETrue ); ++added; } break; default: { _LIT(KInvalidTest, "Invalid Case"); User::Panic(KInvalidTest, 555); } break; } } EndTransactionL(aRevert); TESTPRINT( iContactsDatabase->CountL() == iContacts ); CContactItemFieldSet& templateFields = iTemplate->CardFields(); TInt fieldsCount = templateFields.Count() - 1; if(aRevert) { //if transaction is reverted / rolledback, all contacts should be //unchanged, i.e. they should all contain empty fields only backuplist.Reset(); TInt err = KErrNone; for(k = 0; k < iContacts; ++k) { TRAP(err, ReadL( backuplist.NextL() ) ); TESTPRINTI( KErrNone == err, k ); TESTPRINTI( CheckAllFieldsL( KNullDesC ), k ); CloseL( ETrue ); } } else { iIterate->Reset(); //all updated contact should contain the appropriated updated field value for(k = 0; k < updated; ++k) { ReadL( iIterate->NextL() ); TESTPRINTI(iFields->Count() == fieldsCount, k); //if reading first contact read first field from stringfields section //otherwise read next field in list of fields stored in ini file secion TESTPRINTI( CheckAllFieldsL( GetNextFieldL(KStringFields, KField, 0 == k ) ), k ); CloseL( ETrue ); } //all newly added contacts, should contain empty fields only. for(k = 0; k < added; ++k) { ReadL( iIterate->NextL() ); TESTPRINTI( iFields->Count() == fieldsCount, k); TESTPRINTI( CheckAllFieldsL( KNullDesC ), k); CloseL( ETrue ); } } }
/* virtual */ void ES_RemoteDebugConnection::OnSocketClosed(OpSocket* socket) { TRAPD(status, CloseL()); OpStatus::Ignore(status); }