lix/tests
Maximilian Bosch 559fd7ffe7
nix flake check: improve error message if overlay is not a lambda (#8582)
* nix flake check: improve error message if overlay is not a lambda

Suppose you have an overlay like this

    {
      inputs = { /* ... */ };
      outputs = { flake-utils, ... }: flake-utils.lib.eachDefaultSystem
        (system: {
          overlays.default = final: prev: {

          };
        });
    }

then `nix flake check` (correctly) fails because `overlays` are supposed
to have the structure `overlays.<name> = final: prev: exp`. However, the
error-message is a little bit counter-intuitive:

    error: overlay does not take an argument named 'final'

While one might guess where the error actually comes from because the
trace above says `… while checking the overlay 'overlays.x86_64-linux'`
this is still pretty confusing because it complains about an argument
not being named `final` even though that's evidently the case.

With this change, the error-message actually makes it clear what's
wrong:

    [ma27@carsten:~/Projects/nix/tmp]$ nix flake check --extra-experimental-features 'nix-command flakes' path:$(pwd)
    error:
           … while checking flake output 'overlays'

             at /nix/store/clgblnxx003hyrq8qkz5ab6kgqkck6qc-source/flake.nix:4:5:

                3|   outputs = { ... }: {
                4|     overlays.x86_64-linux.snens = final: prev: {
                 |     ^
                5|       kek = throw "snens";

           … while checking the overlay 'overlays.x86_64-linux'

             at /nix/store/clgblnxx003hyrq8qkz5ab6kgqkck6qc-source/flake.nix:4:5:

                3|   outputs = { ... }: {
                4|     overlays.x86_64-linux.snens = final: prev: {
                 |     ^
                5|       kek = throw "snens";

           error: overlay is not a lambda, but a set instead
2023-06-27 14:58:29 +02:00
..
ca Make tests/dyn-drv test dir 2023-04-19 18:49:50 -04:00
common Cleanup test skipping 2023-03-16 18:43:03 -04:00
config
dyn-drv Rename a few things in new tests 2023-05-08 08:01:58 -04:00
flakes nix flake check: improve error message if overlay is not a lambda (#8582) 2023-06-27 14:58:29 +02:00
installer test: Make the installer work on old rhel versions 2023-03-31 15:29:50 +02:00
lang rename files referring to antiquotation 2023-06-15 02:29:31 +02:00
nixos Allow tarball URLs to redirect to a lockable immutable URL 2023-06-13 14:17:45 +02:00
plugins Remove RegisterPrimOp constructor without support for documentation 2023-06-14 22:37:52 +02:00
test-libstoreconsumer Fix build hook error for libstore library users 2023-06-15 14:32:00 +02:00
add.sh
bad.tar.xz
bash-profile.sh tests: Rename nix-profile.sh -> bash-profile.sh 2022-03-02 11:21:00 +01:00
big-derivation-attr.nix Fix segfault or stack overflow caused by large derivation fields 2022-01-19 15:21:56 +01:00
binary-cache-build-remote.sh
binary-cache.sh Harden tests' bash 2023-03-08 10:26:30 -05:00
brotli.sh
build-delete.sh Harden tests' bash 2023-03-08 10:26:30 -05:00
build-dry.sh Harden tests' bash 2023-03-08 10:26:30 -05:00
build-hook-ca-fixed.nix tests: grep for string in nix log for remote-builds 2022-03-04 16:58:27 +01:00
build-hook-ca-floating.nix Fix nix log with CA derivations 2022-12-08 16:03:20 -05:00
build-hook.nix Fix nix log with CA derivations 2022-12-08 16:03:20 -05:00
build-remote-content-addressed-fixed.sh
build-remote-content-addressed-floating.sh tests: remove 'ca-references' feature 2022-04-21 10:06:39 +02:00
build-remote-input-addressed.sh
build-remote-trustless-after.sh Experimentally allow forcing nix-daemon trust; use this to test 2023-04-17 13:06:21 -04:00
build-remote-trustless-should-fail-0.sh Experimentally allow forcing nix-daemon trust; use this to test 2023-04-17 13:06:21 -04:00
build-remote-trustless-should-pass-0.sh Experimentally allow forcing nix-daemon trust; use this to test 2023-04-17 13:06:21 -04:00
build-remote-trustless-should-pass-1.sh Experimentally allow forcing nix-daemon trust; use this to test 2023-04-17 13:06:21 -04:00
build-remote-trustless-should-pass-2.sh nix-testing -> daemon-trust-override 2023-04-17 09:35:43 -04:00
build-remote-trustless-should-pass-3.sh Experimentally allow forcing nix-daemon trust; use this to test 2023-04-17 13:06:21 -04:00
build-remote-trustless.sh Experimentally allow forcing nix-daemon trust; use this to test 2023-04-17 13:06:21 -04:00
build-remote.sh Cleanup test skipping 2023-03-16 18:43:03 -04:00
build.sh test: add test for non-defaulting for stding installable input 2023-06-12 08:40:17 -04:00
ca-shell.nix nix-shell: restore backwards-compat with old nixpkgs 2022-06-13 23:29:28 +02:00
case-hack.sh
case.nar
check-refs.nix move unsafeDiscardReferences out of outputChecks 2023-01-03 18:53:01 +01:00
check-refs.sh Harden tests' bash 2023-03-08 10:26:30 -05:00
check-reqs.nix
check-reqs.sh Harden tests' bash 2023-03-08 10:26:30 -05:00
check.nix tests: don't refer to TMPDIR 2022-12-06 16:36:42 +01:00
check.sh Better document build failure exit codes 2023-06-22 14:29:45 -04:00
common.sh Harden tests' bash 2023-03-08 10:26:30 -05:00
completions.sh SourceExprCommand: swallow EvalError, add tests for this 2022-11-03 10:11:28 +01:00
compression-levels.sh Add compression level for NARs 2021-10-12 02:14:36 -04:00
compute-levels.sh Harden tests' bash 2023-03-08 10:26:30 -05:00
config.nix.in
config.sh tests/config: test retrieving a single setting's value with nix show-config <setting> 2023-01-13 07:57:55 -08:00
db-migration.sh Cleanup test skipping 2023-03-16 18:43:03 -04:00
dependencies.builder0.sh Make nix why-depends quieter by default 2022-01-19 14:24:14 +01:00
dependencies.nix Add a simple test for nix why-depends 2022-01-18 16:54:53 +01:00
dependencies.sh Harden tests' bash 2023-03-08 10:26:30 -05:00
derivation-json.sh Create nix derivation add command 2023-04-07 08:34:58 -04:00
dummy
dump-db.sh Allow running all the tests with the daemon 2021-07-27 17:06:11 +02:00
eval-store.sh Harden tests' bash 2023-03-08 10:26:30 -05:00
eval.nix add tests for nix eval and nix-instantiate 2022-03-16 21:01:51 +02:00
eval.sh Fix SourcePath::resolveSymlinks() 2023-06-06 11:24:10 +02:00
experimental-features.sh Fix some issues with experimental config settings 2023-04-17 12:41:04 -04:00
export-graph.nix
export-graph.sh Harden tests' bash 2023-03-08 10:26:30 -05:00
export.sh
failing.nix nix-store --serve: pass on settings.keepFailed from SSH store 2021-08-31 13:11:46 +02:00
fetchClosure.sh Disable the fetchClosure test for old daemons 2023-05-24 15:35:46 +02:00
fetchGit.sh Add dirtyRev and dirtyShortRev to fetchGit 2023-06-24 14:17:25 +10:00
fetchGitRefs.sh Cleanup test skipping 2023-03-16 18:43:03 -04:00
fetchGitSubmodules.sh Cleanup test skipping 2023-03-16 18:43:03 -04:00
fetchMercurial.sh Cleanup test skipping 2023-03-16 18:43:03 -04:00
fetchPath.sh Don’t create a file in the worktree in the fetchPath test 2022-03-30 11:42:47 +02:00
fetchTree-file.sh Harden tests' bash 2023-03-08 10:26:30 -05:00
fetchurl.sh Harden tests' bash 2023-03-08 10:26:30 -05:00
filter-source.nix
filter-source.sh
fixed.builder1.sh
fixed.builder2.sh
fixed.nix build: also throw hash-mismatch errors if buildMode == bmCheck 2021-09-27 15:44:39 +02:00
fixed.sh build: also throw hash-mismatch errors if buildMode == bmCheck 2021-09-27 15:44:39 +02:00
fmt.sh Harden tests' bash 2023-03-08 10:26:30 -05:00
fmt.simple.sh nix-fmt: add command 2022-03-11 10:00:19 -05:00
function-trace.sh Harden tests' bash 2023-03-08 10:26:30 -05:00
gc-auto.sh Allow running all the tests with the daemon 2021-07-27 17:06:11 +02:00
gc-concurrent.builder.sh
gc-concurrent.nix
gc-concurrent.sh
gc-concurrent2.builder.sh
gc-non-blocking.sh gc-non-blocking.sh: Don't hang indefinitely if the GC roots server crashes 2021-12-13 19:01:38 +01:00
gc-runtime.nix
gc-runtime.sh Cleanup test skipping 2023-03-16 18:43:03 -04:00
gc.sh Split out nix-collect-garbage -d test to new file 2023-06-14 19:01:07 -04:00
hash-check.nix
hash.sh nix-hash: support base-64 and SRI format 2023-03-16 03:08:42 +08:00
import-derivation.nix
import-derivation.sh
impure-derivations.nix Provide default values for outputHashAlgo and outputHashMode 2022-03-31 16:56:44 +02:00
impure-derivations.sh Gate experimental features in DerivationOutput::fromJSON 2023-04-17 17:36:12 -04:00
init.sh nix-testing -> daemon-trust-override 2023-04-17 09:35:43 -04:00
install-darwin.sh Harden tests' bash 2023-03-08 10:26:30 -05:00
lang.sh eval: Fix crash on missing printValue tBlackhole case 2023-04-03 15:32:42 +02:00
legacy-ssh-store.sh Add Store::isTrustedClient() 2023-04-06 19:59:57 -04:00
linux-sandbox-cert-test.nix Check exact error codes in linux-sandbox.sh 2023-05-22 23:39:31 +02:00
linux-sandbox.sh Better document build failure exit codes 2023-06-22 14:29:45 -04:00
local-store.sh Add Store::isTrustedClient() 2023-04-06 19:59:57 -04:00
local.mk Support opening local store with database on read-only filesystem (#8356) 2023-06-20 11:34:09 +02:00
logging.sh Implement regression test for empty logs loaded via nix log 2022-03-24 22:31:52 +01:00
misc.sh Harden tests' bash 2023-03-08 10:26:30 -05:00
multiple-outputs.nix Add some tests for illegal output names 2023-01-18 14:21:17 +01:00
multiple-outputs.sh Harden tests' bash 2023-03-08 10:26:30 -05:00
nar-access.nix
nar-access.sh Harden tests' bash 2023-03-08 10:26:30 -05:00
nix-build-examples.nix
nix-build.sh
nix-channel.sh Test nix-channel --list-generations 2023-06-02 10:21:30 +02:00
nix-collect-garbage-d.sh Split out nix-collect-garbage -d test to new file 2023-06-14 19:01:07 -04:00
nix-copy-ssh.sh
nix-daemon-untrusting.sh Experimentally allow forcing nix-daemon trust; use this to test 2023-04-17 13:06:21 -04:00
nix-profile.sh Fix the printing of the installables on nix profile install conflict 2023-05-16 11:41:58 +02:00
nix-shell.sh Fix nix print-dev-env & nix develop with drv paths 2023-05-10 11:29:45 -04:00
nix_path.sh Revert "getDefaultNixPath: actually respect {restrict,pure}-eval" 2023-02-27 15:11:36 +01:00
optimise-store.sh Allow running all the tests with the daemon 2021-07-27 17:06:11 +02:00
output-normalization.sh Test nix build --json return output paths in floating CA case 2023-02-10 18:04:13 -05:00
parallel.builder.sh
parallel.nix
parallel.sh
pass-as-file.sh
path-from-hash-part.sh Add command 'nix store path-from-hash-part' 2022-10-18 16:51:12 +02:00
path.nix
placeholders.sh
plugins.sh Cleanup test skipping 2023-03-16 18:43:03 -04:00
post-hook.sh tests/post-hook: remove TODO and --derivation upload 2023-05-08 12:58:59 +02:00
pure-eval.nix
pure-eval.sh Harden tests' bash 2023-03-08 10:26:30 -05:00
push-to-store-old.sh tests/post-hook: test to see if all outputs are passed 2023-05-08 12:43:56 +02:00
push-to-store.sh tests/post-hook: remove TODO and --derivation upload 2023-05-08 12:58:59 +02:00
read-only-store.sh Support opening local store with database on read-only filesystem (#8356) 2023-06-20 11:34:09 +02:00
readfile-context.nix Test that the result of readFile gets ref-scanned 2022-11-14 16:13:26 +01:00
readfile-context.sh Add test for readFile keeping context 2022-01-09 13:42:36 +03:00
recursive.nix Move test/recursive.sh nix expr to file 2023-04-19 19:36:05 -04:00
recursive.sh Merge branch 'master' into angerman/mac-fix-recursive-nix 2023-06-09 13:06:47 +02:00
referrers.sh Revert "Fix referrers test" 2021-10-15 16:58:21 +02:00
remote-store.sh Add Store::isTrustedClient() 2023-04-06 19:59:57 -04:00
repair.sh Make --repair-path also repair corrupt optimised links 2022-01-11 11:57:45 +01:00
repl.sh Deduplicate string literal rendering, fix 4909 2023-04-09 22:42:20 +02:00
restricted.nix
restricted.sh Harden tests' bash 2023-03-08 10:26:30 -05:00
search.nix
search.sh Harden tests' bash 2023-03-08 10:26:30 -05:00
secure-drv-outputs.nix
secure-drv-outputs.sh
selfref-gc.sh Disable the selfref-gc test when the daemon is too old 2022-04-21 10:06:39 +02:00
shell-hello.nix Allow selecting derivation outputs using 'installable!outputs' 2022-05-03 13:43:52 +02:00
shell.nix Make nix-shell work when nixpkgs is content-addressed 2021-11-26 09:56:48 +01:00
shell.sh Cleanup test skipping 2023-03-16 18:43:03 -04:00
shell.shebang.rb
shell.shebang.sh
signing.sh Dodge "trusted" vs "trustworthy" by being explicit 2022-09-22 14:37:52 -04:00
simple-failing.nix Inline file 2021-12-07 21:45:09 +01:00
simple.builder.sh
simple.nix
simple.sh Fix segfault or stack overflow caused by large derivation fields 2022-01-19 15:21:56 +01:00
ssh-relay.sh
store-ping.sh tests/store-ping: test nix store ping --json 2023-01-31 15:10:54 +01:00
structured-attrs-shell.nix
structured-attrs.nix
structured-attrs.sh Fix the min bound for the structured-attrs test 2021-10-14 16:00:59 +02:00
substitute-with-invalid-ca.sh
suggestions.sh Also display some suggestions for invalid formal arguments 2022-03-08 16:40:22 +01:00
tarball.sh Harden tests' bash 2023-03-08 10:26:30 -05:00
test-infra.sh Harden tests' bash 2023-03-08 10:26:30 -05:00
test-libstoreconsumer.sh Fix build hook error for libstore library users 2023-06-15 14:32:00 +02:00
timeout.nix
timeout.sh Harden tests' bash 2023-03-08 10:26:30 -05:00
toString-path.sh Trivial changes from the lazy-trees branch 2022-12-07 14:06:34 +01:00
undefined-variable.nix Add a test that nix repl --show-trace actually shows the trace 2021-12-28 15:54:46 +03:00
user-envs-migration.sh Cleanup test skipping 2023-03-16 18:43:03 -04:00
user-envs.builder.sh
user-envs.nix Don't hide repeated values while generating manifest.nix 2022-03-22 13:18:56 +01:00
user-envs.sh Harden tests' bash 2023-03-08 10:26:30 -05:00
why-depends.sh Harden tests' bash 2023-03-08 10:26:30 -05:00
zstd.sh