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 nix flake check: improve error message if overlay is not a lambda (#8582) 2023-06-27 14:58:29 +02:00
installer test: Make the installer work on old rhel versions 2023-03-31 15:29:50 +02:00
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 Remove RegisterPrimOp constructor without support for documentation 2023-06-14 22:37:52 +02:00
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 Harden tests' bash 2023-03-08 10:26:30 -05:00
brotli.sh
build-delete.sh Harden tests' bash 2023-03-08 10:26:30 -05:00
build-dry.sh Harden tests' bash 2023-03-08 10:26:30 -05:00
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 Experimentally allow forcing nix-daemon trust; use this to test 2023-04-17 13:06:21 -04:00
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 Experimentally allow forcing nix-daemon trust; use this to test 2023-04-17 13:06:21 -04:00
build-remote-trustless-should-pass-1.sh Experimentally allow forcing nix-daemon trust; use this to test 2023-04-17 13:06:21 -04:00
build-remote-trustless-should-pass-2.sh nix-testing -> daemon-trust-override 2023-04-17 09:35:43 -04:00
build-remote-trustless-should-pass-3.sh Experimentally allow forcing nix-daemon trust; use this to test 2023-04-17 13:06:21 -04:00
build-remote-trustless.sh Experimentally allow forcing nix-daemon trust; use this to test 2023-04-17 13:06:21 -04:00
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 Harden tests' bash 2023-03-08 10:26:30 -05:00
check.nix
check.sh Better document build failure exit codes 2023-06-22 14:29:45 -04:00
common.sh Add some tests for drop-supplementary-groups 2023-05-15 17:41:51 -04:00
completions.sh
compression-levels.sh
compute-levels.sh Harden tests' bash 2023-03-08 10:26:30 -05:00
config.nix.in
config.sh tests/config: test retrieving a single setting's value with nix show-config <setting> 2023-01-13 07:57:55 -08:00
db-migration.sh Cleanup test skipping 2023-03-16 18:43:03 -04:00
dependencies.builder0.sh
dependencies.nix
dependencies.sh Expanded test suite 2023-07-11 21:43:09 -04:00
derivation-json.sh Create nix derivation add command 2023-04-07 08:34:58 -04:00
dummy
dump-db.sh
eval-store.sh Harden tests' bash 2023-03-08 10:26:30 -05:00
eval.nix
eval.sh Fix SourcePath::resolveSymlinks() 2023-06-06 11:24:10 +02:00
experimental-features.sh Fix some issues with experimental config settings 2023-04-17 12:41:04 -04:00
export-graph.nix
export-graph.sh Harden tests' bash 2023-03-08 10:26:30 -05:00
export.sh
failing.nix
fetchClosure.sh tests/fetchClosure: Improve coverage of new and some existing flows 2023-06-30 18:23:44 +02:00
fetchGit.sh Add dirtyRev and dirtyShortRev to fetchGit 2023-06-24 14:17:25 +10:00
fetchGitRefs.sh Cleanup test skipping 2023-03-16 18:43:03 -04:00
fetchGitSubmodules.sh Cleanup test skipping 2023-03-16 18:43:03 -04:00
fetchMercurial.sh Cleanup test skipping 2023-03-16 18:43:03 -04:00
fetchPath.sh
fetchTree-file.sh Don't require .tar/.zip extension for tarball flakerefs 2023-08-01 16:07:20 +02:00
fetchurl.sh Harden tests' bash 2023-03-08 10:26:30 -05:00
filter-source.nix
filter-source.sh
fixed.builder1.sh
fixed.builder2.sh
fixed.nix
fixed.sh
fmt.sh Harden tests' bash 2023-03-08 10:26:30 -05:00
fmt.simple.sh
function-trace.sh Harden tests' bash 2023-03-08 10:26:30 -05:00
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 Cleanup test skipping 2023-03-16 18:43:03 -04:00
gc.sh Split out nix-collect-garbage -d test to new file 2023-06-14 19:01:07 -04:00
hash-check.nix
hash.sh nix-hash: support base-64 and SRI format 2023-03-16 03:08:42 +08:00
hermetic.nix Add some tests for drop-supplementary-groups 2023-05-15 17:41:51 -04:00
import-derivation.nix
import-derivation.sh
impure-derivations.nix
impure-derivations.sh Gate experimental features in DerivationOutput::fromJSON 2023-04-17 17:36:12 -04:00
init.sh nix-testing -> daemon-trust-override 2023-04-17 09:35:43 -04:00
install-darwin.sh Harden tests' bash 2023-03-08 10:26:30 -05:00
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 Add Store::isTrustedClient() 2023-04-06 19:59:57 -04:00
linux-sandbox-cert-test.nix Check exact error codes in linux-sandbox.sh 2023-05-22 23:39:31 +02:00
linux-sandbox.sh Better document build failure exit codes 2023-06-22 14:29:45 -04:00
local-store.sh Add Store::isTrustedClient() 2023-04-06 19:59:57 -04:00
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 Add some tests for illegal output names 2023-01-18 14:21:17 +01:00
multiple-outputs.sh Harden tests' bash 2023-03-08 10:26:30 -05:00
nar-access.nix
nar-access.sh Harden tests' bash 2023-03-08 10:26:30 -05:00
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 Test nix-channel --list-generations 2023-06-02 10:21:30 +02:00
nix-collect-garbage-d.sh Split out nix-collect-garbage -d test to new file 2023-06-14 19:01:07 -04:00
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 Experimentally allow forcing nix-daemon trust; use this to test 2023-04-17 13:06:21 -04:00
nix-profile.sh Fix test 2023-07-03 12:23:57 +02:00
nix-shell.sh Fix nix print-dev-env & nix develop with drv paths 2023-05-10 11:29:45 -04:00
nix_path.sh Revert "getDefaultNixPath: actually respect {restrict,pure}-eval" 2023-02-27 15:11:36 +01:00
optimise-store.sh
output-normalization.sh Test nix build --json return output paths in floating CA case 2023-02-10 18:04:13 -05:00
parallel.builder.sh
parallel.nix
parallel.sh
pass-as-file.sh
path-from-hash-part.sh
path.nix
placeholders.sh
plugins.sh Cleanup test skipping 2023-03-16 18:43:03 -04:00
post-hook.sh tests/post-hook: remove TODO and --derivation upload 2023-05-08 12:58:59 +02:00
pure-eval.nix
pure-eval.sh Harden tests' bash 2023-03-08 10:26:30 -05:00
push-to-store-old.sh tests/post-hook: test to see if all outputs are passed 2023-05-08 12:43:56 +02:00
push-to-store.sh tests/post-hook: remove TODO and --derivation upload 2023-05-08 12:58:59 +02:00
read-only-store.sh Support opening local store with database on read-only filesystem (#8356) 2023-06-20 11:34:09 +02:00
readfile-context.nix
readfile-context.sh
recursive.nix Move test/recursive.sh nix expr to file 2023-04-19 19:36:05 -04:00
recursive.sh Merge branch 'master' into angerman/mac-fix-recursive-nix 2023-06-09 13:06:47 +02:00
referrers.sh
remote-store.sh Add Store::isTrustedClient() 2023-04-06 19:59:57 -04:00
repair.sh
repl.sh Deduplicate string literal rendering, fix 4909 2023-04-09 22:42:20 +02:00
restricted.nix
restricted.sh Expanded test suite 2023-07-11 21:43:09 -04:00
search.nix
search.sh Harden tests' bash 2023-03-08 10:26:30 -05:00
secure-drv-outputs.nix
secure-drv-outputs.sh
selfref-gc.sh
shell-hello.nix
shell.nix
shell.sh Cleanup test skipping 2023-03-16 18:43:03 -04:00
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 tests/store-ping: test nix store ping --json 2023-01-31 15:10:54 +01:00
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 Harden tests' bash 2023-03-08 10:26:30 -05:00
test-infra.sh Harden tests' bash 2023-03-08 10:26:30 -05:00
test-libstoreconsumer.sh Fix build hook error for libstore library users 2023-06-15 14:32:00 +02:00
timeout.nix
timeout.sh Harden tests' bash 2023-03-08 10:26:30 -05:00
toString-path.sh
undefined-variable.nix
user-envs-migration.sh Cleanup test skipping 2023-03-16 18:43:03 -04:00
user-envs.builder.sh
user-envs.nix
user-envs.sh Harden tests' bash 2023-03-08 10:26:30 -05:00
why-depends.sh nix/why-depends: fix output of --precise 2023-08-04 23:11:08 +02:00
zstd.sh