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
config
flakes
installer
lang
plugins
add.sh
bad.tar.xz
bash-profile.sh
big-derivation-attr.nix
binary-cache-build-remote.sh
binary-cache.sh
brotli.sh
build-dry.sh
build-hook-ca-fixed.nix
build-hook-ca-floating.nix
build-hook.nix
build-remote-content-addressed-fixed.sh
build-remote-content-addressed-floating.sh
build-remote-input-addressed.sh
build-remote.sh
build.sh
ca-shell.nix
case-hack.sh
case.nar
check-refs.nix
check-refs.sh
check-reqs.nix
check-reqs.sh
check.nix
check.sh
common.sh.in
completions.sh
compression-levels.sh
compute-levels.sh
config.nix.in
config.sh
containers.nix
db-migration.sh
dependencies.builder0.sh
dependencies.nix
dependencies.sh
describe-stores.sh
dummy
dump-db.sh
eval-store.sh
eval.nix
eval.sh
export-graph.nix
export-graph.sh
export.sh
failing.nix
fetchClosure.sh
fetchGit.sh
fetchGitRefs.sh
fetchGitSubmodules.sh
fetchMercurial.sh
fetchPath.sh
fetchTree-file.sh
fetchurl.sh
filter-source.nix
filter-source.sh
fixed.builder1.sh
fixed.builder2.sh
fixed.nix
fixed.sh
fmt.sh
fmt.simple.sh
function-trace.sh
gc-auto.sh
gc-concurrent.builder.sh
gc-concurrent.nix
gc-concurrent.sh
gc-concurrent2.builder.sh
gc-non-blocking.sh
gc-runtime.nix
gc-runtime.sh
gc.sh
github-flakes.nix
hash-check.nix
hash.sh
id-test.nix
import-derivation.nix
import-derivation.sh
impure-derivations.nix
impure-derivations.sh
init.sh
install-darwin.sh
lang.sh
linux-sandbox.sh
local-store.sh
local.mk
logging.sh
misc.sh
multiple-outputs.nix
multiple-outputs.sh
nar-access.nix
nar-access.sh
nix-build-examples.nix
nix-build.sh
nix-channel.sh
nix-copy-closure.nix
nix-copy-ssh.sh
nix-profile.sh
nix-shell.sh
nix_path.sh
nss-preload.nix
optimise-store.sh
parallel.builder.sh
parallel.nix
parallel.sh
pass-as-file.sh
path-from-hash-part.sh
path.nix
placeholders.sh
plugins.sh
post-hook.sh
pure-eval.nix
pure-eval.sh
push-to-store.sh
readfile-context.nix
readfile-context.sh
recursive.sh
referrers.sh
remote-builds.nix
remote-store.sh
repair.sh
repl.sh
restricted.nix
restricted.sh
search.nix
search.sh
secure-drv-outputs.nix
secure-drv-outputs.sh
selfref-gc.sh
setuid.nix
shell-hello.nix
shell.nix
shell.sh
shell.shebang.rb
shell.shebang.sh
signing.sh
simple-failing.nix
simple.builder.sh
simple.nix
simple.sh
sourcehut-flakes.nix
ssh-relay.sh
store-ping.sh
structured-attrs-shell.nix
structured-attrs.nix
structured-attrs.sh
substitute-with-invalid-ca.sh
suggestions.sh
systemd-nspawn.nix
tarball.sh
timeout.nix
timeout.sh
toString-path.sh
undefined-variable.nix
user-envs.builder.sh
user-envs.nix
user-envs.sh
why-depends.sh
zstd.sh