nix/tests
Shea Levy 20866a7031 Delay evaulation of with attrs until a variable lookup needs them
Evaluation of attribute sets is strict in the attribute names, which
means immediate evaluation of `with` attribute sets rules out some
potentially interesting use cases (e.g. where the attribute names of one
set depend in some way on another but we want to bring those names into
scope for some values in the second set).

The major example of this is overridable self-referential package sets
(e.g. all-packages.nix). With immediate `with` evaluation, the only
options for such sets are to either make them non-recursive and
explicitly use the name of the overridden set in non-overridden one
every time you want to reference another package, or make the set
recursive and use the `__overrides` hack. As shown in the test case that
comes with this commit, though, delayed `with` evaluation allows a nicer
third alternative.

Signed-off-by: Shea Levy <shea@shealevy.com>
2013-07-31 11:48:39 +02:00
..
lang Delay evaulation of with attrs until a variable lookup needs them 2013-07-31 11:48:39 +02:00
add.sh * Refactoring: remove unnecessary variables from the tests. 2011-10-10 21:32:34 +00:00
binary-cache.sh Add support for uncompressed NARs in binary caches 2013-07-01 21:03:14 +02:00
binary-patching.nix * Urgh, FreeBSD doesn't have a "seq" command. 2011-02-09 14:03:16 +00:00
binary-patching.sh nix-push: Support generating a manifest again 2012-07-26 18:28:12 -04:00
build-hook.hook.sh * Made the build hook mechanism more efficient. Rather than starting 2010-08-25 20:44:28 +00:00
build-hook.nix * Refactoring: renamed *.nix.in to *.nix. 2009-03-17 17:11:55 +00:00
build-hook.sh Don't put results symlinks in the tests directory 2012-09-11 19:14:15 -04:00
check-refs.nix * Refactoring: renamed *.nix.in to *.nix. 2009-03-17 17:11:55 +00:00
check-refs.sh * Refactoring: remove unnecessary variables from the tests. 2011-10-10 21:32:34 +00:00
common.sh.in Urgggh 2013-01-02 23:52:15 +01:00
config.nix.in * Add a test for nix-channel. 2012-01-03 01:51:38 +00:00
dependencies.builder0.sh * Regression test for the `exportReferencesGraph' 2009-03-17 16:33:48 +00: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 test for nix-channel. 2012-01-03 01:51:38 +00:00
dependencies.sh * Refactoring: remove unnecessary variables from the tests. 2011-10-10 21:32:34 +00:00
export-graph.nix * Unify exportReferencesGraph and exportBuildReferencesGraph, and make 2009-03-18 17:36:42 +00:00
export-graph.sh Don't put results symlinks in the tests directory 2012-09-11 19:14:15 -04:00
export.sh Don't put results symlinks in the tests directory 2012-09-11 19:14:15 -04:00
fallback.sh * Refactoring: remove unnecessary variables from the tests. 2011-10-10 21:32:34 +00:00
fetchurl.nix Add a test for the fetchurl function 2012-07-09 15:41:43 -04:00
fetchurl.sh Don't put results symlinks in the tests directory 2012-09-11 19:14:15 -04:00
filter-source.nix * Refactoring: renamed *.nix.in to *.nix. 2009-03-17 17:11:55 +00:00
filter-source.sh * Refactoring: remove unnecessary variables from the tests. 2011-10-10 21:32:34 +00: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 Don't put results symlinks in the tests directory 2012-09-11 19:14:15 -04: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 * Refactoring: remove unnecessary variables from the tests. 2011-10-10 21:32:34 +00:00
gc-runtime.nix * Refactoring: renamed *.nix.in to *.nix. 2009-03-17 17:11:55 +00:00
gc-runtime.sh Replace "make check" with "make installcheck" 2012-03-19 01:20:02 +01:00
gc.sh * Refactoring: remove unnecessary variables from the tests. 2011-10-10 21:32:34 +00:00
hash-check.nix * Purify `make check'. 2006-07-21 13:21:43 +00:00
hash.sh Replace "make check" with "make installcheck" 2012-03-19 01:20:02 +01:00
import-derivation.nix * Add a test for importing derivations. 2012-01-26 13:04:50 +00:00
import-derivation.sh Don't put results symlinks in the tests directory 2012-09-11 19:14:15 -04:00
init.sh Replace "make check" with "make installcheck" 2012-03-19 01:20:02 +01:00
install-package.sh nix-push: Support generating a manifest again 2012-07-26 18:28:12 -04:00
lang.sh * Refactoring: Get rid of a few subdirectories in corepkgs/, and some 2012-01-03 00:16:29 +00:00
logging.sh Don't put results symlinks in the tests directory 2012-09-11 19:14:15 -04:00
Makefile.am Urgggh 2013-01-02 23:52:15 +01:00
misc.sh Fix the test 2012-10-03 18:01:35 -04:00
multiple-outputs.nix Don't put results symlinks in the tests directory 2012-09-11 19:14:15 -04:00
multiple-outputs.sh Fix the multiple-outputs test 2012-11-26 17:46:45 +01:00
negative-caching.nix * Negative caching, i.e. caching of build failures. Disabled by 2009-03-25 21:05:42 +00:00
negative-caching.sh Don't put results symlinks in the tests directory 2012-09-11 19:14:15 -04:00
nix-build.sh Don't put results symlinks in the tests directory 2012-09-11 19:14:15 -04:00
nix-channel.sh nix-push: Support generating a manifest again 2012-07-26 18:28:12 -04:00
nix-copy-closure.nix Revert "Prevent config.h from being clobbered" 2013-03-08 01:24:59 +01:00
nix-profile.sh Urgggh 2013-01-02 23:52:15 +01:00
nix-pull.sh Fix test failure on Darwin 2012-09-12 11:29:10 -04:00
nix-push.sh nix-push: Support generating a manifest again 2012-07-26 18:28:12 -04:00
optimise-store.sh Fix the store optimisation test 2012-09-13 12:54:23 -04:00
parallel.builder.sh * Make this test a bit more robust. It's still timing dependent 2009-03-23 15:16:36 +00: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 Don't put results symlinks in the tests directory 2012-09-11 19:14:15 -04:00
referrers.sh Use "set -x" in the tests to see where a test fails 2012-07-27 14:33:01 -04:00
remote-builds.nix Revert "Prevent config.h from being clobbered" 2013-03-08 01:24:59 +01:00
remote-store.sh Drop support for running nix-worker in "slave" mode 2012-10-03 17:30:45 -04: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 Don't put results symlinks in the tests directory 2012-09-11 19:14:15 -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 * Refactoring: remove unnecessary variables from the tests. 2011-10-10 21:32:34 +00:00
substituter2.sh Don't keep "disabled" substituters running 2013-06-20 11:55:15 +02:00
substituter.sh Don't keep "disabled" substituters running 2013-06-20 11:55:15 +02:00
substitutes2.sh * Refactoring: remove unnecessary variables from the tests. 2011-10-10 21:32:34 +00:00
substitutes.sh * Refactoring: remove unnecessary variables from the tests. 2011-10-10 21:32:34 +00:00
timeout.builder.sh Show that --timeout doesn't work if the build produces log output 2013-04-23 17:16:29 +02:00
timeout.nix Show that --timeout doesn't work if the build produces log output 2013-04-23 17:16:29 +02:00
timeout.sh * Refactoring: remove unnecessary variables from the tests. 2011-10-10 21:32:34 +00: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 Test priorities 2012-12-04 14:47:50 +01:00
verify.sh * Refactoring: remove unnecessary variables from the tests. 2011-10-10 21:32:34 +00:00