lix/tests/functional
alois31 81a0624d76
libexpr/print: pretty-print idempotently
When pretty-printing is enabled, previously an unforced thunk would trigger
indentation, even when it subsequently does not evaluate to a nested structure.
The resulting output looked inconsistent, and furthermore pretty-printing was
not idempotent (since pretty-printing the same value again, which is now fully
evaluated, will not trigger indentation).
When strict evaluation is enabled, force the item before inspecting its type,
so that it is properly known whether it contains a nested structure.
Furthermore, there is no need to cause indentation for unforced thunks, since
the very next operation will be printing them as `«thunk»`.

This is mostly a port of https://github.com/NixOS/nix/pull/11100 , but we only
force the item when it's going to be forced anyway due to strict
pretty-printing, and a new test was written since the REPL testing framework in
Lix is different.

Co-Authored-By: Robert Hensing <robert@roberthensing.nl>
Change-Id: Ib7560fe531d09e05ca6b2037a523fe21a26d9d58
2024-07-18 18:41:28 +02:00
..
ca chore: rebrand Nix to Lix when it makes sense 2024-06-01 20:31:24 +02:00
common Add build-dir setting, clean up default TMPDIR handling 2024-06-24 11:30:32 +03:00
config
dyn-drv remove the autoconf+Make buildsystem 2024-05-07 17:04:30 -06:00
flakes Merge "Reject fully-qualified URLs in 'from' argument of nix registry add" into main 2024-07-02 07:20:01 +00:00
lang language: cleanly ban integer overflows 2024-07-13 00:59:33 +02:00
nested-sandboxing chore: rebrand Nix to Lix when it makes sense 2024-06-01 20:31:24 +02:00
plugins remove the autoconf+Make buildsystem 2024-05-07 17:04:30 -06:00
repl_characterization libexpr/print: pretty-print idempotently 2024-07-18 18:41:28 +02:00
test-libstoreconsumer remove the autoconf+Make buildsystem 2024-05-07 17:04:30 -06:00
add.sh
bad.tar.xz
bash-profile.sh Fix failing darwin tests 2024-05-06 18:56:40 +02:00
big-derivation-attr.nix
binary-cache-build-remote.sh
binary-cache.sh chore: rebrand Nix to Lix when it makes sense 2024-06-01 20:31:24 +02:00
brotli.sh
build-delete.sh
build-dry.sh
build-hook-ca-fixed.nix Merge pull request #9032 from Ma27/structured-attrs-env-vars 2024-03-07 10:46:47 +01:00
build-hook-ca-floating.nix
build-hook.nix Merge pull request #9032 from Ma27/structured-attrs-env-vars 2024-03-07 10:46:47 +01:00
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 chore: rebrand Nix to Lix when it makes sense 2024-06-01 20:31:24 +02: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
build.sh store: guess the URL of failing fixed-output derivations 2024-06-27 22:44:16 -07:00
ca-shell.nix
case-hack.sh
case.nar
check-refs.nix
check-refs.sh
check-reqs.nix
check-reqs.sh
check.nix
check.sh Add build-dir setting, clean up default TMPDIR handling 2024-06-24 11:30:32 +03:00
common.sh
completions.sh Merge pull request #8817 from iFreilicht/flake-update-lock-overhaul 2024-03-25 17:36:24 -06:00
compression-levels.sh
compute-levels.sh
config.nix.in Merge pull request #9032 from Ma27/structured-attrs-env-vars 2024-03-07 10:46:47 +01:00
config.sh Rename nix show-config to nix config show 2024-05-03 16:26:16 +02:00
db-migration.sh chore: rebrand Nix to Lix when it makes sense 2024-06-01 20:31:24 +02:00
debugger.sh Merge pull request #9933 from pennae/debugger-fix 2024-03-04 08:57:44 +01:00
dependencies.builder0.sh
dependencies.nix
dependencies.sh
derivation-json.sh
dummy
dump-db.sh
eval-store.sh Merge pull request #9589 from obsidiansystems/floating-content-addressing-derivations-eval-store 2024-03-04 07:15:08 +01:00
eval.nix
eval.sh distinguish between throws & errors during throw 2024-07-04 17:43:03 -06:00
experimental-features.sh libexpr/flake: allow automatic rejection of configuration options from flakes 2024-06-30 19:28:14 +02:00
export-graph.nix
export-graph.sh
export.sh
extra-sandbox-profile.nix libstore: Fix sandbox=relaxed 2024-05-08 19:31:43 +00:00
extra-sandbox-profile.sh libstore: Fix sandbox=relaxed 2024-05-08 19:31:43 +00:00
failing.nix Merge pull request #9032 from Ma27/structured-attrs-env-vars 2024-03-07 10:46:47 +01:00
fetchClosure.sh Add pre-commit checks 2024-03-29 22:57:40 -07:00
fetchGit.sh
fetchGitRefs.sh
fetchGitSubmodules.sh libfetchers: represent unfetched submodules consistently 2024-06-18 00:54:51 +00:00
fetchMercurial.sh tests: actually run mercurial tests 2024-05-04 16:48:07 +02:00
fetchPath.sh
fetchTree-file.sh chore: rebrand Nix to Lix when it makes sense 2024-06-01 20:31:24 +02:00
fetchurl.sh
filter-source.nix
filter-source.sh
fixed.builder1.sh
fixed.builder2.sh
fixed.nix Merge pull request #9662 from shlevy/flat-fixed-references-assert 2024-03-04 07:50:02 +01:00
fixed.sh Merge pull request #9662 from shlevy/flat-fixed-references-assert 2024-03-04 07:50:02 +01:00
fmt.sh
fmt.simple.sh Add pre-commit checks 2024-03-29 22:57:40 -07:00
fod-failing.nix store: guess the URL of failing fixed-output derivations 2024-06-27 22:44:16 -07:00
function-trace.sh Add pre-commit checks 2024-03-29 22:57:40 -07:00
gc-auto.sh
gc-concurrent.builder.sh
gc-concurrent.nix
gc-concurrent.sh
gc-concurrent2.builder.sh
gc-non-blocking.sh Merge pull request #8544 from edolstra/handle-missing-gc-socket 2024-03-07 00:43:51 -07:00
gc-runtime.nix gc: Find roots using libproc on Darwin 2024-04-25 23:24:21 -04:00
gc-runtime.sh gc: Find roots using libproc on Darwin 2024-04-25 23:24:21 -04:00
gc.sh
hash-check.nix Add pre-commit checks 2024-03-29 22:57:40 -07:00
hash.sh
hermetic.nix Merge pull request #9032 from Ma27/structured-attrs-env-vars 2024-03-07 10:46:47 +01:00
ifd.nix
import-derivation.nix
import-derivation.sh
impure-derivations.nix
impure-derivations.sh chore: rebrand Nix to Lix when it makes sense 2024-06-01 20:31:24 +02:00
impure-eval.sh Merge pull request #4093 from matthewbauer/eval-system 2024-03-04 07:21:01 +01:00
init.sh Fix failing darwin tests 2024-05-06 18:56:40 +02:00
install-darwin.sh change shebangs of all .sh scripts to bash 2024-06-24 14:00:43 -07:00
lang-test-infra.sh
lang.sh Add pre-commit checks 2024-03-29 22:57:40 -07:00
legacy-ssh-store.sh "but doctor, I AM the untrusted store": nix doctor had wrong trustedness 2024-04-08 15:40:12 -07:00
linux-sandbox-cert-test.nix Add pre-commit checks 2024-03-29 22:57:40 -07:00
linux-sandbox.sh libstore/build: copy ca-certificates too 2024-05-31 07:54:18 +00:00
local-store.sh "but doctor, I AM the untrusted store": nix doctor had wrong trustedness 2024-04-08 15:40:12 -07:00
logging.sh Merge pull request #9637 from 9999years/fix-logging-test-on-macos 2024-03-04 07:26:34 +01:00
meson.build Fix dry-run flag for nix-collect-garbage 2024-07-09 13:55:05 +00:00
misc.sh libutil/args: warn on unknown settings after parsing all flags 2024-05-30 03:07:21 +00:00
multiple-outputs.nix
multiple-outputs.sh
nar-access.nix Add pre-commit checks 2024-03-29 22:57:40 -07:00
nar-access.sh Merge pull request #9288 from edolstra/fix-nar-access-test 2024-03-04 05:27:18 +01:00
nested-sandboxing.sh
nix-build-examples.nix
nix-build.sh
nix-channel.sh Add pre-commit checks 2024-03-29 22:57:40 -07:00
nix-collect-garbage-d.sh
nix-collect-garbage-dry-run.sh Fix dry-run flag for nix-collect-garbage 2024-07-09 13:55:05 +00:00
nix-copy-ssh-common.sh Merge pull request #9604 from obsidiansystems/test-substitute-on-destination 2024-03-07 03:34:00 +01:00
nix-copy-ssh-ng.sh Merge pull request #9604 from obsidiansystems/test-substitute-on-destination 2024-03-07 03:34:00 +01:00
nix-copy-ssh.sh Merge pull request #9604 from obsidiansystems/test-substitute-on-destination 2024-03-07 03:34:00 +01:00
nix-daemon-untrusting.sh change shebangs of all .sh scripts to bash 2024-06-24 14:00:43 -07:00
nix-profile.sh libfetchers: log fetches by URL just before they happen 2024-05-24 15:15:42 -06:00
nix-shell.sh Merge pull request #9930 from rvl/print-dev-env-unbound-variables 2024-03-04 08:51:49 +01:00
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 tests: don't build test plugin shared libs on static builds 2024-05-12 23:04:21 +02:00
post-hook.sh
pure-eval.nix
pure-eval.sh
push-to-store-old.sh change shebangs of all .sh scripts to bash 2024-06-24 14:00:43 -07:00
push-to-store.sh change shebangs of all .sh scripts to bash 2024-06-24 14:00:43 -07:00
read-only-store.sh Add pre-commit checks 2024-03-29 22:57:40 -07:00
readfile-context.nix
readfile-context.sh
recursive.nix
recursive.sh
referrers.sh
remote-store.sh "but doctor, I AM the untrusted store": nix doctor had wrong trustedness 2024-04-08 15:40:12 -07:00
repair.sh
repl.sh tests/functional/repl.sh: actually fail test on wrong stdout 2024-07-17 21:48:13 +00:00
restricted.nix
restricted.sh
search.nix
search.sh Merge pull request #9481 from iFreilicht/disallow-nix-search-without-search-terms 2024-03-04 08:40:12 +01:00
secure-drv-outputs.nix
secure-drv-outputs.sh
selfref-gc.sh
shell-hello.nix Merge pull request #9648 from cole-h/nix-shell-ordering 2024-03-04 07:50:55 +01:00
shell.nix
shell.sh Merge pull request #9648 from cole-h/nix-shell-ordering 2024-03-04 07:50:55 +01:00
shell.shebang.nix Add pre-commit checks 2024-03-29 22:57:40 -07:00
shell.shebang.rb Add pre-commit checks 2024-03-29 22:57:40 -07:00
shell.shebang.sh
signing.sh
simple-failing.nix
simple.builder.sh Add pre-commit checks 2024-03-29 22:57:40 -07:00
simple.nix
simple.sh
ssh-relay.sh
store-ping.sh Merge pull request #9632 from cole-h/nix-daemon-testing 2024-03-04 08:17:32 +01:00
structured-attrs-shell.nix
structured-attrs.nix
structured-attrs.sh Merge pull request #9032 from Ma27/structured-attrs-env-vars 2024-03-07 10:46:47 +01:00
substitute-truncated-nar.sh libutil: remove sinkToSource eof callback 2024-06-23 11:52:49 +00:00
substitute-with-invalid-ca.sh
suggestions.sh
supplementary-groups.sh
symlink-derivation.nix Merge pull request #10456 from NixOS/fixpermdeniedbind 2024-04-11 15:43:58 +03:00
tarball.sh Merge pull request #9225 from drupol/nixpkgs-pr-107251/make-gnutar-reproducible 2024-03-04 05:34:19 +01:00
test-infra.sh
test-libstoreconsumer.sh
test-repl-characterization.sh Implement a parser for a literate testing system for the repl 2024-03-14 14:30:38 -07:00
timeout.nix
timeout.sh tests: fix functional-timeout 2024-05-28 04:20:00 +00:00
toString-path.sh
undefined-variable.nix
user-envs-migration.sh
user-envs.builder.sh
user-envs.nix
user-envs.sh Merge pull request #9257 from Artturin/nixenvjsondrvpath 2024-03-04 05:59:15 +01:00
why-depends.sh
zstd.sh