@@ -7,13 +7,13 @@ use std::process;
7
7
use std:: thread:: sleep;
8
8
use std:: time:: Duration ;
9
9
10
- use std :: path :: PathBuf ;
10
+ use tempfile :: TempDir ;
11
11
12
12
use super :: RedisServer ;
13
13
14
14
pub struct RedisCluster {
15
15
pub servers : Vec < RedisServer > ,
16
- pub folders : Vec < PathBuf > ,
16
+ pub folders : Vec < TempDir > ,
17
17
}
18
18
19
19
impl RedisCluster {
@@ -28,19 +28,20 @@ impl RedisCluster {
28
28
servers. push ( RedisServer :: new_with_addr (
29
29
redis:: ConnectionAddr :: Tcp ( "127.0.0.1" . into ( ) , port) ,
30
30
|cmd| {
31
- let ( a, b) = rand:: random :: < ( u64 , u64 ) > ( ) ;
32
- let path = PathBuf :: from ( format ! ( "/tmp/redis-rs-cluster-test-{}-{}-dir" , a, b) ) ;
33
- fs:: create_dir_all ( & path) . unwrap ( ) ;
31
+ let tempdir = tempfile:: Builder :: new ( )
32
+ . prefix ( "redis" )
33
+ . tempdir ( )
34
+ . expect ( "failed to create tempdir" ) ;
34
35
cmd. arg ( "--cluster-enabled" )
35
36
. arg ( "yes" )
36
37
. arg ( "--cluster-config-file" )
37
- . arg ( & path. join ( "nodes.conf" ) )
38
+ . arg ( & tempdir . path ( ) . join ( "nodes.conf" ) )
38
39
. arg ( "--cluster-node-timeout" )
39
40
. arg ( "5000" )
40
41
. arg ( "--appendonly" )
41
42
. arg ( "yes" ) ;
42
- cmd. current_dir ( & path) ;
43
- folders. push ( path ) ;
43
+ cmd. current_dir ( & tempdir . path ( ) ) ;
44
+ folders. push ( tempdir ) ;
44
45
addrs. push ( format ! ( "127.0.0.1:{}" , port) ) ;
45
46
dbg ! ( & cmd) ;
46
47
cmd. spawn ( ) . unwrap ( )
@@ -98,9 +99,6 @@ impl RedisCluster {
98
99
for server in & mut self . servers {
99
100
server. stop ( ) ;
100
101
}
101
- for folder in & self . folders {
102
- fs:: remove_dir_all ( & folder) . unwrap ( ) ;
103
- }
104
102
}
105
103
106
104
pub fn iter_servers ( & self ) -> impl Iterator < Item = & RedisServer > {
0 commit comments