messagingfw/msgsrvnstore/server/test/Unittef/src/t_msv_cache_indextableentry_step.cpp
equal
deleted
inserted
replaced
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() |