@@ -216,6 +216,36 @@ mod tests {
216
216
assert_eq ! ( s. get( & reader, 3 ) . expect( "read" ) , None ) ;
217
217
}
218
218
}
219
+
220
+ #[ test]
221
+ fn test_persist ( ) {
222
+ let root = Builder :: new ( ) . prefix ( "test_integer_persist" ) . tempdir ( ) . expect ( "tempdir" ) ;
223
+ fs:: create_dir_all ( root. path ( ) ) . expect ( "dir created" ) ;
224
+
225
+ {
226
+ let k = Rkv :: new :: < backend:: Lmdb > ( root. path ( ) ) . expect ( "new succeeded" ) ;
227
+ let s = k. open_integer ( "s" , StoreOptions :: create ( ) ) . expect ( "open" ) ;
228
+
229
+ let mut writer = k. write ( ) . expect ( "writer" ) ;
230
+ s. put ( & mut writer, 1 , & Value :: Str ( "hello!" ) ) . expect ( "write" ) ;
231
+ s. put ( & mut writer, 2 , & Value :: Str ( "hello!" ) ) . expect ( "write" ) ;
232
+ s. put ( & mut writer, 3 , & Value :: Str ( "hello!" ) ) . expect ( "write" ) ;
233
+ assert_eq ! ( s. get( & writer, 1 ) . expect( "read" ) , Some ( Value :: Str ( "hello!" ) ) ) ;
234
+ assert_eq ! ( s. get( & writer, 2 ) . expect( "read" ) , Some ( Value :: Str ( "hello!" ) ) ) ;
235
+ assert_eq ! ( s. get( & writer, 3 ) . expect( "read" ) , Some ( Value :: Str ( "hello!" ) ) ) ;
236
+ writer. commit ( ) . expect ( "committed" ) ;
237
+ }
238
+
239
+ {
240
+ let k = Rkv :: new :: < backend:: Lmdb > ( root. path ( ) ) . expect ( "new succeeded" ) ;
241
+ let s = k. open_integer ( "s" , StoreOptions :: create ( ) ) . expect ( "open" ) ;
242
+
243
+ let reader = k. read ( ) . expect ( "reader" ) ;
244
+ assert_eq ! ( s. get( & reader, 1 ) . expect( "read" ) , Some ( Value :: Str ( "hello!" ) ) ) ;
245
+ assert_eq ! ( s. get( & reader, 2 ) . expect( "read" ) , Some ( Value :: Str ( "hello!" ) ) ) ;
246
+ assert_eq ! ( s. get( & reader, 3 ) . expect( "read" ) , Some ( Value :: Str ( "hello!" ) ) ) ;
247
+ }
248
+ }
219
249
}
220
250
221
251
#[ cfg( test) ]
@@ -359,4 +389,34 @@ mod tests_safe {
359
389
assert_eq ! ( s. get( & reader, 3 ) . expect( "read" ) , None ) ;
360
390
}
361
391
}
392
+
393
+ #[ test]
394
+ fn test_persist ( ) {
395
+ let root = Builder :: new ( ) . prefix ( "test_integer_persist" ) . tempdir ( ) . expect ( "tempdir" ) ;
396
+ fs:: create_dir_all ( root. path ( ) ) . expect ( "dir created" ) ;
397
+
398
+ {
399
+ let k = Rkv :: new :: < backend:: SafeMode > ( root. path ( ) ) . expect ( "new succeeded" ) ;
400
+ let s = k. open_integer ( "s" , StoreOptions :: create ( ) ) . expect ( "open" ) ;
401
+
402
+ let mut writer = k. write ( ) . expect ( "writer" ) ;
403
+ s. put ( & mut writer, 1 , & Value :: Str ( "hello!" ) ) . expect ( "write" ) ;
404
+ s. put ( & mut writer, 2 , & Value :: Str ( "hello!" ) ) . expect ( "write" ) ;
405
+ s. put ( & mut writer, 3 , & Value :: Str ( "hello!" ) ) . expect ( "write" ) ;
406
+ assert_eq ! ( s. get( & writer, 1 ) . expect( "read" ) , Some ( Value :: Str ( "hello!" ) ) ) ;
407
+ assert_eq ! ( s. get( & writer, 2 ) . expect( "read" ) , Some ( Value :: Str ( "hello!" ) ) ) ;
408
+ assert_eq ! ( s. get( & writer, 3 ) . expect( "read" ) , Some ( Value :: Str ( "hello!" ) ) ) ;
409
+ writer. commit ( ) . expect ( "committed" ) ;
410
+ }
411
+
412
+ {
413
+ let k = Rkv :: new :: < backend:: SafeMode > ( root. path ( ) ) . expect ( "new succeeded" ) ;
414
+ let s = k. open_integer ( "s" , StoreOptions :: create ( ) ) . expect ( "open" ) ;
415
+
416
+ let reader = k. read ( ) . expect ( "reader" ) ;
417
+ assert_eq ! ( s. get( & reader, 1 ) . expect( "read" ) , Some ( Value :: Str ( "hello!" ) ) ) ;
418
+ assert_eq ! ( s. get( & reader, 2 ) . expect( "read" ) , Some ( Value :: Str ( "hello!" ) ) ) ;
419
+ assert_eq ! ( s. get( & reader, 3 ) . expect( "read" ) , Some ( Value :: Str ( "hello!" ) ) ) ;
420
+ }
421
+ }
362
422
}
0 commit comments