lix/tests
John Ericson d2162e7acd Make more string values work as installables
As discussed in #7417, it would be good to make more string values work
as installables. That is to say, if an installable refers to a value,
and the value is a string, it used to not work at all, since #7484, it
works somewhat, and this PR make it work some more.

The new cases that are added for `BuiltPath` contexts:

- Fixed input- or content-addressed derivation:

  ```
  nix-repl> hello.out.outPath
  "/nix/store/jppfl2bp1zhx8sgs2mgifmsx6dv16mv2-hello-2.12"

  nix-repl> :p builtins.getContext hello.out.outPath
  { "/nix/store/c7jrxqjhdda93lhbkanqfs07x2bzazbm-hello-2.12.drv" = { outputs = [ "out" ]; }; }

  The string matches the specified single output of that derivation, so
  it should also be valid.

- Floating content-addressed derivation:

  ```
  nix-repl> (hello.overrideAttrs (_: { __contentAddressed = true; })).out.outPath
  "/1a08j26xqc0zm8agps8anxpjji410yvsx4pcgyn4bfan1ddkx2g0"

  nix-repl> :p builtins.getContext (hello.overrideAttrs (_: { __contentAddressed = true; })).out.outPath
  { "/nix/store/qc645pyf9wl37c6qvqzaqkwsm1gp48al-hello-2.12.drv" = { outputs = [ "out" ]; }; }
  ```

  The string is not a path but a placeholder, however it also matches
  the context, and because it is a CA derivation we have no better
  option. This should also be valid.

We may also want to think about richer attrset based values (also
discussed in that issue and #6507), but this change "completes" our
string-based building blocks, from which the others can be desugared
into or at least described/document/taught in terms of.

Progress towards #7417

Co-authored-by: Robert Hensing <roberth@users.noreply.github.com>
2023-05-15 09:03:38 -04:00
..
ca Gate experimental features in DerivationOutput::fromJSON 2023-04-17 17:36:12 -04:00
common Cleanup test skipping 2023-03-16 18:43:03 -04:00
config
dyn-drv Rename a few things in new tests 2023-05-08 08:01:58 -04:00
flakes Make more string values work as installables 2023-05-15 09:03:38 -04:00
installer test: Make the installer work on old rhel versions 2023-03-31 15:29:50 +02:00
lang Merge pull request #7158 from sternenseemann/foldl-strict-accumulation-value 2023-02-19 23:54:14 +01:00
nixos Add a test for nix copy over ssh 2023-03-22 09:45:08 +04:00
plugins Backport SourcePath from the lazy-trees branch 2023-04-06 13:15:50 +02: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 Fix nix log with CA derivations 2022-12-08 16:03:20 -05:00
build-hook.nix Fix nix log with CA derivations 2022-12-08 16:03:20 -05:00
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 Experimentally allow forcing nix-daemon trust; use this to test 2023-04-17 13:06:21 -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 Cleanup test skipping 2023-03-16 18:43:03 -04:00
build.sh Make more string values work as installables 2023-05-15 09:03:38 -04:00
ca-shell.nix
case-hack.sh
case.nar
check-refs.nix move unsafeDiscardReferences out of outputChecks 2023-01-03 18:53:01 +01:00
check-refs.sh Harden tests' bash 2023-03-08 10:26:30 -05:00
check-reqs.nix
check-reqs.sh Harden tests' bash 2023-03-08 10:26:30 -05:00
check.nix tests: don't refer to TMPDIR 2022-12-06 16:36:42 +01:00
check.sh Harden tests' bash 2023-03-08 10:26:30 -05:00
common.sh Harden tests' bash 2023-03-08 10:26:30 -05:00
completions.sh SourceExprCommand: swallow EvalError, add tests for this 2022-11-03 10:11:28 +01:00
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 Harden tests' bash 2023-03-08 10:26:30 -05: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 quote subshell expansion in tests/eval.sh 2023-05-09 10:06:26 -05: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 Harden tests' bash 2023-03-08 10:26:30 -05:00
fetchGit.sh Cleanup test skipping 2023-03-16 18:43:03 -04: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 Harden tests' bash 2023-03-08 10:26:30 -05: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 Fix nix-collect-garbage -d with the new profile location 2023-03-07 13:08:04 +01:00
hash-check.nix
hash.sh nix-hash: support base-64 and SRI format 2023-03-16 03:08:42 +08: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.sh eval: Fix crash on missing printValue tBlackhole case 2023-04-03 15:32:42 +02:00
legacy-ssh-store.sh Add Store::isTrustedClient() 2023-04-06 19:59:57 -04:00
linux-sandbox.sh Cleanup test skipping 2023-03-16 18:43:03 -04:00
local-store.sh Add Store::isTrustedClient() 2023-04-06 19:59:57 -04:00
local.mk Merge pull request #3959 from obsidiansystems/ca-drv-exotic 2023-05-10 10:41:59 -04:00
logging.sh Implement regression test for empty logs loaded via nix log 2022-03-24 22:31:52 +01:00
misc.sh Harden tests' bash 2023-03-08 10:26:30 -05: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
nix-build-examples.nix
nix-build.sh
nix-channel.sh Harden tests' bash 2023-03-08 10:26:30 -05: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 the flaky nix-profile test 2023-04-03 20:47:21 +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 Add command 'nix store path-from-hash-part' 2022-10-18 16:51:12 +02:00
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
readfile-context.nix Test that the result of readFile gets ref-scanned 2022-11-14 16:13:26 +01:00
readfile-context.sh
recursive.nix Move test/recursive.sh nix expr to file 2023-04-19 19:36:05 -04:00
recursive.sh Merge pull request #3959 from obsidiansystems/ca-drv-exotic 2023-05-10 10:41:59 -04: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 Harden tests' bash 2023-03-08 10:26:30 -05: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 Dodge "trusted" vs "trustworthy" by being explicit 2022-09-22 14:37:52 -04: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
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
timeout.nix
timeout.sh Harden tests' bash 2023-03-08 10:26:30 -05:00
toString-path.sh Trivial changes from the lazy-trees branch 2022-12-07 14:06:34 +01:00
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 Harden tests' bash 2023-03-08 10:26:30 -05:00
zstd.sh