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
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
case.nar
check-refs.nix
check-refs.sh
check-reqs.nix
check-reqs.sh
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
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
export-graph.sh tests/binary-cache.sh: Improve incomplete closure test 2020-05-12 13:56:00 +02:00
export.sh
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
filter-source.sh Add test for builtins.path 2020-07-30 16:38:04 -05:00
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
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
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
import-derivation.sh
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
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
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
nix-profile.sh
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
parallel.nix
parallel.sh
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
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
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
restricted.sh nix: Add --expr flag 2019-11-27 00:05:30 +01:00
search.nix
search.sh Revive 'nix search' 2020-04-20 15:27:09 +02:00
secure-drv-outputs.nix
secure-drv-outputs.sh
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
shell.shebang.sh
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
simple.nix
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
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
user-envs.nix Escape ${ in strings when printing Nix expressions 2020-09-14 17:19:25 +02:00
user-envs.sh
zstd.sh add tests for zstd compression 2021-04-09 23:13:08 +02:00