@@ -7,11 +7,6 @@ namespace LightningDB.Tests;
77
88public class CursorTests : TestBase
99{
10- public CursorTests ( )
11- {
12- _env . Open ( ) ;
13- }
14-
1510 private static byte [ ] [ ] PopulateCursorValues ( LightningCursor cursor , int count = 5 , string keyPrefix = "key" )
1611 {
1712 var keys = Enumerable . Range ( 1 , count )
@@ -41,13 +36,17 @@ private static byte[][] PopulateMultipleCursorValues(LightningCursor cursor, str
4136 [ Test ]
4237 public void CursorShouldBeCreated ( )
4338 {
44- _env . RunCursorScenario ( ( _ , _ , c ) => c . ShouldNotBeNull ( ) ) ;
39+ using var env = CreateEnvironment ( ) ;
40+ env . Open ( ) ;
41+ env . RunCursorScenario ( ( _ , _ , c ) => c . ShouldNotBeNull ( ) ) ;
4542 }
4643
4744 [ Test ]
4845 public void CursorShouldPutValues ( )
4946 {
50- _env . RunCursorScenario ( ( tx , _ , c ) =>
47+ using var env = CreateEnvironment ( ) ;
48+ env . Open ( ) ;
49+ env . RunCursorScenario ( ( tx , _ , c ) =>
5150 {
5251 PopulateCursorValues ( c ) ;
5352 var result = tx . Commit ( ) ;
@@ -58,7 +57,9 @@ public void CursorShouldPutValues()
5857 [ Test ]
5958 public void CursorShouldSetSpanKey ( )
6059 {
61- _env . RunCursorScenario ( ( _ , _ , c ) =>
60+ using var env = CreateEnvironment ( ) ;
61+ env . Open ( ) ;
62+ env . RunCursorScenario ( ( _ , _ , c ) =>
6263 {
6364 var keys = PopulateCursorValues ( c ) ;
6465 var firstKey = keys . First ( ) ;
@@ -72,7 +73,9 @@ public void CursorShouldSetSpanKey()
7273 [ Test ]
7374 public void CursorShouldMoveToLast ( )
7475 {
75- _env . RunCursorScenario ( ( _ , _ , c ) =>
76+ using var env = CreateEnvironment ( ) ;
77+ env . Open ( ) ;
78+ env . RunCursorScenario ( ( _ , _ , c ) =>
7679 {
7780 var keys = PopulateCursorValues ( c ) ;
7881 var lastKey = keys . Last ( ) ;
@@ -85,7 +88,9 @@ public void CursorShouldMoveToLast()
8588 [ Test ]
8689 public void CursorShouldMoveToFirst ( )
8790 {
88- _env . RunCursorScenario ( ( _ , _ , c ) =>
91+ using var env = CreateEnvironment ( ) ;
92+ env . Open ( ) ;
93+ env . RunCursorScenario ( ( _ , _ , c ) =>
8994 {
9095 var keys = PopulateCursorValues ( c ) ;
9196 var firstKey = keys . First ( ) ;
@@ -98,7 +103,9 @@ public void CursorShouldMoveToFirst()
98103 [ Test ]
99104 public void ShouldIterateThroughCursor ( )
100105 {
101- _env . RunCursorScenario ( ( tx , db , c ) =>
106+ using var env = CreateEnvironment ( ) ;
107+ env . Open ( ) ;
108+ env . RunCursorScenario ( ( tx , db , c ) =>
102109 {
103110 var keys = PopulateCursorValues ( c ) ;
104111 using var c2 = tx . CreateCursor ( db ) ;
@@ -115,7 +122,9 @@ public void ShouldIterateThroughCursor()
115122 [ Test ]
116123 public void CursorShouldDeleteElements ( )
117124 {
118- _env . RunCursorScenario ( ( tx , db , c ) =>
125+ using var env = CreateEnvironment ( ) ;
126+ env . Open ( ) ;
127+ env . RunCursorScenario ( ( tx , db , c ) =>
119128 {
120129 var keys = PopulateCursorValues ( c ) . Take ( 2 ) . ToArray ( ) ;
121130 for ( var i = 0 ; i < 2 ; ++ i )
@@ -132,14 +141,18 @@ public void CursorShouldDeleteElements()
132141 [ Test ]
133142 public void ShouldPutMultiple ( )
134143 {
135- _env . RunCursorScenario ( ( _ , _ , c ) => { PopulateMultipleCursorValues ( c ) ; } ,
144+ using var env = CreateEnvironment ( ) ;
145+ env . Open ( ) ;
146+ env . RunCursorScenario ( ( _ , _ , c ) => { PopulateMultipleCursorValues ( c ) ; } ,
136147 DatabaseOpenFlags . DuplicatesFixed | DatabaseOpenFlags . Create ) ;
137148 }
138149
139150 [ Test ]
140151 public void ShouldGetMultiple ( )
141152 {
142- _env . RunCursorScenario ( ( _ , _ , c ) =>
153+ using var env = CreateEnvironment ( ) ;
154+ env . Open ( ) ;
155+ env . RunCursorScenario ( ( _ , _ , c ) =>
143156 {
144157 var key = "TestKey"u8 . ToArray ( ) ;
145158 var keys = PopulateMultipleCursorValues ( c ) ;
@@ -154,7 +167,9 @@ public void ShouldGetMultiple()
154167 [ Test ]
155168 public void ShouldGetNextMultiple ( )
156169 {
157- _env . RunCursorScenario ( ( _ , _ , c ) =>
170+ using var env = CreateEnvironment ( ) ;
171+ env . Open ( ) ;
172+ env . RunCursorScenario ( ( _ , _ , c ) =>
158173 {
159174 var key = "TestKey"u8 . ToArray ( ) ;
160175 var keys = PopulateMultipleCursorValues ( c ) ;
@@ -168,7 +183,9 @@ public void ShouldGetNextMultiple()
168183 [ Test ]
169184 public void ShouldAdvanceKeyToClosestWhenKeyNotFound ( )
170185 {
171- _env . RunCursorScenario ( ( _ , _ , c ) =>
186+ using var env = CreateEnvironment ( ) ;
187+ env . Open ( ) ;
188+ env . RunCursorScenario ( ( _ , _ , c ) =>
172189 {
173190 var expected = PopulateCursorValues ( c ) . First ( ) ;
174191 var result = c . Set ( "key"u8 . ToArray ( ) ) ;
@@ -181,7 +198,9 @@ public void ShouldAdvanceKeyToClosestWhenKeyNotFound()
181198 [ Test ]
182199 public void ShouldSetKeyAndGet ( )
183200 {
184- _env . RunCursorScenario ( ( _ , _ , c ) =>
201+ using var env = CreateEnvironment ( ) ;
202+ env . Open ( ) ;
203+ env . RunCursorScenario ( ( _ , _ , c ) =>
185204 {
186205 var expected = PopulateCursorValues ( c ) . ElementAt ( 2 ) ;
187206 var result = c . SetKey ( expected ) ;
@@ -193,7 +212,9 @@ public void ShouldSetKeyAndGet()
193212 [ Test ]
194213 public void ShouldSetKeyAndGetWithSpan ( )
195214 {
196- _env . RunCursorScenario ( ( _ , _ , c ) =>
215+ using var env = CreateEnvironment ( ) ;
216+ env . Open ( ) ;
217+ env . RunCursorScenario ( ( _ , _ , c ) =>
197218 {
198219 var expected = PopulateCursorValues ( c ) . ElementAt ( 2 ) ;
199220 var result = c . SetKey ( expected . AsSpan ( ) ) ;
@@ -205,7 +226,9 @@ public void ShouldSetKeyAndGetWithSpan()
205226 [ Test ]
206227 public void ShouldGetBoth ( )
207228 {
208- _env . RunCursorScenario ( ( _ , _ , c ) =>
229+ using var env = CreateEnvironment ( ) ;
230+ env . Open ( ) ;
231+ env . RunCursorScenario ( ( _ , _ , c ) =>
209232 {
210233 var expected = PopulateCursorValues ( c ) . ElementAt ( 2 ) ;
211234 var result = c . GetBoth ( expected , expected ) ;
@@ -216,7 +239,9 @@ public void ShouldGetBoth()
216239 [ Test ]
217240 public void ShouldGetBothWithSpan ( )
218241 {
219- _env . RunCursorScenario ( ( _ , _ , c ) =>
242+ using var env = CreateEnvironment ( ) ;
243+ env . Open ( ) ;
244+ env . RunCursorScenario ( ( _ , _ , c ) =>
220245 {
221246 var expected = PopulateCursorValues ( c ) . ElementAt ( 2 ) ;
222247 var expectedSpan = expected . AsSpan ( ) ;
@@ -228,7 +253,9 @@ public void ShouldGetBothWithSpan()
228253 [ Test ]
229254 public void ShouldMoveToPrevious ( )
230255 {
231- _env . RunCursorScenario ( ( _ , _ , c ) =>
256+ using var env = CreateEnvironment ( ) ;
257+ env . Open ( ) ;
258+ env . RunCursorScenario ( ( _ , _ , c ) =>
232259 {
233260 var expected = PopulateCursorValues ( c ) . ElementAt ( 2 ) ;
234261 var expectedSpan = expected . AsSpan ( ) ;
@@ -241,7 +268,9 @@ public void ShouldMoveToPrevious()
241268 [ Test ]
242269 public void ShouldSetRangeWithSpan ( )
243270 {
244- _env . RunCursorScenario ( ( _ , _ , c ) =>
271+ using var env = CreateEnvironment ( ) ;
272+ env . Open ( ) ;
273+ env . RunCursorScenario ( ( _ , _ , c ) =>
245274 {
246275 var values = PopulateCursorValues ( c ) ;
247276 var firstAfter = values [ 0 ] . AsSpan ( ) ;
@@ -255,7 +284,9 @@ public void ShouldSetRangeWithSpan()
255284 [ Test ]
256285 public void ShouldGetBothRange ( )
257286 {
258- _env . RunCursorScenario ( ( _ , _ , c ) =>
287+ using var env = CreateEnvironment ( ) ;
288+ env . Open ( ) ;
289+ env . RunCursorScenario ( ( _ , _ , c ) =>
259290 {
260291 var key = "TestKey"u8 . ToArray ( ) ;
261292 var values = PopulateMultipleCursorValues ( c ) ;
@@ -269,7 +300,9 @@ public void ShouldGetBothRange()
269300 [ Test ]
270301 public void ShouldGetBothRangeWithSpan ( )
271302 {
272- _env . RunCursorScenario ( ( _ , _ , c ) =>
303+ using var env = CreateEnvironment ( ) ;
304+ env . Open ( ) ;
305+ env . RunCursorScenario ( ( _ , _ , c ) =>
273306 {
274307 var key = "TestKey"u8 . ToArray ( ) . AsSpan ( ) ;
275308 var values = PopulateMultipleCursorValues ( c ) ;
@@ -283,7 +316,9 @@ public void ShouldGetBothRangeWithSpan()
283316 [ Test ]
284317 public void ShouldMoveToFirstDuplicate ( )
285318 {
286- _env . RunCursorScenario ( ( _ , _ , c ) =>
319+ using var env = CreateEnvironment ( ) ;
320+ env . Open ( ) ;
321+ env . RunCursorScenario ( ( _ , _ , c ) =>
287322 {
288323 var key = "TestKey"u8 . ToArray ( ) ;
289324 var values = PopulateMultipleCursorValues ( c ) ;
@@ -298,7 +333,9 @@ public void ShouldMoveToFirstDuplicate()
298333 [ Test ]
299334 public void ShouldMoveToLastDuplicate ( )
300335 {
301- _env . RunCursorScenario ( ( _ , _ , c ) =>
336+ using var env = CreateEnvironment ( ) ;
337+ env . Open ( ) ;
338+ env . RunCursorScenario ( ( _ , _ , c ) =>
302339 {
303340 var key = "TestKey"u8 . ToArray ( ) ;
304341 var values = PopulateMultipleCursorValues ( c ) ;
@@ -312,7 +349,9 @@ public void ShouldMoveToLastDuplicate()
312349 [ Test ]
313350 public void ShouldMoveToNextNoDuplicate ( )
314351 {
315- _env . RunCursorScenario ( ( _ , _ , c ) =>
352+ using var env = CreateEnvironment ( ) ;
353+ env . Open ( ) ;
354+ env . RunCursorScenario ( ( _ , _ , c ) =>
316355 {
317356 var values = PopulateMultipleCursorValues ( c ) ;
318357 var result = c . NextNoDuplicate ( ) ;
@@ -324,7 +363,9 @@ public void ShouldMoveToNextNoDuplicate()
324363 [ Test ]
325364 public void ShouldRenewSameTransaction ( )
326365 {
327- _env . RunCursorScenario ( ( _ , _ , c ) =>
366+ using var env = CreateEnvironment ( ) ;
367+ env . Open ( ) ;
368+ env . RunCursorScenario ( ( _ , _ , c ) =>
328369 {
329370 var result = c . Renew ( ) ;
330371 result . ShouldBe ( MDBResultCode . Success ) ;
@@ -334,7 +375,9 @@ public void ShouldRenewSameTransaction()
334375 [ Test ]
335376 public void ShouldDeleteDuplicates ( )
336377 {
337- _env . RunCursorScenario ( ( _ , _ , c ) =>
378+ using var env = CreateEnvironment ( ) ;
379+ env . Open ( ) ;
380+ env . RunCursorScenario ( ( _ , _ , c ) =>
338381 {
339382 var key = "TestKey"u8 . ToArray ( ) ;
340383 PopulateMultipleCursorValues ( c ) ;
@@ -373,19 +416,23 @@ void ReproduceCoreIteration(LightningEnvironment environment, LightningDatabase
373416 tx . Commit ( ) . ThrowOnError ( ) ;
374417 }
375418
376- using var db = OpenDatabase ( _env ) ;
419+ using var env = CreateEnvironment ( ) ;
420+ env . Open ( ) ;
421+ using var db = OpenDatabase ( env ) ;
377422
378423 for ( var i = 0 ; i < 5000 ; i ++ )
379424 {
380- ReproduceCoreIteration ( _env , db ) ;
425+ ReproduceCoreIteration ( env , db ) ;
381426 }
382427 true . ShouldBeTrue ( "Code would be unreachable otherwise." ) ;
383428 }
384429
385430 [ Test ]
386431 public void CountCursor ( )
387432 {
388- _env . RunCursorScenario ( ( _ , _ , c ) =>
433+ using var env = CreateEnvironment ( ) ;
434+ env . Open ( ) ;
435+ env . RunCursorScenario ( ( _ , _ , c ) =>
389436 {
390437 var key = "TestKey"u8 . ToArray ( ) ;
391438 var keys = PopulateMultipleCursorValues ( c ) ;
0 commit comments