guix-play/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 tests: Add missing module import. 2021-09-17 01:27:40 +02:00
cache.scm cache: Catch invalid 'last-expiry-cleanup'. 2022-06-04 12:04:23 +02:00
challenge.scm guix: Move narinfo code from substitute script to module. 2021-01-16 11:51:03 +00:00
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 linux-container: Reset jailed root permissions. 2020-10-01 12:51:13 +02:00
cpan.scm import: cpan: Rewrite tests to use an HTTP server instead of mocking. 2020-01-15 18:40:43 +01:00
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 tests: Fix malformed JSON. 2020-12-21 17:47:35 +01:00
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 pack: Streamline how files are included in tarballs. 2021-07-18 02:10:49 -04:00
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 guix: Add globstar support. 2020-12-09 22:25:17 +01:00
gnu-maintenance.scm gnu-maintenance: Test latest-html-release. 2022-09-26 23:29:37 +02:00
go.scm tests: go: Fix typo. 2021-09-28 22:00:47 +02:00
grafts.scm grafts: Support rewriting UTF-16 and UTF-32 store references. 2021-04-15 03:22:55 -04:00
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 serialization: 'restore-file' sets canonical timestamp and permissions. 2020-12-15 17:32:09 +01:00
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 tests: Simplify shell exit status negation; 2020-09-28 21:06:36 -05:00
guix-build.sh guix build: Warn when attempting to build an unsupported package. 2022-02-18 14:14:38 +01:00
guix-daemon.sh tests: Simplify shell exit status negation; 2020-09-28 21:06:36 -05:00
guix-describe.sh guix describe: Adjust test to latest changes. 2022-09-04 23:10:10 +02:00
guix-download.sh tests: Simplify shell exit status negation; 2020-09-28 21:06:36 -05:00
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 tests: Simplify shell exit status negation; 2020-09-28 21:06:36 -05:00
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 packages: 'package-field-location' handles 'search-path' returning #f. 2021-02-22 12:07:45 +01:00
guix-pack-localstatedir.sh
guix-pack-relocatable.sh tests: pack-relocatable: Ensure commands can run in the current namespace. 2020-12-04 13:12:08 +00:00
guix-pack.sh tests: Fix wrong target triplets. 2022-05-25 09:28:43 +02:00
guix-package-aliases.sh guix build: Record package transformations in manifest entries. 2020-10-02 23:28:09 +02:00
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 repl: Look for script files in (getcwd). 2020-09-16 16:04:01 +02:00
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: Add 'generic-git' updater. 2021-09-18 19:37:45 +02:00
import-github.scm tests: Adjust to (guix import github) changes. 2022-03-07 22:49:27 +01:00
import-utils.scm import: utils: Skip not found packages. 2021-09-01 23:41:42 +02:00
inferior.scm guix: inferior: Fix the behaviour of open-inferior #:error-port. 2022-07-08 13:51:34 +01:00
ipfs.scm Add (guix ipfs). 2021-04-12 18:42:22 +02:00
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 services: openntpd: Remove support for deprecated "-s" option. 2021-01-16 23:30:59 +01:00
offload.scm offload: Modify the build-machine record to accept multiple systems. 2020-08-25 13:45:27 -04:00
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 Merge branch 'master' into core-updates 2021-07-18 19:50:01 +02:00
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 database: Validate #:nar-size and #:time when registering store items. 2021-01-31 21:49:58 +01:00
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 swh: Test proper handling of null visit snapshot URL. 2021-01-21 11:22:08 +01:00
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