lix/tests
John Ericson 5576d5e987 Parse string context elements properly
Prior to this change, we had a bunch of ad-hoc string manipulation code
scattered around. This made it hard to figure out what data model for
string contexts is.

Now, we still store string contexts most of the time as encoded strings
--- I was wary of the performance implications of changing that --- but
whenever we parse them we do so only through the
`NixStringContextElem::parse` method, which handles all cases. This
creates a data type that is very similar to `DerivedPath` but:

 - Represents the funky `=<drvpath>` case as properly distinct from the
   others.

 - Only encodes a single output, no wildcards and no set, for the
   "built" case.

(I would like to deprecate `=<path>`, after which we are in spitting
distance of `DerivedPath` and could maybe get away with fewer types, but
that is another topic for another day.)
2023-01-10 13:10:49 -05:00
..
ca add explanation and test 2022-11-23 12:06:47 -05:00
config add NIX_USER_CONF_FILES 2020-04-14 18:45:06 +02:00
flakes Merge remote-tracking branch 'origin/master' into fix-7417 2023-01-10 14:35:06 +01:00
installer Quote URLs 2022-09-26 16:57:06 +02:00
lang Merge pull request #5941 from hercules-ci/optimize-intersectAttrs 2023-01-02 15:22:38 +01:00
plugins Parse string context elements properly 2023-01-10 13:10:49 -05: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
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 Improve documentation and test and requested 2021-01-22 15:58:58 +00:00
binary-cache.sh Add a test for fetchClosure and 'nix store make-content-addressed' 2022-03-24 21:33:33 +01:00
brotli.sh Move 'nix hash-*' and 'nix to-*' to 'nix hash' 2020-12-03 17:55:55 +01:00
build-dry.sh tests/build-dry: re-enable some test 2022-09-28 15:54:45 +02: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 Restore now-working build-remote-content-addressed-fixed test 2021-02-26 16:32:52 +00:00
build-hook.nix tests: grep for string in nix log for remote-builds 2022-03-04 16:58:27 +01: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 tests: remove 'ca-references' feature 2022-04-21 10:06:39 +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 tests: Don't create tests/result 2022-05-02 09:38:51 +02:00
build.sh Merge new tests into build.sh 2022-12-12 17:34:57 -05:00
ca-shell.nix nix-shell: restore backwards-compat with old nixpkgs 2022-06-13 23:29:28 +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 tests: don't refer to TMPDIR 2022-12-06 16:36:42 +01:00
check.sh Remove tests for --repeat 2022-12-09 17:35:40 +01:00
common.sh.in Fix onError 2022-08-17 11:36:58 +02: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 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
containers.nix tests: fix for nixpkgs 22.11 2023-01-08 14:38:34 +01:00
db-migration.sh Allow running all the tests with the daemon 2021-07-27 17:06:11 +02: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 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
eval.nix add tests for nix eval and nix-instantiate 2022-03-16 21:01:51 +02:00
eval.sh Trivial changes from the lazy-trees branch 2022-12-07 14:06:34 +01: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
fetchClosure.sh Really fix 'nix store make-content-addressed --json' 2022-12-01 16:29:09 +01:00
fetchGit.sh Trivial changes from the lazy-trees branch 2022-12-07 14:06:34 +01:00
fetchGitRefs.sh Merge remote-tracking branch 'origin/master' into flakes 2020-06-17 10:26:52 +02:00
fetchGitSubmodules.sh tests/fetchGitSubmodules: fix for newer Git 2022-12-02 20:24:34 +01:00
fetchMercurial.sh Test fetchMercurial with path containing a . segment 2022-04-09 23:39:00 +02: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 Typo 2022-06-02 21:21:10 +02:00
fetchurl.sh fetchTree: Do not re-fetch paths already present 2022-02-28 21:37:49 +01: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
fmt.sh Enable/fix tests in nix-static 2022-06-22 23:33:15 +02:00
fmt.simple.sh nix-fmt: add command 2022-03-11 10:00:19 -05:00
function-trace.sh Introduce AbstractPos 2022-12-13 00:50:43 +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 Make nix why-depends quieter by default 2022-01-19 14:24:14 +01:00
github-flakes.nix tests: switch to non-deprecated nix.settings.* module parameters 2022-12-24 09:15:15 +00:00
hash-check.nix
hash.sh Move 'nix hash-*' and 'nix to-*' to 'nix hash' 2020-12-03 17:55:55 +01:00
id-test.nix Add tests for auto-uid-allocation, uid-range and cgroups 2022-11-27 16:38:34 +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
impure-derivations.nix Provide default values for outputHashAlgo and outputHashMode 2022-03-31 16:56:44 +02:00
impure-derivations.sh Fix a crash in DerivedPath::Built::toJSON() with impure derivations 2022-12-15 16:02:27 +01: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 Fix reference to test directory path 2022-12-12 16:55:42 +01: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 remote-tracking branch 'origin/master' into fix-7417 2023-01-10 14:35:06 +01:00
logging.sh Implement regression test for empty logs loaded via nix log 2022-03-24 22:31:52 +01:00
misc.sh Change error position formatting 2021-01-21 11:02:09 +01:00
multiple-outputs.nix tests: Reproduce #6572 2022-11-14 18:03:29 +01: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 tests: switch to non-deprecated nix.settings.* module parameters 2022-12-24 09:15:15 +00:00
nix-copy-ssh.sh Fix test failures when $TMPDIR changes 2019-06-15 16:36:33 +02:00
nix-profile.sh Integrate review changes 2022-05-13 22:02:28 +02:00
nix-shell.sh tests/nix-shell: more meaningful testcase 2022-06-22 22:35:48 +02:00
nix_path.sh Trivial changes from the lazy-trees branch 2022-12-07 14:06:34 +01:00
nss-preload.nix tests: switch to non-deprecated nix.settings.* module parameters 2022-12-24 09:15:15 +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-from-hash-part.sh Add command 'nix store path-from-hash-part' 2022-10-18 16:51:12 +02: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 Enable/fix tests in nix-static 2022-06-22 23:33:15 +02:00
post-hook.sh Fix passing $OUT_PATHS to the post-build hook 2022-04-28 13:36:01 +02:00
pure-eval.nix Add pure evaluation mode 2018-01-16 19:23:18 +01:00
pure-eval.sh Forbid the tilde expansion in pure eval mode 2022-06-21 14:08:18 +02:00
push-to-store.sh Fix passing $OUT_PATHS to the post-build hook 2022-04-28 13:36:01 +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.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: switch to non-deprecated nix.settings.* module parameters 2022-12-24 09:15:15 +00: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 tests: enable ca-derivations for simple.nix in repl tests 2022-06-24 11:17:29 -04:00
restricted.nix Add pure evaluation mode 2018-01-16 19:23:18 +01:00
restricted.sh Trivial changes from the lazy-trees branch 2022-12-07 14:06:34 +01:00
search.nix tests: test nix search behavior 2018-02-25 16:40:05 -06:00
search.sh Add another test for --exclude in nix search 2022-06-20 19:21:45 +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
selfref-gc.sh Disable the selfref-gc test when the daemon is too old 2022-04-21 10:06:39 +02:00
setuid.nix tests: fix for nixpkgs 22.11 2023-01-08 14:38:34 +01: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 Allow selecting derivation outputs using 'installable!outputs' 2022-05-03 13:43:52 +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 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 * 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 Fix segfault or stack overflow caused by large derivation fields 2022-01-19 15:21:56 +01:00
sourcehut-flakes.nix tests: switch to non-deprecated nix.settings.* module parameters 2022-12-24 09:15:15 +00:00
ssh-relay.sh Move most store-related commands to 'nix store' 2020-12-03 23:22:22 +01:00
store-ping.sh Fix the store ping test 2022-01-26 14:15:03 +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
suggestions.sh Also display some suggestions for invalid formal arguments 2022-03-08 16:40:22 +01:00
systemd-nspawn.nix Fix evaluation 2022-11-27 18:58:21 +01:00
tarball.sh fetchTree: Do not re-fetch paths already present 2022-02-28 21:37:49 +01: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
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.builder.sh Test priorities 2012-12-04 14:47:50 +01:00
user-envs.nix Don't hide repeated values while generating manifest.nix 2022-03-22 13:18:56 +01:00
user-envs.sh Add some tests for nix-env -q --json 2022-03-16 21:33:38 +01:00
why-depends.sh Increase the test coverage of why-depends 2023-01-02 16:09:03 +01:00
zstd.sh add tests for zstd compression 2021-04-09 23:13:08 +02:00