From bf9206d8edb06cc4c62fe5559504cf1518c2de9e Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 20 Nov 2019 12:08:56 +0100 Subject: package: Allow multiple '--manifest' options. * guix/scripts/package.scm (manifest-action): Remove. (%actions): Remove it. (load-manifest): New procedure. (process-actions): Handle 'manifest' options. Define 'files' from 'manifest' options. Define 'manifest' based on FILES. Define 'trans' to represent the final transaction. * tests/guix-package.sh: Test it. * doc/guix.texi (Invoking guix package): Mention --- tests/guix-package.sh | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'tests/guix-package.sh') diff --git a/tests/guix-package.sh b/tests/guix-package.sh index 7ad0699380..6d081d58be 100644 --- a/tests/guix-package.sh +++ b/tests/guix-package.sh @@ -394,6 +394,19 @@ guix package -I | grep guile test `guix package -I | wc -l` -eq 1 guix package --rollback --bootstrap +# Applying two manifests. +cat > "$module_dir/manifest2.scm"<manifest (list p)) +EOF +guix package --bootstrap \ + -m "$module_dir/manifest.scm" -m "$module_dir/manifest2.scm" +guix package -I | grep guile +guix package -I | grep eliug +test `guix package -I | wc -l` -eq 2 +guix package --rollback --bootstrap + # Applying a manifest file with inferior packages. cat > "$module_dir/manifest.scm"< Date: Fri, 29 Nov 2019 15:31:04 +0100 Subject: 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". --- tests/guix-package.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'tests/guix-package.sh') 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 -- cgit v1.2.3