lix/tests
pennae 7d4cc5515c defer formals duplicate check for incresed efficiency all round
if we defer the duplicate argument check for lambda formals we can use more
efficient data structures for the formals set, and we can get rid of the
duplication of formals names to boot. instead of a list of formals we've seen
and a set of names we'll keep a vector instead and run a sort+dupcheck step
before moving the parsed formals into a newly created lambda. this improves
performance on search and rebuild by ~1%, pure parsing gains more (about 4%).

this does reorder lambda arguments in the xml output, but the output is still
stable. this shouldn't be a problem since argument order is not semantically
important anyway.

 before

  nix search --no-eval-cache --offline ../nixpkgs hello
    Time (mean ± σ):      8.550 s ±  0.060 s    [User: 6.470 s, System: 1.664 s]
    Range (min … max):    8.435 s …  8.666 s    20 runs

  nix eval -f ../nixpkgs/pkgs/development/haskell-modules/hackage-packages.nix
    Time (mean ± σ):     346.7 ms ±   2.1 ms    [User: 312.4 ms, System: 34.2 ms]
    Range (min … max):   343.8 ms … 353.4 ms    20 runs

  nix eval --raw --impure --expr 'with import <nixpkgs/nixos> {}; system'
    Time (mean ± σ):      2.720 s ±  0.031 s    [User: 2.415 s, System: 0.231 s]
    Range (min … max):    2.662 s …  2.780 s    20 runs

 after

  nix search --no-eval-cache --offline ../nixpkgs hello
    Time (mean ± σ):      8.462 s ±  0.063 s    [User: 6.398 s, System: 1.661 s]
    Range (min … max):    8.339 s …  8.542 s    20 runs

  nix eval -f ../nixpkgs/pkgs/development/haskell-modules/hackage-packages.nix
    Time (mean ± σ):     329.1 ms ±   1.4 ms    [User: 296.8 ms, System: 32.3 ms]
    Range (min … max):   326.1 ms … 330.8 ms    20 runs

  nix eval --raw --impure --expr 'with import <nixpkgs/nixos> {}; system'
    Time (mean ± σ):      2.687 s ±  0.035 s    [User: 2.392 s, System: 0.228 s]
    Range (min … max):    2.626 s …  2.754 s    20 runs
2022-01-19 17:07:29 +01:00
..
ca Fix IFD with CA derivations 2021-12-21 09:36:50 +01:00
config add NIX_USER_CONF_FILES 2020-04-14 18:45:06 +02:00
lang defer formals duplicate check for incresed efficiency all round 2022-01-19 17:07:29 +01:00
plugins Remove non-method mk<X> functions 2022-01-04 18:40:39 +01:00
add.sh tests/check.sh: Fix a race 2021-07-07 10:48:47 +02:00
bad.tar.xz Validate tarball components 2019-12-13 19:05:26 +01:00
binary-cache-build-remote.sh Improve documentation and test and requested 2021-01-22 15:58:58 +00:00
binary-cache.sh Add a test for 'nix store copy-log' and 'nix log' 2022-01-18 17:30:50 +01:00
brotli.sh Move 'nix hash-*' and 'nix to-*' to 'nix hash' 2020-12-03 17:55:55 +01:00
build-dry.sh Fix test failures when $TMPDIR changes 2019-06-15 16:36:33 +02:00
build-hook-ca-fixed.nix Restore now-working build-remote-content-addressed-fixed test 2021-02-26 16:32:52 +00:00
build-hook-ca-floating.nix Restore now-working build-remote-content-addressed-fixed test 2021-02-26 16:32:52 +00:00
build-hook.nix Test RemoteStore::buildDerivation 2020-08-13 04:07:14 +00:00
build-remote-content-addressed-fixed.sh Restore now-working build-remote-content-addressed-fixed test 2021-02-26 16:32:52 +00:00
build-remote-content-addressed-floating.sh Add a ca-derivations required machine feature 2021-06-11 09:12:53 +02:00
build-remote-input-addressed.sh Test the post-build-hook with remote builders 2020-12-09 10:45:12 +01:00
build-remote.sh nix-store --serve: pass on settings.keepFailed from SSH store 2021-08-31 13:11:46 +02:00
build.sh tests: Get rid of some result symlinks 2021-06-25 11:17:19 +02:00
ca-shell.nix Make nix-shell work when nixpkgs is content-addressed 2021-11-26 09:56:48 +01: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 defer formals duplicate check for incresed efficiency all round 2022-01-19 17:07:29 +01:00
check.sh Allow running all the tests with the daemon 2021-07-27 17:06:11 +02:00
common.sh.in Fix testing the other daemon 2021-11-18 22:23:36 +00:00
compression-levels.sh Add compression level for NARs 2021-10-12 02:14:36 -04:00
compute-levels.sh Add x86_64 compute levels as additional system types 2021-02-22 09:11:15 +01:00
config.nix.in Make the CA tests actuall test CA derivations 2021-06-23 17:36:50 +02:00
config.sh Make experimental-features a proper type 2021-10-26 07:02:31 +02:00
db-migration.sh Allow running all the tests with the daemon 2021-07-27 17:06:11 +02:00
dependencies.builder0.sh Test executables in NARs 2014-02-26 18:59:01 +01:00
dependencies.nix tests/binary-cache.sh: Improve incomplete closure test 2020-05-12 13:56:00 +02:00
dependencies.sh tests/binary-cache.sh: Improve incomplete closure test 2020-05-12 13:56:00 +02:00
describe-stores.sh Add a test for nix describe-stores 2020-09-16 13:53:28 +02:00
dummy Add tests/dummy 2021-07-07 11:30:35 +02:00
dump-db.sh Allow running all the tests with the daemon 2021-07-27 17:06:11 +02:00
eval-store.sh Disable the eval-store test when using the daemon 2021-10-15 14:15:43 +02:00
export-graph.nix Support quoted attribute names in -A 2013-11-18 10:21:12 +00:00
export-graph.sh tests/binary-cache.sh: Improve incomplete closure test 2020-05-12 13:56:00 +02:00
export.sh Fix #1762 2018-02-13 14:26:19 +00:00
failing.nix nix-store --serve: pass on settings.keepFailed from SSH store 2021-08-31 13:11:46 +02:00
fetchGit.sh Allow fetchGit to take a name argument 2021-07-06 08:41:52 +02:00
fetchGitRefs.sh Merge remote-tracking branch 'origin/master' into flakes 2020-06-17 10:26:52 +02:00
fetchGitSubmodules.sh Revert "Merge pull request #4922 from nrdxp/default-submodules" 2021-09-22 17:25:25 +02:00
fetchMercurial.sh allow fetchMercurial to take a name argument 2021-07-06 08:43:06 +02:00
fetchurl.sh tests/fetchurl.sh: Be verbose to help debug darwin eof bug #2794 2021-08-31 13:17:01 +02:00
filter-source.nix Use shorter daemon socket path in tests 2016-03-24 14:45:55 +01:00
filter-source.sh Add test for builtins.path 2020-07-30 16:38:04 -05: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 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
flake-local-settings.sh Allow paths in flake local settings 2021-12-17 09:31:13 +01:00
flake-searching.sh Check that we don't search past a git repo 2022-01-14 18:03:47 +03:00
flakes.sh flake.cc: computeLocks: Only verify overrides when they could change 2021-12-28 15:30:06 +03:00
function-trace.sh Fix function-trace test case 2021-11-04 15:04:04 +01:00
gc-auto.sh Allow running all the tests with the daemon 2021-07-27 17:06:11 +02:00
gc-concurrent.builder.sh Make the gc-concurrent test more reliable 2020-07-02 16:13:36 +02:00
gc-concurrent.nix Make the gc-concurrent test more reliable 2020-07-02 16:13:36 +02:00
gc-concurrent.sh Make the gc-concurrent test more reliable 2020-07-02 16:13:36 +02:00
gc-concurrent2.builder.sh Make the gc-concurrent test more reliable 2020-07-02 16:13:36 +02:00
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 * Refactoring: renamed *.nix.in to *.nix. 2009-03-17 17:11:55 +00:00
gc-runtime.sh tests/*: show when tests are skipped 2021-03-31 08:30:12 +02:00
gc.sh Fix test against old daemon 2021-10-15 12:52:21 +02:00
github-flakes.nix tests: Add names to VM tests 2020-10-17 23:34:38 +02:00
hash-check.nix
hash.sh Move 'nix hash-*' and 'nix to-*' to 'nix hash' 2020-12-03 17:55:55 +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 Allow running all the tests with the daemon 2021-07-27 17:06:11 +02:00
install-darwin.sh docs+test: fix remaining installer downloads without -L (#4006) 2020-09-12 22:08:40 +02:00
lang.sh Add DummyStore (dummy://) 2020-08-24 18:54:16 +02:00
linux-sandbox.sh Allow running all the tests with the daemon 2021-07-27 17:06:11 +02:00
local-store.sh Fix disabled case in local store test 2021-08-06 12:36:03 -04:00
local.mk Merge pull request #5720 from tomberek/flake_search 2022-01-18 10:59:12 +01:00
logging.sh Test: Replace --option with the corresponding flag 2017-11-20 17:50:49 +01:00
misc.sh Change error position formatting 2021-01-21 11:02:09 +01:00
multiple-outputs.nix Squashed get CA derivations building 2020-08-07 19:51:55 +00:00
multiple-outputs.sh tests/multiple-outputs.sh: Assert empty store 2021-10-13 12:12:44 +02:00
nar-access.nix Rename tests/nar-index -> tests/nar-access 2017-11-14 13:27:40 +01:00
nar-access.sh Move NAR-related commands to 'nix nar' 2020-12-03 18:09:02 +01:00
nix-build-examples.nix tests: Test #4197 nix-build output order regression 2020-11-13 17:50:04 +01:00
nix-build.sh tests: Test #4197 nix-build output order regression 2020-11-13 17:50:04 +01:00
nix-channel.sh Test the update of multiple channels 2021-12-17 09:17:33 +01:00
nix-copy-closure.nix nix-copy-closure: verify it works with drvs 2020-11-02 15:50:14 -05: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 Make nix-shell work when nixpkgs is content-addressed 2021-11-26 09:56:48 +01:00
nss-preload.nix Adds a test for nss preload mechanism 2021-10-07 17:25:41 +00:00
optimise-store.sh Allow running all the tests with the daemon 2021-07-27 17:06:11 +02: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
path.nix Add test for builtins.path 2020-07-30 16:38:04 -05:00
placeholders.sh Fix test failures when $TMPDIR changes 2019-06-15 16:36:33 +02:00
plugins.sh Initialize plugins after handling initial command line flags 2021-02-24 08:22:17 -05:00
post-hook.sh Allow running all the tests with the daemon 2021-07-27 17:06:11 +02:00
pure-eval.nix Add pure evaluation mode 2018-01-16 19:23:18 +01:00
pure-eval.sh Properly return false on builtins.pathExists /someNonAllowedPath 2021-12-23 10:49:33 +01:00
push-to-store.sh Add a test for the remote caching of CA derivations 2021-03-01 14:00:17 +01:00
readfile-context.builder.sh Add test for readFile keeping context 2022-01-09 13:42:36 +03:00
readfile-context.nix Add test for readFile keeping context 2022-01-09 13:42:36 +03:00
readfile-context.sh Add test for readFile keeping context 2022-01-09 13:42:36 +03:00
recursive.sh tests: Fix the recursive test with the daemon 2021-09-13 14:29:42 +02:00
referrers.sh Revert "Fix referrers test" 2021-10-15 16:58:21 +02:00
remote-builds.nix tests: Add names to VM tests 2020-10-17 23:34:38 +02:00
remote-store.sh Add a test ensuring compatibility with an old daemon 2021-03-16 14:20:41 +01:00
repair.sh Make --repair-path also repair corrupt optimised links 2022-01-11 11:57:45 +01:00
repl.sh Add a test that nix repl --show-trace actually shows the trace 2021-12-28 15:54:46 +03: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
search.nix tests: test nix search behavior 2018-02-25 16:40:05 -06:00
search.sh Revive 'nix search' 2020-04-20 15:27:09 +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 tests: Add names to VM tests 2020-10-17 23:34:38 +02:00
shell-hello.nix rename run to shell in tests 2020-05-01 12:17:53 +02:00
shell.nix Make nix-shell work when nixpkgs is content-addressed 2021-11-26 09:56:48 +01:00
shell.sh tests/*: show when tests are skipped 2021-03-31 08:30:12 +02: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 Rename 'nix store sign-paths' to 'nix store sign' 2021-01-13 23:32:37 +01:00
simple-failing.nix Inline file 2021-12-07 21:45:09 +01: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 Test whether build/repair results are read-only 2020-09-23 19:09:58 +02:00
ssh-relay.sh Move most store-related commands to 'nix store' 2020-12-03 23:22:22 +01:00
structured-attrs-shell.nix Add testcase for nix develop with __structuredAttrs 2021-06-22 19:15:57 +02:00
structured-attrs.nix Prefix env vars for attrs.* files with NIX_ 2021-06-22 19:45:08 +02:00
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 Check the CA hash when importing stuff in the local store 2021-06-01 15:09:24 +02:00
tarball.sh Forbid the name attribute for fetchTree 2021-07-08 13:53:52 +02:00
timeout.nix Replace Unicode quotes in user-facing strings by ASCII 2017-07-30 12:32:45 +01:00
timeout.sh Allow running all the tests with the daemon 2021-07-27 17:06:11 +02: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.builder.sh Test priorities 2012-12-04 14:47:50 +01:00
user-envs.nix Escape ${ in strings when printing Nix expressions 2020-09-14 17:19:25 +02:00
user-envs.sh Remove world-writability from per-user directories 2019-10-09 23:34:48 +02:00
zstd.sh add tests for zstd compression 2021-04-09 23:13:08 +02:00