messagingfw/msgsrvnstore/server/test/Unittef/src/t_msv_cache_indextableentry_step.cpp
branchRCL_3
changeset 23 d51193d814ea
parent 22 d2c4c66342f3
equal deleted inserted replaced
22:d2c4c66342f3 23:d51193d814ea
     1 // Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
     1 // Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
     2 // All rights reserved.
     2 // All rights reserved.
     3 // This component and the accompanying materials are made available
     3 // This component and the accompanying materials are made available
     4 // under the terms of "Eclipse Public License v1.0"
     4 // under the terms of "Eclipse Public License v1.0"
     5 // which accompanies this distribution, and is available
     5 // which accompanies this distribution, and is available
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
   415 		MY_ASSERT_TRUE(iIndexTableEntry->EntryExists(entries[index]->GetId()));
   415 		MY_ASSERT_TRUE(iIndexTableEntry->EntryExists(entries[index]->GetId()));
   416 		}
   416 		}
   417 	MY_ASSERT_EQUALS(iIndexTableEntry->Size(), aCount);
   417 	MY_ASSERT_EQUALS(iIndexTableEntry->Size(), aCount);
   418 	for(index = aCount; index < bulkCount; ++index) //manually release remaining entries
   418 	for(index = aCount; index < bulkCount; ++index) //manually release remaining entries
   419 		{
   419 		{
   420 		CMsvEntryFreePool::Instance()->ReleaseEntryL(entries[index]);
   420 		CMsvEntryFreePool::Instance()->ReleaseEntry(entries[index]);
   421 		}
   421 		}
   422 	
   422 	
   423 	//---aCount > aEntries.Count()
   423 	//---aCount > aEntries.Count()
   424 	iIndexTableEntry->ReleaseBlock(ETrue);
   424 	iIndexTableEntry->ReleaseBlock(ETrue);
   425 	iEntryPointer->Reset();
   425 	iEntryPointer->Reset();
   476 	for(index = aInitIndex; index < aCount+aInitIndex; ++index)
   476 	for(index = aInitIndex; index < aCount+aInitIndex; ++index)
   477 		{
   477 		{
   478 		MY_ASSERT_TRUE(iIndexTableEntry->EntryExists(entries[index]->GetId()));
   478 		MY_ASSERT_TRUE(iIndexTableEntry->EntryExists(entries[index]->GetId()));
   479 		}
   479 		}
   480 	MY_ASSERT_EQUALS(iIndexTableEntry->Size(), aCount);
   480 	MY_ASSERT_EQUALS(iIndexTableEntry->Size(), aCount);
   481 	CMsvEntryFreePool::Instance()->ReleaseEntryL(entries[0]);
   481 	CMsvEntryFreePool::Instance()->ReleaseEntry(entries[0]);
   482 	CMsvEntryFreePool::Instance()->ReleaseEntryL(entries[4]);
   482 	CMsvEntryFreePool::Instance()->ReleaseEntry(entries[4]);
   483 		
   483 		
   484 	//---out of bounds index
   484 	//---out of bounds index
   485 	iIndexTableEntry->ReleaseBlock(ETrue);
   485 	iIndexTableEntry->ReleaseBlock(ETrue);
   486 	iEntryPointer->Reset();
   486 	iEntryPointer->Reset();
   487 	entries.Reset();
   487 	entries.Reset();
   509 		MY_ASSERT_FALSE(iIndexTableEntry->EntryExists(entries[index]->GetId()));
   509 		MY_ASSERT_FALSE(iIndexTableEntry->EntryExists(entries[index]->GetId()));
   510 		}
   510 		}
   511 	MY_ASSERT_EQUALS(iIndexTableEntry->Size(), 0);
   511 	MY_ASSERT_EQUALS(iIndexTableEntry->Size(), 0);
   512 	for(index = 0; index < bulkCount; ++index)
   512 	for(index = 0; index < bulkCount; ++index)
   513 		{
   513 		{
   514 		CMsvEntryFreePool::Instance()->ReleaseEntryL(entries[index]);
   514 		CMsvEntryFreePool::Instance()->ReleaseEntry(entries[index]);
   515 		}
   515 		}
   516 		
   516 		
   517 
   517 
   518 	
   518 	
   519 	// T2:	block is NULL. add only immediate children.
   519 	// T2:	block is NULL. add only immediate children.
   906 	TRAP(err, iIndexTableEntry->DeleteEntryL(entryB->GetId(), parentId));
   906 	TRAP(err, iIndexTableEntry->DeleteEntryL(entryB->GetId(), parentId));
   907 	MY_ASSERT_EQUALS(err, KErrNone);
   907 	MY_ASSERT_EQUALS(err, KErrNone);
   908 	oEntries.Reset();
   908 	oEntries.Reset();
   909 	TRAP_IGNORE(iIndexTableEntry->GetChildrenL(parent->GetId(), oEntries));
   909 	TRAP_IGNORE(iIndexTableEntry->GetChildrenL(parent->GetId(), oEntries));
   910 	MY_ASSERT_EQUALS(oEntries.Count(), 11); //entryA + 10 others
   910 	MY_ASSERT_EQUALS(oEntries.Count(), 11); //entryA + 10 others
   911 	CMsvEntryFreePool::Instance()->ReleaseEntryL(nonimmediateParent);
   911 	CMsvEntryFreePool::Instance()->ReleaseEntry(nonimmediateParent);
   912 	
   912 	
   913 	
   913 	
   914 	// t4. only grandchildren are present in the block
   914 	// t4. only grandchildren are present in the block
   915 	iIndexTableEntry->ReleaseBlock(ETrue);
   915 	iIndexTableEntry->ReleaseBlock(ETrue);
   916 	entries.Reset(); 
   916 	entries.Reset(); 
   947 	oEntries.Reset();
   947 	oEntries.Reset();
   948 	TRAP(err, iIndexTableEntry->GetChildrenL(parent->GetId(), oEntries));
   948 	TRAP(err, iIndexTableEntry->GetChildrenL(parent->GetId(), oEntries));
   949 	MY_ASSERT_EQUALS(err, KErrNone);
   949 	MY_ASSERT_EQUALS(err, KErrNone);
   950 	MY_ASSERT_EQUALS(oEntries.Count(), 0);
   950 	MY_ASSERT_EQUALS(oEntries.Count(), 0);
   951 	
   951 	
   952 	CMsvEntryFreePool::Instance()->ReleaseEntryL(nonimmediateParent);
   952 	CMsvEntryFreePool::Instance()->ReleaseEntry(nonimmediateParent);
   953 	CMsvEntryFreePool::Instance()->ReleaseEntryL(parent);
   953 	CMsvEntryFreePool::Instance()->ReleaseEntry(parent);
   954 	oEntries.Close();
   954 	oEntries.Close();
   955 	tmsvEntries.Close();
   955 	tmsvEntries.Close();
   956 	entries.Close();	
   956 	entries.Close();	
   957 	}
   957 	}
   958 
   958 
  1042  	
  1042  	
  1043  	entryA->LockEntry();
  1043  	entryA->LockEntry();
  1044  	TRAP(err, iIndexTableEntry->DeleteEntryL(entryA->GetId(), parentId));
  1044  	TRAP(err, iIndexTableEntry->DeleteEntryL(entryA->GetId(), parentId));
  1045  	MY_ASSERT_EQUALS(err, KErrNotFound);
  1045  	MY_ASSERT_EQUALS(err, KErrNotFound);
  1046  	
  1046  	
  1047  	CMsvEntryFreePool::Instance()->ReleaseEntryL(parent);
  1047  	CMsvEntryFreePool::Instance()->ReleaseEntry(parent);
  1048  	CMsvEntryFreePool::Instance()->ReleaseEntryL(entryA);
  1048  	CMsvEntryFreePool::Instance()->ReleaseEntry(entryA);
  1049  	CMsvEntryFreePool::Instance()->ReleaseEntryL(entryB);
  1049  	CMsvEntryFreePool::Instance()->ReleaseEntry(entryB);
  1050  	
  1050  	
  1051  	
  1051  	
  1052  	// t6. bulk additions and deletions
  1052  	// t6. bulk additions and deletions
  1053  	TRAP_IGNORE(parent = CMsvEntryFreePool::Instance()->EntryL());
  1053  	TRAP_IGNORE(parent = CMsvEntryFreePool::Instance()->EntryL());
  1054 	parent->Entry().SetId(++id);
  1054 	parent->Entry().SetId(++id);
  1082 		timeAfter = iIndexTableEntry->AccessTime();
  1082 		timeAfter = iIndexTableEntry->AccessTime();
  1083  		ASSERT_TRUE(timeAfter != timeBefore);
  1083  		ASSERT_TRUE(timeAfter != timeBefore);
  1084 		}
  1084 		}
  1085 	MY_ASSERT_TRUE(iIndexTableEntry->BlockPtr() == NULL);
  1085 	MY_ASSERT_TRUE(iIndexTableEntry->BlockPtr() == NULL);
  1086 	
  1086 	
  1087 	CMsvEntryFreePool::Instance()->ReleaseEntryL(parent);
  1087 	CMsvEntryFreePool::Instance()->ReleaseEntry(parent);
  1088 	tmsvEntries.Close();
  1088 	tmsvEntries.Close();
  1089 	entries.Close();
  1089 	entries.Close();
  1090 	}
  1090 	}
  1091 
  1091 
  1092 
  1092 
  1140 	err = oEntries[1]->GetId() - oEntries[2]->GetId(); //successive entries
  1140 	err = oEntries[1]->GetId() - oEntries[2]->GetId(); //successive entries
  1141 	MY_ASSERT_TRUE(err < 0);
  1141 	MY_ASSERT_TRUE(err < 0);
  1142 	err = oEntries[0]->GetId() - oEntries[1]->GetId(); //successive entries
  1142 	err = oEntries[0]->GetId() - oEntries[1]->GetId(); //successive entries
  1143 	MY_ASSERT_TRUE(err < 0);
  1143 	MY_ASSERT_TRUE(err < 0);
  1144 	
  1144 	
  1145 	CMsvEntryFreePool::Instance()->ReleaseEntryL(parent);
  1145 	CMsvEntryFreePool::Instance()->ReleaseEntry(parent);
  1146 	oEntries.Close();
  1146 	oEntries.Close();
  1147 	}
  1147 	}
  1148 
  1148 
  1149 
  1149 
  1150 void CTestIndexTableEntry::TestReleaseBlock()
  1150 void CTestIndexTableEntry::TestReleaseBlock()