tests: Fix race condition in profile locking test.
Previously, there was a possibility that "guix install emacs" would grab
the lock before "guix package -m $module_dir/manifest.scm". When that
happened, the test would start building Emacs and all its dependencies,
which could take a while and some disk space.
This is a followup to b1fb663404
.
* tests/guix-package.sh: In profile locking test, emit
"$module_dir/ready" from the manifest and wait for it to exist before
running "guix install emacs".
master
parent
3f8e890d91
commit
dac7928d50
|
@ -468,8 +468,10 @@ guix package --list-profiles | grep '\.guix-profile'
|
|||
|
||||
# Make sure we can properly lock a profile.
|
||||
mkdir "$module_dir"
|
||||
echo '(sleep 60)' > "$module_dir/manifest.scm"
|
||||
echo "(open-output-file \"$module_dir/ready\") (sleep 60)" \
|
||||
> "$module_dir/manifest.scm"
|
||||
guix package -m "$module_dir/manifest.scm" -p "$module_dir/profile" &
|
||||
pid=$!
|
||||
while [ ! -f "$module_dir/ready" ] ; do sleep 0.5 ; done
|
||||
if guix install emacs -p "$module_dir/profile"; then kill $pid; false; else true; fi
|
||||
kill $pid
|
||||
|
|
Reference in New Issue