@@ -15,21 +15,26 @@ def test_world_writable
15
15
skip "no meaning on this platform" if /mswin|mingw/ =~ RUBY_PLATFORM
16
16
Dir . mktmpdir do |tmpdir |
17
17
# ToDo: fix for parallel test
18
- olddir , ENV [ "TMPDIR" ] = ENV [ "TMPDIR" ] , tmpdir
18
+ envs = %w[ TMPDIR TMP TEMP ]
19
+ oldenv = envs . each_with_object ( { } ) { |v , h | h [ v ] = ENV . delete ( v ) }
19
20
begin
20
- assert_equal ( tmpdir , Dir . tmpdir )
21
- File . chmod ( 0777 , tmpdir )
22
- assert_not_equal ( tmpdir , Dir . tmpdir )
23
- newdir = Dir . mktmpdir ( "d" , tmpdir ) do |dir |
24
- assert_file . directory? dir
25
- assert_equal ( tmpdir , File . dirname ( dir ) )
26
- dir
21
+ envs . each do |e |
22
+ ENV [ e ] = tmpdir
23
+ assert_equal ( tmpdir , Dir . tmpdir )
24
+ File . chmod ( 0777 , tmpdir )
25
+ assert_not_equal ( tmpdir , Dir . tmpdir )
26
+ newdir = Dir . mktmpdir ( "d" , tmpdir ) do |dir |
27
+ assert_file . directory? dir
28
+ assert_equal ( tmpdir , File . dirname ( dir ) )
29
+ dir
30
+ end
31
+ assert_file . not_exist? ( newdir )
32
+ File . chmod ( 01777 , tmpdir )
33
+ assert_equal ( tmpdir , Dir . tmpdir )
34
+ ENV [ e ] = nil
27
35
end
28
- assert_file . not_exist? ( newdir )
29
- File . chmod ( 01777 , tmpdir )
30
- assert_equal ( tmpdir , Dir . tmpdir )
31
36
ensure
32
- ENV [ "TMPDIR" ] = olddir
37
+ ENV . update ( oldenv )
33
38
end
34
39
end
35
40
end
0 commit comments