24
24
#include < vector>
25
25
26
26
#import " Firestore/Example/Tests/Util/FSTHelpers.h"
27
- #import " Firestore/Source/Local/FSTLRUGarbageCollector.h"
28
27
#import " Firestore/Source/Local/FSTPersistence.h"
29
28
#import " Firestore/Source/Util/FSTClasses.h"
30
29
31
30
#include " Firestore/core/include/firebase/firestore/timestamp.h"
32
31
#include " Firestore/core/src/firebase/firestore/auth/user.h"
33
32
#include " Firestore/core/src/firebase/firestore/core/query.h"
33
+ #include " Firestore/core/src/firebase/firestore/local/lru_garbage_collector.h"
34
34
#include " Firestore/core/src/firebase/firestore/local/mutation_queue.h"
35
35
#include " Firestore/core/src/firebase/firestore/local/query_cache.h"
36
36
#include " Firestore/core/src/firebase/firestore/local/query_data.h"
48
48
namespace testutil = firebase::firestore::testutil;
49
49
using firebase::Timestamp;
50
50
using firebase::firestore::auth::User;
51
+ using firebase::firestore::local::LruGarbageCollector;
51
52
using firebase::firestore::local::LruParams;
52
53
using firebase::firestore::local::LruResults;
53
54
using firebase::firestore::local::MutationQueue;
@@ -84,7 +85,7 @@ @implementation FSTLRUGarbageCollectorTests {
84
85
RemoteDocumentCache *_documentCache;
85
86
MutationQueue *_mutationQueue;
86
87
id <FSTLRUDelegate> _lruDelegate;
87
- FSTLRUGarbageCollector *_gc;
88
+ LruGarbageCollector *_gc;
88
89
ListenSequenceNumber _initialSequenceNumber;
89
90
User _user;
90
91
ReferenceSet _additionalReferences;
@@ -140,28 +141,26 @@ - (void)expectSentinelRemoved:(const DocumentKey &)key {
140
141
141
142
- (ListenSequenceNumber)sequenceNumberForQueryCount : (int )queryCount {
142
143
return _persistence.run (
143
- " gc" , [&]() -> ListenSequenceNumber { return [ _gc sequenceNumberForQueryCount: queryCount] ; });
144
+ " gc" , [&]() -> ListenSequenceNumber { return _gc-> SequenceNumberForQueryCount ( queryCount) ; });
144
145
}
145
146
146
147
- (int )queryCountForPercentile : (int )percentile {
147
148
return _persistence.run (" query count" ,
148
- [&]() -> int { return [ _gc queryCountForPercentile: percentile] ; });
149
+ [&]() -> int { return _gc-> QueryCountForPercentile ( percentile) ; });
149
150
}
150
151
151
152
- (int )removeQueriesThroughSequenceNumber : (ListenSequenceNumber)sequenceNumber
152
153
liveQueries :
153
154
(const std::unordered_map<TargetId, QueryData> &)liveQueries {
154
- return _persistence.run (" gc" , [&]() -> int {
155
- return [_gc removeQueriesUpThroughSequenceNumber: sequenceNumber liveQueries: liveQueries];
156
- });
155
+ return _persistence.run (" gc" ,
156
+ [&]() -> int { return _gc->RemoveTargets (sequenceNumber, liveQueries); });
157
157
}
158
158
159
159
// Removes documents that are not part of a target or a mutation and have a sequence number
160
160
// less than or equal to the given sequence number.
161
161
- (int )removeOrphanedDocumentsThroughSequenceNumber : (ListenSequenceNumber)sequenceNumber {
162
- return _persistence.run (" gc" , [&]() -> int {
163
- return [_gc removeOrphanedDocumentsThroughSequenceNumber: sequenceNumber];
164
- });
162
+ return _persistence.run (" gc" ,
163
+ [&]() -> int { return _gc->RemoveOrphanedDocuments (sequenceNumber); });
165
164
}
166
165
167
166
- (QueryData)nextTestQuery {
@@ -284,7 +283,7 @@ - (void)testSequenceNumberNoQueries {
284
283
285
284
// No queries... should get invalid sequence number (-1)
286
285
[self newTestResources ];
287
- XCTAssertEqual (kFSTListenSequenceNumberInvalid , [self sequenceNumberForQueryCount: 0 ]);
286
+ XCTAssertEqual (local:: kListenSequenceNumberInvalid , [self sequenceNumberForQueryCount: 0 ]);
288
287
[_persistence shutdown ];
289
288
}
290
289
@@ -672,7 +671,7 @@ - (void)testGetsSize {
672
671
673
672
[self newTestResources ];
674
673
675
- size_t initialSize = [ _gc byteSize ] ;
674
+ size_t initialSize = _gc-> CalculateByteSize () ;
676
675
677
676
_persistence.run (" fill cache" , [&]() {
678
677
// Simulate a bunch of ack'd mutations
@@ -682,7 +681,7 @@ - (void)testGetsSize {
682
681
}
683
682
});
684
683
685
- size_t finalSize = [ _gc byteSize ] ;
684
+ size_t finalSize = _gc-> CalculateByteSize () ;
686
685
XCTAssertGreaterThan (finalSize, initialSize);
687
686
688
687
[_persistence shutdown ];
@@ -702,9 +701,8 @@ - (void)testDisabled {
702
701
}
703
702
});
704
703
705
- LruResults results =
706
- _persistence.run (" GC" , [&]() -> LruResults { return [_gc collectWithLiveTargets: {}]; });
707
- XCTAssertFalse (results.didRun );
704
+ LruResults results = _persistence.run (" GC" , [&]() -> LruResults { return _gc->Collect ({}); });
705
+ XCTAssertFalse (results.did_run );
708
706
709
707
[_persistence shutdown ];
710
708
}
@@ -723,14 +721,13 @@ - (void)testCacheTooSmall {
723
721
}
724
722
});
725
723
726
- int cacheSize = (int )[ _gc byteSize ] ;
724
+ int cacheSize = (int )_gc-> CalculateByteSize () ;
727
725
// Verify that we don't have enough in our cache to warrant collection
728
- XCTAssertLessThan (cacheSize, params.minBytesThreshold );
726
+ XCTAssertLessThan (cacheSize, params.min_bytes_threshold );
729
727
730
728
// Try collection and verify that it didn't run
731
- LruResults results =
732
- _persistence.run (" GC" , [&]() -> LruResults { return [_gc collectWithLiveTargets: {}]; });
733
- XCTAssertFalse (results.didRun );
729
+ LruResults results = _persistence.run (" GC" , [&]() -> LruResults { return _gc->Collect ({}); });
730
+ XCTAssertFalse (results.did_run );
734
731
735
732
[_persistence shutdown ];
736
733
}
@@ -740,7 +737,7 @@ - (void)testGCRan {
740
737
741
738
LruParams params = LruParams::Default ();
742
739
// Set a low threshold so we will definitely run
743
- params.minBytesThreshold = 100 ;
740
+ params.min_bytes_threshold = 100 ;
744
741
[self newTestResourcesWithLruParams: params];
745
742
746
743
// Add 100 targets and 10 documents to each
@@ -757,14 +754,13 @@ - (void)testGCRan {
757
754
}
758
755
759
756
// Mark nothing as live, so everything is eligible.
760
- LruResults results =
761
- _persistence.run (" GC" , [&]() -> LruResults { return [_gc collectWithLiveTargets: {}]; });
757
+ LruResults results = _persistence.run (" GC" , [&]() -> LruResults { return _gc->Collect ({}); });
762
758
763
759
// By default, we collect 10% of the sequence numbers. Since we added 100 targets,
764
760
// that should be 10 targets with 10 documents each, for a total of 100 documents.
765
- XCTAssertTrue (results.didRun );
766
- XCTAssertEqual (10 , results.targetsRemoved );
767
- XCTAssertEqual (100 , results.documentsRemoved );
761
+ XCTAssertTrue (results.did_run );
762
+ XCTAssertEqual (10 , results.targets_removed );
763
+ XCTAssertEqual (100 , results.documents_removed );
768
764
[_persistence shutdown ];
769
765
}
770
766
0 commit comments