gdb/testsuite: don't use source tree as temporary HOME directory

In this commit:

  commit 1845e25464
  Date:   Wed May 5 16:50:17 2021 +0100

      gdb/guile: perform tilde expansion when sourcing guile scripts

A test was added that tries to source a guile script from the users
HOME directory.  In order to achieve this the test (temporarily)
modifies $HOME to point into the binutils-gdb source tree.

The problem with this is that sourcing a guile script can cause the
guile script to be byte compiled and written into a .cache/ directory,
which is stored .... in the $HOME directory.

The result was that the test added in the above commit would cause a
.cache/ directory to be added into the binutils-gdb source tree.

In this commit the test is updated to create a new directory in the
build tree, the file we want to source is copied over, and $HOME is
set to point at the location in the build tree.  Now when the test is
run the .cache/ directory is created in the build tree, leaving the
source tree untouched.

gdb/testsuite/ChangeLog:

	* gdb.guile/guile.exp: Don't use the source directory as a
	temporary HOME directory.
This commit is contained in:
Andrew Burgess 2021-05-10 16:49:56 +01:00
parent 0709cf686d
commit 9344937b04
2 changed files with 17 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2021-05-10 Andrew Burgess <andrew.burgess@embecosm.com>
* gdb.guile/guile.exp: Don't use the source directory as a
temporary HOME directory.
2021-05-10 Simon Marchi <simon.marchi@polymtl.ca>
* gdb.arch/amd64-osabi.exp (test_osabi_none): Use the

View File

@ -85,7 +85,18 @@ gdb_test "guile (print a)" "= .*aliases -- User-defined aliases of other command
# Verify that we can source a guile script using ~ for the HOME directory.
save_vars { env(HOME) } {
set env(HOME) $srcdir/$subdir
# Create a new directory to act as a temporary HOME directory.
set tmp_home [standard_output_file tmp_home]
file mkdir $tmp_home
# Copy the file we want to source into the new HOME directory.
gdb_remote_download host ${srcdir}/${subdir}/source2.scm \
${tmp_home}/source2.scm
# Arrange to use the new HOME directory.
set env(HOME) $tmp_home
clean_restart
# Finally, source the file out of our new HOME directory.
gdb_test "source ~/source2.scm" "yes"
}