Use shorter path as SPEC_TEMP_DIR

The temporary directory under the build directory may be too long as a
UNIX socket path.  On macOS, the default `TMPDIR` per user is also
very long.
This commit is contained in:
Nobuyoshi Nakada 2023-04-21 10:53:53 +09:00
parent e956052fa9
commit de5cd5a635
No known key found for this signature in database
GPG Key ID: 7CD2805BFA3770C6
Notes: git 2023-04-21 15:08:41 +00:00
2 changed files with 15 additions and 1 deletions

View File

@ -873,7 +873,8 @@ test-spec: $(TEST_RUNNABLE)-test-spec
yes-test-spec: test-spec-precheck
$(ACTIONS_GROUP)
$(gnumake_recursive)$(Q) \
$(RUNRUBY) -r./$(arch)-fake $(srcdir)/spec/mspec/bin/mspec run -B $(srcdir)/spec/default.mspec $(MSPECOPT) $(SPECOPTS)
$(RUNRUBY) -r./$(arch)-fake -r$(tooldir)/rubyspec_temp \
$(srcdir)/spec/mspec/bin/mspec run -B $(srcdir)/spec/default.mspec $(MSPECOPT) $(SPECOPTS)
$(ACTIONS_ENDGROUP)
no-test-spec:

13
tool/rubyspec_temp.rb Normal file
View File

@ -0,0 +1,13 @@
require "tmpdir"
require "fileutils"
if (tmpdir = Dir.mktmpdir("rubyspec_temp.")).size > 80
# On macOS, the default TMPDIR is very long, inspite of UNIX socket
# path length is limited.
Dir.rmdir(tmpdir)
tmpdir = Dir.mktmpdir("rubyspec_temp.", "/tmp")
end
# warn "tmpdir(#{tmpdir.size}) = #{tmpdir}"
END {FileUtils.rm_rf(tmpdir)}
ENV["TMPDIR"] = ENV["SPEC_TEMP_DIR"] = tmpdir