guix/tests
Ludovic Courtès 8bd4126917
substitute: Retry downloading when a nar is unavailable.
Fixes <https://issues.guix.gnu.org/57978>
Reported by Attila Lendvai <attila@lendvai.name>.

Previously, if a narinfo was available but its corresponding nar was
missing (for instance because the narinfo was cached and the server
became unreachable in the meantime), 'guix substitute --substitute'
would try to download the nar from its preferred location and abort when
that fails.  This change forces one retry with each of the URLs.

* guix/scripts/substitute.scm (download-nar): Do not catch
'http-get-error?' exceptions.
(system-error?, network-error?, process-substitution/fallback): New
procedures.
(process-substitution): Call 'process-substitution/fallback' upon
'network-error?'.
* tests/substitute.scm ("substitute, first URL has narinfo but lacks nar, second URL unauthorized")
("substitute, first URL has narinfo but nar is 404, both URLs authorized")
("substitute, first URL has narinfo but nar is 404, one URL authorized")
("substitute, narinfo is available but nar is missing"): New tests.
2022-09-28 22:28:27 +02:00
..
keys tests: Ensure test OpenPGP keys never expire. 2022-05-18 23:20:21 +02:00
services services: Add lightdm-service-type. 2022-08-28 22:28:47 -04:00
accounts.scm
base16.scm
base32.scm
base64.scm
boot-parameters.scm tests: Add test for menu-entry roundtrips as sexps. 2022-08-28 23:37:28 +02:00
bournish.scm
build-emacs-utils.scm tests: build-emacs-utils: Allow test to pass on Emacs 27 too. 2022-07-13 10:49:40 -04:00
build-utils.scm
builders.scm
cache.scm cache: Catch invalid 'last-expiry-cleanup'. 2022-06-04 12:04:23 +02:00
challenge.scm
channels.scm git-authenticate: Ensure the target is a descendant of the introductory commit. 2022-02-14 11:23:08 +01:00
combinators.scm
containers.scm
cpan.scm
cpio.scm
cran.scm
crate.scm tests: Adjust crate importer test to spdx changes. 2022-05-30 16:34:39 +02:00
cve-sample.json
cve.scm
debug-link.scm
derivations.scm derivations: Coalesce inputs that have the same output path. 2022-03-07 22:49:27 +01:00
discovery.scm
egg.scm
elm.scm import: Add Elm importer. 2022-05-22 01:07:52 +02:00
elpa.scm
file-systems.scm
gem.scm import: gem: Support importing a specific version of a gem. 2022-09-17 19:09:27 +02:00
gexp.scm tests: Fix wrong target triplets. 2022-05-25 09:28:43 +02:00
git-authenticate.scm git-authenticate: Ensure the target is a descendant of the introductory commit. 2022-02-14 11:23:08 +01:00
git.scm git: Add 'commit-descendant?'. 2022-02-14 11:23:07 +01:00
glob.scm
gnu-maintenance.scm gnu-maintenance: Test latest-html-release. 2022-09-26 23:29:37 +02:00
go.scm
grafts.scm
graph.scm tests: Adjust 'guix graph' test to latest OCaml changes. 2022-07-01 23:29:16 +02:00
gremlin.scm
guix-archive.sh
guix-authenticate.sh
guix-build-branch.sh
guix-build.sh guix build: Warn when attempting to build an unsupported package. 2022-02-18 14:14:38 +01:00
guix-daemon.sh
guix-describe.sh guix describe: Adjust test to latest changes. 2022-09-04 23:10:10 +02:00
guix-download.sh
guix-environment-container.sh
guix-environment.sh
guix-gc.sh
guix-git-authenticate.sh git-authenticate: Ensure the target is a descendant of the introductory commit. 2022-02-14 11:23:08 +01:00
guix-graph.sh
guix-hash.sh
guix-home.sh tests: Make tests inside container reproducible. 2022-08-05 15:28:03 +02:00
guix-lint.sh
guix-pack-localstatedir.sh
guix-pack-relocatable.sh
guix-pack.sh tests: Fix wrong target triplets. 2022-05-25 09:28:43 +02:00
guix-package-aliases.sh
guix-package-net.sh
guix-package.sh scripts: package: Transform before creating manifest entries. 2022-05-23 16:24:46 +02:00
guix-repl.sh
guix-shell-export-manifest.sh shell: Fix '--export-manifest' for cached profiles and when '-p' is used. 2022-06-16 23:57:40 +02:00
guix-shell.sh store: Open daemon connections with SOCK_CLOEXEC. 2022-09-04 23:10:10 +02:00
guix-style.sh style: Add '--whole-file' option. 2022-08-08 11:53:33 +02:00
guix-system.sh guix system: Do not use 'vm-image.tmpl' in tests. 2022-09-04 23:10:10 +02:00
hackage.scm import: hackage: Filter upper/mixed case dependencies too. 2022-06-06 13:26:51 +02:00
hexpm.scm import: Add hex.pm importer. 2022-06-15 10:18:34 +02:00
home-import.scm home: import: Use (guix read-print) to render the config file. 2022-09-20 19:24:31 +02:00
home-services.scm home: services: Add 'lookup-home-service-types' procedure. 2022-06-04 12:04:24 +02:00
http-client.scm tests: Add (guix http-client) tests. 2022-03-06 22:49:46 +01:00
import-git.scm
import-github.scm tests: Adjust to (guix import github) changes. 2022-03-07 22:49:27 +01:00
import-utils.scm
inferior.scm guix: inferior: Fix the behaviour of open-inferior #:error-port. 2022-07-08 13:51:34 +01:00
ipfs.scm
lint.scm download: Use https for main KDE source. 2022-03-29 14:43:14 +03:00
minetest.scm
modules.scm
monads.scm monads: Add 'mparameterize'. 2022-07-10 23:57:14 +02:00
nar.scm
networking.scm
offload.scm
opam.scm
openpgp.scm
pack.scm
packages.scm packages: Add 'package-unique-version-prefix'. 2022-04-04 22:58:03 +02:00
pki.scm
print.scm
processes.scm
profiles.scm profiles: Support the creation of profiles with version 3 manifests. 2022-07-08 23:58:11 +02:00
publish.scm publish: Send uncached narinfo replies from the main thread. 2022-04-29 18:07:17 +02:00
pypi.scm tests: Adjust pypi test to recent changes. 2022-02-11 23:51:39 +01:00
read-print.scm read-print: Correctly support multiple same-named newline forms. 2022-09-20 19:24:31 +02:00
records.scm tests: Add sanitizer test. 2022-07-01 12:10:29 +02:00
scripts.scm
search-paths.scm
services.scm services: Make <service-type> 'description' field mandatory. 2022-05-18 22:29:54 +02:00
sets.scm
size.scm
status.scm status: Relay "updating substitutes" messages. 2022-06-26 23:19:14 +02:00
store-database.scm
store-deduplication.scm
store-roots.scm
store.scm
style.scm style: Adjust test to not emit blank lines. 2022-08-08 11:22:32 +02:00
substitute.scm substitute: Retry downloading when a nar is unavailable. 2022-09-28 22:28:27 +02:00
swh.scm
syscalls.scm
system.scm system: <operating-system> compiler truly honors the 'system' argument. 2022-06-15 00:25:20 +02:00
test.drv
texlive.scm tests: Adjust texlive importer tests. 2022-07-22 23:03:46 +02:00
transformations.scm transformations: Preserve transformation order in package property. 2022-05-05 23:56:58 +02:00
ui.scm ui: Improve pager selection logic when less is not installed. 2022-06-16 23:57:41 +02:00
union.scm
upstream.scm
utils.scm
uuid.scm
workers.scm