@@ -843,37 +843,47 @@ mod tests {
843843 let symlink_name = dir_symlink. path ( ) . join ( "babar.mdb.link" ) ;
844844 fs:: create_dir_all ( & env_name) . unwrap ( ) ;
845845
846- std:: os:: unix:: fs:: symlink ( & env_name, & symlink_name) . unwrap ( ) ;
847- let _env = EnvOpenOptions :: new ( )
846+ let env = EnvOpenOptions :: new ( )
848847 . map_size ( 10 * 1024 * 1024 ) // 10MB
849- . open ( & symlink_name )
848+ . open ( & env_name )
850849 . unwrap ( ) ;
850+ assert_eq ! ( env_name, env. path( ) ) ;
851851
852- let _env = EnvOpenOptions :: new ( )
852+ std:: os:: unix:: fs:: symlink ( & env_name, & symlink_name) . unwrap ( ) ;
853+
854+ let env = EnvOpenOptions :: new ( )
853855 . map_size ( 10 * 1024 * 1024 ) // 10MB
854- . open ( & env_name )
856+ . open ( & symlink_name )
855857 . unwrap ( ) ;
858+
859+ // The path is recycle from the first opening of the env.
860+ assert_eq ! ( env_name, env. path( ) ) ;
856861 }
857862
858863 #[ test]
859864 fn open_env_with_named_path_rename ( ) {
860865 let dir = tempfile:: tempdir ( ) . unwrap ( ) ;
866+ // We make a tmp dir where to move the env to avoid directly writing to /tmp.
867+ // Windows CI had issue if not done.
868+ let moved_parent = tempfile:: tempdir ( ) . unwrap ( ) ;
861869
862870 let env_name = dir. path ( ) . join ( "babar.mdb" ) ;
863871 fs:: create_dir_all ( & env_name) . unwrap ( ) ;
864872
865- let _env = EnvOpenOptions :: new ( )
873+ let env = EnvOpenOptions :: new ( )
866874 . map_size ( 10 * 1024 * 1024 ) // 10MB
867875 . open ( & env_name)
868876 . unwrap ( ) ;
877+ assert_eq ! ( env_name, env. path( ) ) ;
869878
870- let env_renamed = dir . path ( ) . join ( "serafina.mdb" ) ;
879+ let env_renamed = moved_parent . path ( ) . join ( "serafina.mdb" ) ;
871880 std:: fs:: rename ( & env_name, & env_renamed) . unwrap ( ) ;
872881
873- let _env = EnvOpenOptions :: new ( )
882+ let env = EnvOpenOptions :: new ( )
874883 . map_size ( 10 * 1024 * 1024 ) // 10MB
875884 . open ( & env_renamed)
876885 . unwrap ( ) ;
886+ assert_eq ! ( env_name, env. path( ) ) ;
877887 }
878888
879889 #[ test]
@@ -909,17 +919,23 @@ mod tests {
909919
910920 let mut envbuilder = EnvOpenOptions :: new ( ) ;
911921 unsafe { envbuilder. flag ( crate :: Flag :: NoSubDir ) } ;
912- let _env = envbuilder
922+ let env = envbuilder
913923 . map_size ( 10 * 1024 * 1024 ) // 10MB
914924 . open ( & env_name)
915925 . unwrap ( ) ;
926+ assert_eq ! ( env_name, env. path( ) ) ;
927+ assert_ne ! ( symlink_name, env. path( ) ) ;
916928
917929 std:: os:: unix:: fs:: symlink ( & dir. path ( ) , & symlink_name) . unwrap ( ) ;
918930 let _env = envbuilder
919931 . map_size ( 10 * 1024 * 1024 ) // 10MB
920932 . open ( & symlink_name)
921933 . unwrap ( ) ;
922934
935+ // Checkout that we get the path of the first openning.
936+ assert_eq ! ( env_name, env. path( ) ) ;
937+ assert_ne ! ( symlink_name, env. path( ) ) ;
938+
923939 let _env = envbuilder
924940 . map_size ( 10 * 1024 * 1024 ) // 10MB
925941 . open ( & env_name)
@@ -964,12 +980,12 @@ mod tests {
964980 fs:: create_dir_all ( & env_name) . unwrap ( ) ;
965981
966982 std:: os:: windows:: fs:: symlink_dir ( & env_name, & symlink_name) . unwrap ( ) ;
967- let _env = EnvOpenOptions :: new ( )
983+ let env = EnvOpenOptions :: new ( )
968984 . map_size ( 10 * 1024 * 1024 ) // 10MB
969985 . open ( & symlink_name)
970986 . unwrap ( ) ;
971987
972- let _env = EnvOpenOptions :: new ( )
988+ let env = EnvOpenOptions :: new ( )
973989 . map_size ( 10 * 1024 * 1024 ) // 10MB
974990 . open ( & env_name)
975991 . unwrap ( ) ;
0 commit comments