summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2019-11-29 15:31:04 +0100
committerLudovic Courtès <ludo@gnu.org>2019-11-29 15:54:20 +0100
commitdac7928d502d9ba4fc6a9621e5b2b15019d92d5b (patch)
tree25c948721bb3117f80536b8cd1cc5bf3b384e765
parent3f8e890d91975a26ecb417e9115805159aa3170d (diff)
downloadpatches-dac7928d502d9ba4fc6a9621e5b2b15019d92d5b.tar
patches-dac7928d502d9ba4fc6a9621e5b2b15019d92d5b.tar.gz
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 b1fb663404894268b5ee92c040f12c52c0bee425. * 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".
-rw-r--r--tests/guix-package.sh4
1 files changed, 3 insertions, 1 deletions
diff --git a/tests/guix-package.sh b/tests/guix-package.sh
index 6d081d58be..f9fb31033e 100644
--- a/tests/guix-package.sh
+++ b/tests/guix-package.sh
@@ -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