diff options
author | Nobuyoshi Nakada <[email protected]> | 2024-04-17 08:55:08 +0900 |
---|---|---|
committer | Nobuyoshi Nakada <[email protected]> | 2024-04-19 23:06:46 +0900 |
commit | c789e4c493cfd8abde2268b1ca2a0656851e0772 (patch) | |
tree | 844d5418e6a7d1b240bde7d5115d30d52e5d8bd5 | |
parent | f17268f7d4fd217e3d79d65527c75c619db8af05 (diff) |
Use isolated temporary directory in test-all too for RubyGems tests
-rw-r--r-- | common.mk | 14 | ||||
-rw-r--r-- | tool/lib/_tmpdir.rb (renamed from tool/rubyspec_temp.rb) | 14 |
2 files changed, 19 insertions, 9 deletions
@@ -957,12 +957,16 @@ PRECHECK_TEST_ALL = yes-test-all-precheck test-all: $(TEST_RUNNABLE)-test-all yes-test-all: $(PRECHECK_TEST_ALL) $(ACTIONS_GROUP) - $(gnumake_recursive)$(Q)$(exec) $(RUNRUBY) "$(TESTSDIR)/runner.rb" --ruby="$(RUNRUBY)" \ + $(gnumake_recursive)$(Q)$(exec) $(RUNRUBY) -r$(tooldir)/lib/_tmpdir \ + "$(TESTSDIR)/runner.rb" --ruby="$(RUNRUBY)" \ $(TEST_EXCLUDES) $(TESTOPTS) $(TESTS) $(ACTIONS_ENDGROUP) TESTS_BUILD = mkmf no-test-all: PHONY - $(gnumake_recursive)$(MINIRUBY) -I"$(srcdir)/lib" "$(TESTSDIR)/runner.rb" $(TESTOPTS) $(TESTS_BUILD) + $(ACTIONS_GROUP) + $(gnumake_recursive)$(MINIRUBY) -I"$(srcdir)/lib" -r$(tooldir)/lib/_tmpdir \ + "$(TESTSDIR)/runner.rb" $(TESTOPTS) $(TESTS_BUILD) + $(ACTIONS_ENDGROUP) test-almost: test-all yes-test-almost: yes-test-all @@ -1004,7 +1008,7 @@ test-spec: $(TEST_RUNNABLE)-test-spec yes-test-spec: yes-test-spec-precheck $(ACTIONS_GROUP) $(gnumake_recursive)$(Q) \ - $(RUNRUBY) -r./$(arch)-fake -r$(tooldir)/rubyspec_temp \ + $(RUNRUBY) -r./$(arch)-fake -r$(tooldir)/lib/_tmpdir \ $(srcdir)/spec/mspec/bin/mspec run -B $(srcdir)/spec/default.mspec $(MSPECOPT) $(SPECOPTS) $(ACTIONS_ENDGROUP) no-test-spec: @@ -1013,7 +1017,7 @@ test-prism-spec: $(TEST_RUNNABLE)-test-prism-spec yes-test-prism-spec: yes-test-spec-precheck $(ACTIONS_GROUP) $(gnumake_recursive)$(Q) \ - $(RUNRUBY) -r./$(arch)-fake -r$(tooldir)/rubyspec_temp \ + $(RUNRUBY) -r./$(arch)-fake -r$(tooldir)/lib/_tmpdir \ $(srcdir)/spec/mspec/bin/mspec run -B $(srcdir)/spec/default.mspec -B $(srcdir)/spec/prism.mspec $(MSPECOPT) $(SPECOPTS) $(ACTIONS_ENDGROUP) no-test-prism-spec: @@ -1606,7 +1610,7 @@ test-bundled-gems-spec: $(TEST_RUNNABLE)-test-bundled-gems-spec yes-test-bundled-gems-spec: yes-test-spec-precheck $(PREPARE_BUNDLED_GEMS) $(ACTIONS_GROUP) $(gnumake_recursive)$(Q) \ - $(RUNRUBY) -r./$(arch)-fake -r$(tooldir)/rubyspec_temp \ + $(RUNRUBY) -r./$(arch)-fake -r$(tooldir)/lib/_tmpdir \ $(srcdir)/spec/mspec/bin/mspec run -B $(srcdir)/spec/bundled_gems.mspec $(MSPECOPT) $(SPECOPTS) $(ACTIONS_ENDGROUP) no-test-bundled-gems-spec: diff --git a/tool/rubyspec_temp.rb b/tool/lib/_tmpdir.rb index e3b70eb78f..ddc263b563 100644 --- a/tool/rubyspec_temp.rb +++ b/tool/lib/_tmpdir.rb @@ -1,14 +1,20 @@ require "tmpdir" require "fileutils" -template = "rubyspec_temp." -if (tmpdir = Dir.mktmpdir(template)).size > 80 +template = "rubytest." +if (tmpdir = Dir.mktmpdir(template)).size > 50 # On macOS, the default TMPDIR is very long, inspite of UNIX socket # path length is limited. Dir.rmdir(tmpdir) tmpdir = Dir.mktmpdir(template, "/tmp") end # warn "tmpdir(#{tmpdir.size}) = #{tmpdir}" -END {FileUtils.rm_rf(tmpdir)} -ENV["TMPDIR"] = ENV["SPEC_TEMP_DIR"] = tmpdir +pid = $$ +END { + if pid == $$ + FileUtils.rm_rf(tmpdir) + end +} + +ENV["TMPDIR"] = ENV["SPEC_TEMP_DIR"] = ENV["GEM_TEST_TMPDIR"] = tmpdir |