@@ -97,6 +97,7 @@ def test_rewind
9797 end
9898
9999 def test_class_chdir
100+ omit "not ractor safe" unless main_ractor?
100101 pwd = Dir . pwd
101102 setup_envs
102103
@@ -129,13 +130,14 @@ def test_class_chdir
129130
130131 ensure
131132 begin
132- Dir . chdir ( pwd )
133+ Dir . chdir ( pwd ) if pwd
133134 rescue
134135 abort ( "cannot return the original directory: #{ pwd } " )
135136 end
136137 end
137138
138139 def test_instance_chdir
140+ omit "not ractor safe" unless main_ractor?
139141 pwd = Dir . pwd
140142 dir = Dir . new ( pwd )
141143 root_dir = Dir . new ( @root )
@@ -194,15 +196,16 @@ def Warning.warn(message)
194196 assert_equal ( 42 , ret )
195197 ensure
196198 begin
197- assert_equal ( 0 , dir . chdir )
199+ assert_equal ( 0 , dir . chdir ) if dir
198200 rescue
199201 abort ( "cannot return the original directory: #{ pwd } " )
200202 end
201- dir . close
202- root_dir . close
203+ dir & .close
204+ root_dir & .close
203205 end
204206
205207 def test_chdir_conflict
208+ omit "not ractor safe" unless main_ractor?
206209 pwd = Dir . pwd
207210 q = Thread ::Queue . new
208211 t = Thread . new do
@@ -279,6 +282,7 @@ def test_glob
279282 end
280283
281284 def test_glob_recursive
285+ omit "not ractor safe" unless main_ractor?
282286 bug6977 = '[ruby-core:47418]'
283287 bug8006 = '[ruby-core:53108] [Bug #8006]'
284288 Dir . chdir ( @root ) do
@@ -308,6 +312,7 @@ def test_glob_recursive
308312 end
309313
310314 def test_glob_recursive_directory
315+ omit "not ractor safe" unless main_ractor?
311316 Dir . chdir ( @root ) do
312317 [ 'd' , 'e' ] . each do |path |
313318 FileUtils . mkdir_p ( "c/#{ path } /a/b/c" )
@@ -325,6 +330,7 @@ def test_glob_recursive_directory
325330 end
326331
327332 def test_glob_starts_with_brace
333+ omit "not ractor safe" unless main_ractor?
328334 Dir . chdir ( @root ) do
329335 bug15649 = '[ruby-core:91728] [Bug #15649]'
330336 assert_equal ( [ "#{ @root } /a" , "#{ @root } /b" ] ,
@@ -333,6 +339,7 @@ def test_glob_starts_with_brace
333339 end
334340
335341 def test_glob_recursive_with_brace
342+ omit "not ractor safe" unless main_ractor?
336343 Dir . chdir ( @root ) do
337344 bug19042 = '[ruby-core:110220] [Bug #19042]'
338345 %w" c/dir_a c/dir_b c/dir_b/dir " . each do |d |
@@ -347,6 +354,7 @@ def test_glob_recursive_with_brace
347354 end
348355
349356 def test_glob_order
357+ omit "not ractor safe" unless main_ractor?
350358 Dir . chdir ( @root ) do
351359 assert_equal ( [ "#{ @root } /a" , "#{ @root } /b" ] , Dir . glob ( "#{ @root } /[ba]" ) )
352360 assert_equal ( [ "#{ @root } /b" , "#{ @root } /a" ] , Dir . glob ( %W" #{ @root } /b #{ @root } /a" ) )
@@ -376,6 +384,7 @@ def test_glob_too_may_open_files
376384 end
377385
378386 def test_glob_base
387+ omit "not ractor safe (Dir.chdir)" unless main_ractor?
379388 files = %w[ a/foo.c c/bar.c ]
380389 files . each { |n | File . write ( File . join ( @root , n ) , "" ) }
381390 Dir . mkdir ( File . join ( @root , "a/dir" ) )
@@ -416,6 +425,7 @@ def test_glob_base
416425 end
417426
418427 def test_glob_base_dir
428+ omit "not ractor safe" unless main_ractor?
419429 files = %w[ a/foo.c c/bar.c ]
420430 files . each { |n | File . write ( File . join ( @root , n ) , "" ) }
421431 Dir . mkdir ( File . join ( @root , "a/dir" ) )
@@ -438,6 +448,7 @@ def test_glob_base_dir
438448 end
439449
440450 def test_glob_ignore_casefold_invalid_encoding
451+ omit "not ractor safe" unless main_ractor?
441452 bug14456 = "[ruby-core:85448]"
442453 filename = "\u00AA a123" . encode ( 'ISO-8859-1' )
443454 File . write ( File . join ( @root , filename ) , "" )
@@ -555,6 +566,7 @@ def test_glob_metachar
555566 end
556567
557568 def test_glob_cases
569+ omit "not ractor safe (Dir.chdir)" unless main_ractor?
558570 feature5994 = "[ruby-core:42469] [Feature #5994]"
559571 feature5994 << "\n Dir.glob should return the filename with actual cases on the filesystem"
560572 Dir . chdir ( File . join ( @root , "a" ) ) do
@@ -659,6 +671,7 @@ def test_children_long_name
659671 end
660672
661673 def test_home
674+ omit "not ractor safe" unless main_ractor?
662675 setup_envs
663676
664677 ENV [ "HOME" ] = @nodir
@@ -690,6 +703,7 @@ def test_home_utf8
690703 end
691704
692705 def test_symlinks_not_resolved
706+ omit "not ractors safe (Dir.chdir)" unless main_ractor?
693707 Dir . mktmpdir do |dirname |
694708 Dir . chdir ( dirname ) do
695709 begin
@@ -718,6 +732,7 @@ def test_fileno
718732 end
719733
720734 def test_for_fd
735+ omit "not ractor safe" unless main_ractor?
721736 if Dir . respond_to? :for_fd
722737 begin
723738 new_dir = Dir . new ( '..' )
0 commit comments