summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNobuyoshi Nakada <[email protected]>2024-04-17 08:55:08 +0900
committerNobuyoshi Nakada <[email protected]>2024-04-19 23:06:46 +0900
commitc789e4c493cfd8abde2268b1ca2a0656851e0772 (patch)
tree844d5418e6a7d1b240bde7d5115d30d52e5d8bd5
parentf17268f7d4fd217e3d79d65527c75c619db8af05 (diff)
Use isolated temporary directory in test-all too for RubyGems tests
-rw-r--r--common.mk14
-rw-r--r--tool/lib/_tmpdir.rb (renamed from tool/rubyspec_temp.rb)14
2 files changed, 19 insertions, 9 deletions
diff --git a/common.mk b/common.mk
index 0369b76152..6d32f2cbbc 100644
--- a/common.mk
+++ b/common.mk
@@ -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