mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-07-06 09:55:46 +00:00
tests: Avoid writing into $HOME during virsh-snapshot
In a constrained CI environment, where it is intentional that attempts to write outside the current directory will fail, virsh-snapshot was failing: @@ -1,2 +1,3 @@ error: invalid argument: parent s3 for snapshot s2 not found error: marker +error: Failed to create '/home/travis/.cache/libvirt/virsh': Permission denied FAIL virsh-snapshot (exit status: 1) But we've already solved the problem in virsh-uriprecedence: tell virsh to use XDG locations pointing to somewhere we can write rather than its default of falling back to $HOME with the test being at risk of breaking due to the user's environment and/or unacceptably altering the user's normal cache. Hoist that solution into test-lib.sh, so that all scripts can use it as needed. While at it, fix a latent typo where XDG_RUNTIME_HOME was set to a literal relative directory name "XDG_CACHE_HOME" (the typo did not affect virsh-uriprecedence, but could matter to other clients). Fixes:280a2b41
Fixes:398de147
Reported-by: Daniel P. Berrangé <berrange@redhat.com> Signed-off-by: Eric Blake <eblake@redhat.com>
This commit is contained in:
parent
fc22d3b6d1
commit
b188660865
@ -222,6 +222,19 @@ mkfifo_or_skip_()
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Create mock XDG files/directories to avoid permission problems.
|
||||||
|
# As it points inside $test_dir_, it is automatically cleaned.
|
||||||
|
mock_xdg_()
|
||||||
|
{
|
||||||
|
export XDG_CONFIG_HOME="$t_/.config"
|
||||||
|
export XDG_CACHE_HOME="$t_/.cache"
|
||||||
|
export XDG_RUNTIME_HOME="$XDG_CACHE_HOME"
|
||||||
|
|
||||||
|
mkdir -p "$XDG_CONFIG_HOME/libvirt" "$XDG_CONFIG_HOME/virsh"
|
||||||
|
mkdir -p "$XDG_CACHE_HOME/libvirt" "$XDG_CACHE_HOME/virsh"
|
||||||
|
mkdir -p "$XDG_RUNTIME_HOME/libvirt" "$XDG_RUNTIME_HOME/virsh"
|
||||||
|
}
|
||||||
|
|
||||||
test_dir_=$(pwd)
|
test_dir_=$(pwd)
|
||||||
|
|
||||||
this_test_() { echo "./$0" | sed 's,.*/,,'; }
|
this_test_() { echo "./$0" | sed 's,.*/,,'; }
|
||||||
|
@ -26,6 +26,8 @@ fi
|
|||||||
|
|
||||||
fail=0
|
fail=0
|
||||||
|
|
||||||
|
mock_xdg_ || framework_failure
|
||||||
|
|
||||||
# The test driver loses states between restarts, so we perform a script
|
# The test driver loses states between restarts, so we perform a script
|
||||||
# with some convenient markers for later post-processing of output.
|
# with some convenient markers for later post-processing of output.
|
||||||
$abs_top_builddir/tools/virsh --connect test:///default >out 2>err '
|
$abs_top_builddir/tools/virsh --connect test:///default >out 2>err '
|
||||||
|
@ -11,17 +11,7 @@ virsh_cmd="$virsh_bin"
|
|||||||
counter=0
|
counter=0
|
||||||
ret=0
|
ret=0
|
||||||
|
|
||||||
cleanup_() { rm -rf "$tmphome"; }
|
mock_xdg_ || framework_failure
|
||||||
|
|
||||||
# Create all mock files/directories to avoid permission problems
|
|
||||||
tmphome="$PWD/tmp_home"
|
|
||||||
export XDG_CONFIG_HOME="$tmphome/.config"
|
|
||||||
export XDG_CACHE_HOME="$tmphome/.cache"
|
|
||||||
export XDG_RUNTIME_HOME="XDG_CACHE_HOME"
|
|
||||||
|
|
||||||
mkdir -p "$XDG_CONFIG_HOME/libvirt" "$XDG_CONFIG_HOME/virsh"
|
|
||||||
mkdir -p "$XDG_CACHE_HOME/libvirt" "$XDG_CACHE_HOME/virsh"
|
|
||||||
mkdir -p "$XDG_RUNTIME_HOME/libvirt" "$XDG_RUNTIME_HOME/virsh"
|
|
||||||
|
|
||||||
is_uri_good()
|
is_uri_good()
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user