From 86431f5075d0495783776b0d7f162df387e7cde6 Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada Date: Tue, 28 Apr 2020 19:00:33 +0900 Subject: Remove rubyspec temporary directories --- common.mk | 1 - spec/mspec/lib/mspec/helpers/tmp.rb | 18 +++++++++++++++--- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/common.mk b/common.mk index 449f032074..616276eb2a 100644 --- a/common.mk +++ b/common.mk @@ -823,7 +823,6 @@ test-spec: $(TEST_RUNNABLE)-test-spec yes-test-spec: test-spec-precheck $(gnumake_recursive)$(Q) \ $(RUNRUBY) -r./$(arch)-fake $(srcdir)/spec/mspec/bin/mspec run -B $(srcdir)/spec/default.mspec $(MSPECOPT) $(SPECOPTS) - $(RMDIR) rubyspec_temp no-test-spec: RUNNABLE = $(LIBRUBY_RELATIVE:no=un)-runnable diff --git a/spec/mspec/lib/mspec/helpers/tmp.rb b/spec/mspec/lib/mspec/helpers/tmp.rb index 5062991d63..433c0b6d88 100644 --- a/spec/mspec/lib/mspec/helpers/tmp.rb +++ b/spec/mspec/lib/mspec/helpers/tmp.rb @@ -4,13 +4,25 @@ # directory is empty when the process exits. SPEC_TEMP_DIR_PID = Process.pid -SPEC_TEMP_DIR = File.expand_path(ENV["SPEC_TEMP_DIR"] || "rubyspec_temp/#{SPEC_TEMP_DIR_PID}") +SPEC_TEMP_DIR_LIST = [] +if tmpdir = ENV['SPEC_TEMP_DIR'] + temppath = File.expand_path(tmpdir) + "/" +else + tmpdir = File.expand_path("rubyspec_temp") + temppath = tmpdir + "/#{SPEC_TEMP_DIR_PID}" + SPEC_TEMP_DIR_LIST << tmpdir +end +SPEC_TEMP_DIR_LIST << temppath +SPEC_TEMP_DIR = temppath SPEC_TEMP_UNIQUIFIER = "0" at_exit do begin if SPEC_TEMP_DIR_PID == Process.pid - Dir.delete SPEC_TEMP_DIR if File.directory? SPEC_TEMP_DIR + while temppath = SPEC_TEMP_DIR_LIST.pop + next unless File.directory? temppath + Dir.delete temppath + end end rescue SystemCallError STDERR.puts <<-EOM @@ -18,7 +30,7 @@ at_exit do ----------------------------------------------------- The rubyspec temp directory is not empty. Ensure that all specs are cleaning up temporary files: - #{SPEC_TEMP_DIR} + #{temppath} ----------------------------------------------------- EOM -- cgit v1.2.3