nix/tests
Eelco Dolstra cc22cf662b Respect lock files of inputs + fine-grained lock file control
When computing a lock file, we now respect the lock files of flake
inputs. This is important for usability / reproducibility. For
example, the 'nixops' flake depends on the 'nixops-aws' and
'nixops-hetzner' repositories. So when the 'nixops' flake is used in
another flake, we want the versions of 'nixops-aws' and
'nixops-hetzner' locked by the the 'nixops' flake because those
presumably have been tested.

This can lead to a proliferation of versions of flakes like 'nixpkgs'
(since every flake's lock file could depend on a different version of
'nixpkgs'). This is not a major issue when using Nixpkgs overlays or
NixOS modules, since then the top-level flake composes those
overlays/modules into *its* version of Nixpkgs and all other versions
are ignored. Lock file computation has been made a bit more lazy so it
won't try to fetch all those versions of 'nixpkgs'.

However, in case it's necessary to minimize flake versions, there now
are two input attributes that allow this. First, you can copy an input
from another flake, as follows:

  inputs.nixpkgs.follows = "dwarffs/nixpkgs";

This states that the calling flake's 'nixpkgs' input shall be the same
as the 'nixpkgs' input of the 'dwarffs' input.

Second, you can override inputs of inputs:

  inputs.nixpkgs.url = github:edolstra/nixpkgs/<hash>;
  inputs.nixops.inputs.nixpkgs.url = github:edolstra/nixpkgs/<hash>;

or equivalently, using 'follows':

  inputs.nixpkgs.url = github:edolstra/nixpkgs/<hash>;
  inputs.nixops.inputs.nixpkgs.follows = "nixpkgs";

This states that the 'nixpkgs' input of the 'nixops' input shall be
the same as the calling flake's 'nixpkgs' input.

Finally, at '-v' Nix now prints the changes to the lock file, e.g.

  $ nix flake update ~/Misc/eelco-configurations/hagbard
  inputs of flake 'git+file:///home/eelco/Misc/eelco-configurations?subdir=hagbard' changed:
    updated 'nixpkgs': 'github:edolstra/nixpkgs/7845bf5f4b3013df1cf036e9c9c3a55a30331db9' -> 'github:edolstra/nixpkgs/03f3def66a104a221aac8b751eeb7075374848fd'
    removed 'nixops'
    removed 'nixops/nixops-aws'
    removed 'nixops/nixops-hetzner'
    removed 'nixops/nixpkgs'
2020-01-24 22:05:11 +01:00
..
lang Add support for \u escape in fromJSON 2020-01-07 00:09:58 +01:00
plugins Modularize config settings 2018-05-30 13:28:01 +02:00
add.sh * Refactoring: remove unnecessary variables from the tests. 2011-10-10 21:32:34 +00:00
bad.tar.xz Validate tarball components 2019-12-13 19:05:26 +01:00
binary-cache.sh exportGit: Don't clone local repositories 2019-04-19 14:10:57 +02:00
brotli.sh Require libbrotli 2018-08-06 14:06:54 +02:00
build-dry.sh Fix test failures when $TMPDIR changes 2019-06-15 16:36:33 +02:00
build-hook.nix build-remote: Add a basic test 2017-05-02 15:46:10 +02:00
build-remote.sh Check requiredSystemFeatures for local builds 2018-09-28 16:10:27 +02:00
case-hack.sh Fix tests 2014-08-21 21:50:19 +02:00
case.nar Handle case collisions on case-insensitive systems 2014-07-16 16:02:05 +02:00
check-refs.nix Add disallowedReferences / disallowedRequisites 2014-08-28 18:57:13 +02:00
check-refs.sh Restore old (dis)allowedRequisites behaviour for self-references 2018-10-27 15:41:53 +02:00
check-reqs.nix Restore old (dis)allowedRequisites behaviour for self-references 2018-10-27 15:41:53 +02:00
check-reqs.sh Restore old (dis)allowedRequisites behaviour for self-references 2018-10-27 15:41:53 +02:00
check.nix build: add tests for --check status codes 2019-07-02 00:12:38 +02:00
check.sh build: replace 100 offset for build exit codes 2019-07-02 00:12:38 +02:00
common.sh.in Disable findRuntimeRoots on darwin when running tests because lsof is slow 2019-07-30 11:29:03 +02:00
config.nix.in Merge remote-tracking branch 'origin/master' into flakes 2019-12-04 00:31:09 +01:00
dependencies.builder0.sh Test executables in NARs 2014-02-26 18:59:01 +01:00
dependencies.builder1.sh * Purify `make check'. 2006-07-21 13:21:43 +00:00
dependencies.builder2.sh * Purify `make check'. 2006-07-21 13:21:43 +00:00
dependencies.nix Add a post-build-hook 2019-08-02 10:48:15 -04:00
dependencies.sh * Refactoring: remove unnecessary variables from the tests. 2011-10-10 21:32:34 +00:00
dump-db.sh Remove $NIX_DB_DIR 2016-08-10 18:05:35 +02:00
export-graph.nix Support quoted attribute names in -A 2013-11-18 10:21:12 +00:00
export-graph.sh Support quoted attribute names in -A 2013-11-18 10:21:12 +00:00
export.sh Fix #1762 2018-02-13 14:26:19 +00:00
fetchGit.sh Pluggable fetchers 2020-01-21 22:56:04 +01:00
fetchMercurial.sh Convert fetchMercurial to a input type 2020-01-21 23:49:32 +01:00
fetchurl.sh Replace $TMPDIR with $TEST_ROOT in tests/fetchurl.sh 2019-11-08 12:08:10 -08:00
filter-source.nix Use shorter daemon socket path in tests 2016-03-24 14:45:55 +01:00
filter-source.sh Fix tests 2014-08-21 21:50:19 +02:00
fixed.builder1.sh * Test the impureEnvVars feature. 2007-09-11 13:32:04 +00:00
fixed.builder2.sh * Test case to show that parallel builds of different fixed-output 2007-08-28 09:21:47 +00:00
fixed.nix * Refactoring: renamed *.nix.in to *.nix. 2009-03-17 17:11:55 +00:00
fixed.sh Remove nix-build --hash 2018-02-03 10:08:05 +01:00
flakes.sh Respect lock files of inputs + fine-grained lock file control 2020-01-24 22:05:11 +01:00
function-trace.sh function-trace: always show the trace 2019-09-18 23:23:21 +02:00
gc-auto.sh nix: Add --expr flag 2019-11-27 00:05:30 +01:00
gc-concurrent2.builder.sh * Increase the sleep periods a bit to make the test less likely to 2008-08-14 09:26:30 +00:00
gc-concurrent.builder.sh * Increase the sleep periods a bit to make the test less likely to 2008-08-14 09:26:30 +00:00
gc-concurrent.nix * Refactoring: renamed *.nix.in to *.nix. 2009-03-17 17:11:55 +00:00
gc-concurrent.sh Fix tests 2014-08-21 21:50:19 +02:00
gc-runtime.nix * Refactoring: renamed *.nix.in to *.nix. 2009-03-17 17:11:55 +00:00
gc-runtime.sh Fix gc-runtime test 2016-09-12 13:40:07 +02:00
gc.sh Update tests to the new --roots format 2019-03-10 01:50:33 +01:00
github-flakes.nix Fix GitHub test 2020-01-22 00:25:17 +01:00
hash-check.nix * Purify `make check'. 2006-07-21 13:21:43 +00:00
hash.sh Support SRI hashes 2018-12-13 14:30:52 +01:00
import-derivation.nix Allow builtins.pathExists to check the existence of /nix/store paths 2019-07-30 11:27:35 +02:00
import-derivation.sh Don't put results symlinks in the tests directory 2012-09-11 19:14:15 -04:00
init.sh Add experimental-features setting 2019-10-21 13:34:44 +02:00
install-darwin.sh Use $HOME instead of $USER 2019-07-25 09:44:01 -04:00
lang.sh Fix tests 2014-08-21 21:50:19 +02:00
linux-sandbox.sh build: add test for sandboxed --check 2019-05-12 16:46:21 +02:00
local.mk Merge remote-tracking branch 'origin/master' into flakes 2019-12-11 14:53:30 +01:00
logging.sh Test: Replace --option with the corresponding flag 2017-11-20 17:50:49 +01:00
misc.sh Improve filtering of ANSI escape sequences in build logs 2018-02-07 15:23:57 +01:00
multiple-outputs.nix Don't put results symlinks in the tests directory 2012-09-11 19:14:15 -04:00
multiple-outputs.sh nix-shell/nix-build: Support .drv files again 2017-11-24 18:08:35 +01:00
nar-access.nix Rename tests/nar-index -> tests/nar-access 2017-11-14 13:27:40 +01:00
nar-access.sh Fix #1762 2018-02-13 14:26:19 +00:00
nix-build.sh nix-store -r: Handle symlinks to store paths 2019-12-16 19:11:47 +01:00
nix-channel.sh nix-env: Create ~/.nix-profile automatically 2019-10-09 23:35:01 +02:00
nix-copy-closure.nix Merge remote-tracking branch 'origin/master' into flakes 2019-11-06 10:56:33 +01:00
nix-copy-ssh.sh Fix test failures when $TMPDIR changes 2019-06-15 16:36:33 +02:00
nix-profile.sh nix-env: Create ~/.nix-profile automatically 2019-10-09 23:35:01 +02:00
nix-shell.sh Add inNixShell = true to nix-shell auto-call 2019-10-27 13:16:02 +01:00
optimise-store.sh Test: Replace --option with the corresponding flag 2017-11-20 17:50:49 +01:00
parallel.builder.sh Drop dependency on ‘expr’ 2014-02-06 13:51:57 +01:00
parallel.nix * Make this test a bit more robust. It's still timing dependent 2009-03-23 15:16:36 +00:00
parallel.sh Add support for ‘make installcheck’ 2013-11-25 18:47:03 +01:00
pass-as-file.sh passAsFile: leave out the hash prefix 2020-01-02 23:56:06 +00:00
placeholders.sh Fix test failures when $TMPDIR changes 2019-06-15 16:36:33 +02:00
plugins.sh nix: Add --expr flag 2019-11-27 00:05:30 +01:00
post-hook.sh tests/post-hook.sh: Don't put result link in cwd 2019-08-08 15:47:56 +02:00
pure-eval.nix Add pure evaluation mode 2018-01-16 19:23:18 +01:00
pure-eval.sh nix: Add --expr flag 2019-11-27 00:05:30 +01:00
push-to-store.sh Hopefully fix post-hook test on macOS 2019-08-27 17:01:54 +02:00
recursive.sh Merge remote-tracking branch 'origin/master' into flakes 2019-12-04 00:31:09 +01:00
referrers.sh Disallow empty store path names 2019-11-26 20:12:15 +01:00
remote-builds.nix Merge remote-tracking branch 'origin/master' into flakes 2019-11-06 10:56:33 +01:00
remote-store.sh Remove world-writability from per-user directories 2019-10-09 23:34:48 +02:00
repair.sh Test: Replace --option with the corresponding flag 2017-11-20 17:50:49 +01:00
restricted.nix Add pure evaluation mode 2018-01-16 19:23:18 +01:00
restricted.sh nix: Add --expr flag 2019-11-27 00:05:30 +01:00
run.nix Add tests for "nix run" 2017-11-20 18:36:36 +01:00
run.sh Fix tests using user namespaces on kernels that don't have it 2018-01-13 19:08:41 +02:00
search.nix tests: test nix search behavior 2018-02-25 16:40:05 -06:00
search.sh Fix tests 2019-04-08 16:11:36 +02:00
secure-drv-outputs.nix * On FreeBSD, ‘touch’ is not in the test $PATH, so don't use it. 2011-08-08 14:08:38 +00:00
secure-drv-outputs.sh Remove manifest support 2016-04-11 16:20:15 +02:00
setuid.nix Merge remote-tracking branch 'origin/master' into flakes 2019-11-06 10:56:33 +01:00
shell.nix Add inNixShell = true to nix-shell auto-call 2019-10-27 13:16:02 +01:00
shell.shebang.rb Hardcodes nix-shell instead of /usr/bin/env nix-shell... 2018-04-09 09:36:54 -04:00
shell.shebang.sh Rename "use-substitutes" to "substitute" 2018-01-04 16:58:39 +01:00
signing.sh Add a test for signed content-addressed paths 2018-09-25 22:18:52 -04:00
simple.builder.sh * Fix the tests. 2007-08-13 13:15:02 +00:00
simple.nix * Refactoring: renamed *.nix.in to *.nix. 2009-03-17 17:11:55 +00:00
simple.sh Handle $TMPDIR ending with a slash 2016-10-19 15:19:38 +02:00
structured-attrs.nix Fix derivation computation with __structuredAttrs and multiple outputs 2020-01-21 21:14:13 +01:00
structured-attrs.sh Fix derivation computation with __structuredAttrs and multiple outputs 2020-01-21 21:14:13 +01:00
tarball.sh Validate tarball components 2019-12-13 19:05:26 +01:00
timeout.nix Replace Unicode quotes in user-facing strings by ASCII 2017-07-30 12:32:45 +01:00
timeout.sh timeout: test for error code 2019-07-02 11:18:36 -04:00
user-envs.builder.sh Test priorities 2012-12-04 14:47:50 +01:00
user-envs.nix Test priorities 2012-12-04 14:47:50 +01:00
user-envs.sh Remove world-writability from per-user directories 2019-10-09 23:34:48 +02:00