lix/tests
John Ericson 44c8d83831 Create outputOf primop.
In the Nix language, given a drv path, we should be able to construct
another string referencing to one of its output. We can do this today
with `(import drvPath).output`, but this only works for derivations we
already have.

With dynamic derivations, however, that doesn't work well because the
`drvPath` isn't yet built: importing it like would need to trigger IFD,
when the whole point of this feature is to do "dynamic build graph"
without IFD!

Instead, what we want to do is create a placeholder value with the right
string context to refer to the output of the as-yet unbuilt derivation.
A new primop in the language, analogous to `builtins.placeholder` can be
used to create one. This will achieve all the right properties. The
placeholder machinery also will match out the `outPath` attribute for CA
derivations works.

In 60b7121d2c we added that type of
placeholder, and the derived path and string holder changes necessary to
support it. Then in the previous commit we cleaned up the code
(inspiration finally hit me!) to deduplicate the code and expose exactly
what we need. Now, we can wire up the primop trivally!

Part of RFC 92: dynamic derivations (tracking issue #6316)

Co-authored-by: Robert Hensing <roberth@users.noreply.github.com>
2023-08-14 09:37:37 -04:00
..
ca Try to realise CA derivations during queryMissing 2023-08-09 20:57:04 +01:00
common Revert "Check _NIX_TEST_NO_SANDBOX when setting _canUseSandbox." 2023-07-13 15:06:34 -04:00
config
dyn-drv Create outputOf primop. 2023-08-14 09:37:37 -04:00
flakes
installer
lang toJSON: Add attribute path to trace 2023-07-31 13:02:54 +02:00
nested-sandboxing Test nested sandboxing, and make nicer error 2023-07-14 09:40:24 -04:00
nixos Merge pull request #8506 from corngood/ssh-master 2023-07-18 15:47:57 +02:00
plugins
test-libstoreconsumer Make the Derived Path family of types inductive for dynamic derivations 2023-08-10 00:08:32 -04:00
add.sh
bad.tar.xz
bash-profile.sh
big-derivation-attr.nix
binary-cache-build-remote.sh
binary-cache.sh
brotli.sh
build-delete.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-trustless-after.sh
build-remote-trustless-should-fail-0.sh Revert "Skip build-remote-trustless unless sandbox is supported." 2023-07-13 15:06:50 -04:00
build-remote-trustless-should-pass-0.sh
build-remote-trustless-should-pass-1.sh
build-remote-trustless-should-pass-2.sh
build-remote-trustless-should-pass-3.sh
build-remote-trustless.sh
build-remote.sh Add comment regarding the unset of NIX_STORE_DIR 2023-07-13 14:18:12 -05:00
build.sh Make the Derived Path family of types inductive for dynamic derivations 2023-08-10 00:08:32 -04:00
ca-shell.nix
case-hack.sh
case.nar
check-refs.nix
check-refs.sh Stabilize discard-references 2023-08-07 16:53:37 +02:00
check-reqs.nix
check-reqs.sh
check.nix
check.sh
common.sh
completions.sh
compression-levels.sh
compute-levels.sh
config.nix.in
config.sh
db-migration.sh
dependencies.builder0.sh
dependencies.nix
dependencies.sh Expanded test suite 2023-07-11 21:43:09 -04:00
derivation-json.sh
dummy
dump-db.sh
eval-store.sh
eval.nix
eval.sh
experimental-features.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 Don't require .tar/.zip extension for tarball flakerefs 2023-08-01 16:07:20 +02:00
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
hash-check.nix
hash.sh
hermetic.nix
import-derivation.nix
import-derivation.sh
impure-derivations.nix
impure-derivations.sh
init.sh
install-darwin.sh
lang-test-infra.sh Expanded test suite 2023-07-11 21:43:09 -04:00
lang.sh Fix race condition in the language tests 2023-07-13 08:09:03 -04:00
legacy-ssh-store.sh
linux-sandbox-cert-test.nix
linux-sandbox.sh
local-store.sh
local.mk Test the parallel copy over ssh-ng 2023-08-08 11:55:09 +02:00
logging.sh
misc.sh Expanded test suite 2023-07-11 21:43:09 -04:00
multiple-outputs.nix
multiple-outputs.sh
nar-access.nix
nar-access.sh
nested-sandboxing.sh Test nested sandboxing, and make nicer error 2023-07-14 09:40:24 -04:00
nix-build-examples.nix
nix-build.sh
nix-channel.sh
nix-collect-garbage-d.sh
nix-copy-ssh-ng.sh Test the parallel copy over ssh-ng 2023-08-08 11:55:09 +02:00
nix-copy-ssh.sh
nix-daemon-untrusting.sh
nix-profile.sh
nix-shell.sh
nix_path.sh
optimise-store.sh
output-normalization.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-old.sh
push-to-store.sh
read-only-store.sh
readfile-context.nix
readfile-context.sh
recursive.nix
recursive.sh
referrers.sh
remote-store.sh
repair.sh
repl.sh
restricted.nix
restricted.sh Expanded test suite 2023-07-11 21:43:09 -04:00
search.nix
search.sh
secure-drv-outputs.nix
secure-drv-outputs.sh
selfref-gc.sh
shell-hello.nix
shell.nix
shell.sh
shell.shebang.rb
shell.shebang.sh
signing.sh signing.sh: Revert test improvement because it fails on GHA + macOS 2023-07-07 15:37:09 +02:00
simple-failing.nix
simple.builder.sh
simple.nix
simple.sh
ssh-relay.sh
store-ping.sh
structured-attrs-shell.nix
structured-attrs.nix
structured-attrs.sh
substitute-with-invalid-ca.sh
suggestions.sh
supplementary-groups.sh move unset NIX_STORE_DIR in supplementary-groups.sh 2023-07-13 14:23:24 -05:00
tarball.sh
test-infra.sh
test-libstoreconsumer.sh
timeout.nix
timeout.sh
toString-path.sh
undefined-variable.nix
user-envs-migration.sh
user-envs.builder.sh
user-envs.nix
user-envs.sh
why-depends.sh nix/why-depends: fix output of --precise 2023-08-04 23:11:08 +02:00
zstd.sh