Currently the tests are executed in the fixed name directory "tmp" under the top source directory. However it makes the tests fail when the source path contains symlinks. Or unable to even start if the top source directory is read-only, e.g., remote-mounting in read-only mode from virtual machines.
Also, with the fixed directory, there is no way to avoid pend in TestGemPackage#test_extract_symlink_parent_doesnt_delete_user_dir.
Instead of creating the fixed name directory, this PR allows to use a different path given with the environment variable "GEM_TEST_TMPDIR". The default path is, as well as the current behavior, "tmp" from the top source directory.
[rubygems/rubygems] Honor a specified path as the temporary diretory if given
The problem¶
Currently the tests are executed in the fixed name directory "tmp"
under the top source directory. However it makes the tests fail when
the source path contains symlinks. Or unable to even start if the top
source directory is read-only, e.g., remote-mounting in read-only mode
from virtual machines.
Also, with the fixed directory, there is no way to avoid
pendinTestGemPackage#test_extract_symlink_parent_doesnt_delete_user_dir.The fix¶
Instead of creating the fixed name directory, this PR allows to use a
different path given with the environment variable "GEM_TEST_TMPDIR".
The default path is, as well as the current behavior, "tmp" from the
top source directory.
Caveat¶
It is the caller's responsibility to make the directory safe (owned,
world unwritable, or sticky) when setting the environment variable.
https://github.com/rubygems/rubygems/commit/bf00850656