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 utils: Fix wrap-script argument handling. 2022-01-10 11:44:29 -05:00
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 import: cran: Fix description->package test. 2021-12-18 04:09:47 +01:00
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 Merge branch 'master' into core-updates-frozen 2021-11-17 23:43:14 +01:00
elm.scm import: Add Elm importer. 2022-05-22 01:07:52 +02:00
elpa.scm import: elpa: Support ‘upstream-name’ property. 2021-12-18 22:51:55 +01:00
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 tests: Fix file-needed/recursive on aarch64-linux. 2022-01-16 20:21:27 -08:00
guix-archive.sh
guix-authenticate.sh tests: Move keys into ./tests/keys/ and add a third ed25519 key. 2021-12-22 10:53:19 +01:00
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 environment: Add tests for '--profile'. 2021-10-25 19:02:32 +02:00
guix-environment.sh Merge remote-tracking branch 'origin/master' into core-updates-frozen 2021-10-31 14:49:47 +02:00
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 tests: Clean up after 'tests/guix-graph.sh'. 2022-01-16 23:56:56 +01:00
guix-hash.sh guix hash: Allow '--exclude-vcs' option using 'git' serializer. 2022-01-04 20:37:29 -05:00
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 package: Honor '--dry-run' when target profile is already in store. 2022-01-19 22:07:54 +01:00
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 upstream: Support updating and fetching 'git-fetch' origins. 2022-01-06 16:27:30 +01:00
modules.scm Remove VM generation dead-code. 2021-12-23 10:54:00 +01:00
monads.scm monads: Add 'mparameterize'. 2022-07-10 23:57:14 +02:00
nar.scm daemon: Do not deduplicate files smaller than 8 KiB. 2021-11-16 14:34:28 +01:00
networking.scm
offload.scm
opam.scm tests: Adjust opam and pypi tests to simplified inputs. 2021-11-18 22:56:10 +01:00
openpgp.scm tests: Move keys into ./tests/keys/ and add a third ed25519 key. 2021-12-22 10:53:19 +01:00
pack.scm
packages.scm packages: Add 'package-unique-version-prefix'. 2022-04-04 22:58:03 +02:00
pki.scm
print.scm Merge branch 'master' into core-updates-frozen 2021-11-17 23:43:14 +01:00
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 daemon: Do not deduplicate files smaller than 8 KiB. 2021-11-16 14:34:28 +01:00
store-roots.scm
store.scm Merge remote-tracking branch 'origin/master' into core-updates-frozen 2021-12-05 19:17:41 +01:00
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 syscalls: Add 'openpty' and 'login-tty'. 2021-10-26 12:46:27 +02:00
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 tests: Add failing tests for changed-inputs on new style inputs. 2022-01-05 21:17:58 +01:00
utils.scm utils: Define a target-x86-32? and target-x86-64? predicate. 2021-11-07 01:38:23 -04:00
uuid.scm
workers.scm