From 30dcc19d1f30fc203be460134c4578509cce704f Mon Sep 17 00:00:00 2001 From: John Ericson Date: Thu, 5 Oct 2023 12:12:18 -0400 Subject: [PATCH] Put functional tests in `tests/functional` I think it is bad for these reasons when `tests/` contains a mix of functional and integration tests - Concepts is harder to understand, the documentation makes a good unit vs functional vs integration distinction, but when the integration tests are just two subdirs within `tests/` this is not clear. - Source filtering in the `flake.nix` is more complex. We need to filter out some of the dirs from `tests/`, rather than simply pick the dirs we want and take all of them. This is a good sign the structure of what we are trying to do is not matching the structure of the files. With this change we have a clean: ```shell-session $ git show 'HEAD:tests' tree HEAD:tests functional/ installer/ nixos/ ``` (cherry picked from commit 68c81c737571794f7246db53fb4774e94fcf4b7e) --- .github/labeler.yml | 2 +- .gitignore | 34 ++++++------ CONTRIBUTING.md | 2 +- Makefile | 10 ++-- doc/manual/src/contributing/testing.md | 32 ++++++----- flake.nix | 52 ++++++++---------- mk/common-test.sh | 8 ++- src/libstore/gc.cc | 2 +- src/libutil/url-parts.hh | 2 +- tests/{ => functional}/add.sh | 0 tests/{ => functional}/bad.tar.xz | Bin tests/{ => functional}/bash-profile.sh | 2 +- .../{ => functional}/big-derivation-attr.nix | 0 .../binary-cache-build-remote.sh | 0 tests/{ => functional}/binary-cache.sh | 0 tests/{ => functional}/brotli.sh | 0 tests/{ => functional}/build-delete.sh | 0 tests/{ => functional}/build-dry.sh | 0 .../{ => functional}/build-hook-ca-fixed.nix | 0 .../build-hook-ca-floating.nix | 0 tests/{ => functional}/build-hook.nix | 0 .../build-remote-content-addressed-fixed.sh | 0 ...build-remote-content-addressed-floating.sh | 0 .../build-remote-input-addressed.sh | 0 .../build-remote-trustless-after.sh | 0 .../build-remote-trustless-should-fail-0.sh | 0 .../build-remote-trustless-should-pass-0.sh | 0 .../build-remote-trustless-should-pass-1.sh | 0 .../build-remote-trustless-should-pass-2.sh | 0 .../build-remote-trustless-should-pass-3.sh | 0 .../build-remote-trustless.sh | 2 +- tests/{ => functional}/build-remote.sh | 0 tests/{ => functional}/build.sh | 0 tests/{ => functional}/ca-shell.nix | 0 tests/{ => functional}/ca/build-cache.sh | 0 tests/{ => functional}/ca/build-dry.sh | 0 .../ca/build-with-garbage-path.sh | 0 tests/{ => functional}/ca/build.sh | 0 tests/{ => functional}/ca/common.sh | 0 .../{ => functional}/ca/concurrent-builds.sh | 0 tests/{ => functional}/ca/config.nix.in | 0 .../{ => functional}/ca/content-addressed.nix | 0 tests/{ => functional}/ca/derivation-json.sh | 0 .../ca/duplicate-realisation-in-closure.sh | 0 tests/{ => functional}/ca/flake.nix | 0 tests/{ => functional}/ca/gc.sh | 0 .../{ => functional}/ca/import-derivation.sh | 0 tests/{ => functional}/ca/local.mk | 2 +- tests/{ => functional}/ca/new-build-cmd.sh | 0 tests/{ => functional}/ca/nix-copy.sh | 0 tests/{ => functional}/ca/nix-run.sh | 0 tests/{ => functional}/ca/nix-shell.sh | 0 .../{ => functional}/ca/nondeterministic.nix | 0 tests/{ => functional}/ca/post-hook.sh | 0 tests/{ => functional}/ca/racy.nix | 0 tests/{ => functional}/ca/recursive.sh | 0 tests/{ => functional}/ca/repl.sh | 0 tests/{ => functional}/ca/selfref-gc.sh | 0 tests/{ => functional}/ca/signatures.sh | 0 tests/{ => functional}/ca/substitute.sh | 0 tests/{ => functional}/ca/why-depends.sh | 0 tests/{ => functional}/case-hack.sh | 0 tests/{ => functional}/case.nar | Bin tests/{ => functional}/check-refs.nix | 0 tests/{ => functional}/check-refs.sh | 0 tests/{ => functional}/check-reqs.nix | 0 tests/{ => functional}/check-reqs.sh | 0 tests/{ => functional}/check.nix | 0 tests/{ => functional}/check.sh | 0 tests/{ => functional}/common.sh | 0 .../common/vars-and-functions.sh.in | 2 +- tests/{ => functional}/completions.sh | 0 tests/{ => functional}/compression-levels.sh | 0 tests/{ => functional}/compute-levels.sh | 0 tests/{ => functional}/config.nix.in | 0 tests/{ => functional}/config.sh | 0 .../config/nix-with-substituters.conf | 0 tests/{ => functional}/db-migration.sh | 0 .../{ => functional}/dependencies.builder0.sh | 0 tests/{ => functional}/dependencies.nix | 0 tests/{ => functional}/dependencies.sh | 0 tests/{ => functional}/derivation-json.sh | 0 tests/{ => functional}/dummy | 0 tests/{ => functional}/dump-db.sh | 0 .../dyn-drv/build-built-drv.sh | 0 tests/{ => functional}/dyn-drv/common.sh | 0 tests/{ => functional}/dyn-drv/config.nix.in | 0 .../{ => functional}/dyn-drv/dep-built-drv.sh | 0 .../{ => functional}/dyn-drv/eval-outputOf.sh | 0 tests/{ => functional}/dyn-drv/local.mk | 2 +- .../dyn-drv/old-daemon-error-hack.nix | 0 .../dyn-drv/old-daemon-error-hack.sh | 0 .../dyn-drv/recursive-mod-json.nix | 0 .../dyn-drv/recursive-mod-json.sh | 0 .../dyn-drv/text-hashed-output.nix | 0 .../dyn-drv/text-hashed-output.sh | 0 tests/{ => functional}/eval-store.sh | 0 tests/{ => functional}/eval.nix | 0 tests/{ => functional}/eval.sh | 0 .../{ => functional}/experimental-features.sh | 0 tests/{ => functional}/export-graph.nix | 0 tests/{ => functional}/export-graph.sh | 0 tests/{ => functional}/export.sh | 0 tests/{ => functional}/failing.nix | 0 tests/{ => functional}/fetchClosure.sh | 0 tests/{ => functional}/fetchGit.sh | 0 tests/{ => functional}/fetchGitRefs.sh | 0 tests/{ => functional}/fetchGitSubmodules.sh | 0 tests/{ => functional}/fetchMercurial.sh | 0 tests/{ => functional}/fetchPath.sh | 0 tests/{ => functional}/fetchTree-file.sh | 0 tests/{ => functional}/fetchurl.sh | 0 tests/{ => functional}/filter-source.nix | 0 tests/{ => functional}/filter-source.sh | 0 tests/{ => functional}/fixed.builder1.sh | 0 tests/{ => functional}/fixed.builder2.sh | 0 tests/{ => functional}/fixed.nix | 0 tests/{ => functional}/fixed.sh | 0 .../{ => functional}/flakes/absolute-paths.sh | 0 tests/{ => functional}/flakes/build-paths.sh | 0 tests/{ => functional}/flakes/bundle.sh | 0 tests/{ => functional}/flakes/check.sh | 0 tests/{ => functional}/flakes/circular.sh | 0 tests/{ => functional}/flakes/common.sh | 0 tests/{ => functional}/flakes/config.sh | 0 .../flakes/flake-in-submodule.sh | 0 tests/{ => functional}/flakes/flakes.sh | 0 tests/{ => functional}/flakes/follow-paths.sh | 0 tests/{ => functional}/flakes/init.sh | 0 tests/{ => functional}/flakes/inputs.sh | 0 tests/{ => functional}/flakes/mercurial.sh | 0 tests/{ => functional}/flakes/run.sh | 0 tests/{ => functional}/flakes/search-root.sh | 0 tests/{ => functional}/flakes/show.sh | 0 .../flakes/unlocked-override.sh | 0 tests/{ => functional}/fmt.sh | 0 tests/{ => functional}/fmt.simple.sh | 0 tests/{ => functional}/function-trace.sh | 0 tests/{ => functional}/gc-auto.sh | 0 .../{ => functional}/gc-concurrent.builder.sh | 0 tests/{ => functional}/gc-concurrent.nix | 0 tests/{ => functional}/gc-concurrent.sh | 0 .../gc-concurrent2.builder.sh | 0 tests/{ => functional}/gc-non-blocking.sh | 0 tests/{ => functional}/gc-runtime.nix | 0 tests/{ => functional}/gc-runtime.sh | 0 tests/{ => functional}/gc.sh | 0 tests/{ => functional}/hash-check.nix | 0 tests/{ => functional}/hash.sh | 0 tests/{ => functional}/hermetic.nix | 0 tests/{ => functional}/import-derivation.nix | 0 tests/{ => functional}/import-derivation.sh | 0 tests/{ => functional}/impure-derivations.nix | 0 tests/{ => functional}/impure-derivations.sh | 0 tests/{ => functional}/init.sh | 0 tests/{ => functional}/install-darwin.sh | 0 tests/{ => functional}/lang-test-infra.sh | 0 tests/{ => functional}/lang.sh | 2 +- tests/{ => functional}/lang/binary-data | Bin tests/{ => functional}/lang/data | 0 tests/{ => functional}/lang/dir1/a.nix | 0 tests/{ => functional}/lang/dir2/a.nix | 0 tests/{ => functional}/lang/dir2/b.nix | 0 tests/{ => functional}/lang/dir3/a.nix | 0 tests/{ => functional}/lang/dir3/b.nix | 0 tests/{ => functional}/lang/dir3/c.nix | 0 tests/{ => functional}/lang/dir4/a.nix | 0 tests/{ => functional}/lang/dir4/c.nix | 0 tests/{ => functional}/lang/empty.exp | 0 .../lang/eval-fail-abort.err.exp | 0 .../{ => functional}/lang/eval-fail-abort.nix | 0 .../lang/eval-fail-antiquoted-path.err.exp | 0 .../lang/eval-fail-assert.err.exp | 0 .../lang/eval-fail-assert.nix | 0 .../lang/eval-fail-bad-antiquote-1.err.exp | 0 .../lang/eval-fail-bad-antiquote-2.err.exp | 0 .../lang/eval-fail-bad-antiquote-3.err.exp | 0 ...al-fail-bad-string-interpolation-1.err.exp | 0 .../eval-fail-bad-string-interpolation-1.nix | 0 ...al-fail-bad-string-interpolation-2.err.exp | 0 .../eval-fail-bad-string-interpolation-2.nix | 0 ...al-fail-bad-string-interpolation-3.err.exp | 0 .../eval-fail-bad-string-interpolation-3.nix | 0 .../lang/eval-fail-blackhole.err.exp | 0 .../lang/eval-fail-blackhole.nix | 0 .../lang/eval-fail-deepseq.err.exp | 0 .../lang/eval-fail-deepseq.nix | 0 .../lang/eval-fail-dup-dynamic-attrs.err.exp | 0 .../lang/eval-fail-dup-dynamic-attrs.nix | 0 ...-foldlStrict-strict-op-application.err.exp | 0 ...fail-foldlStrict-strict-op-application.nix | 0 .../eval-fail-fromTOML-timestamps.err.exp | 0 .../lang/eval-fail-fromTOML-timestamps.nix | 0 .../lang/eval-fail-hashfile-missing.err.exp | 0 .../lang/eval-fail-hashfile-missing.nix | 0 .../lang/eval-fail-list.err.exp | 0 .../{ => functional}/lang/eval-fail-list.nix | 0 .../lang/eval-fail-missing-arg.err.exp | 0 .../lang/eval-fail-missing-arg.nix | 0 .../lang/eval-fail-nonexist-path.err.exp | 0 .../lang/eval-fail-nonexist-path.nix | 0 .../lang/eval-fail-path-slash.err.exp | 0 .../lang/eval-fail-path-slash.nix | 0 .../lang/eval-fail-recursion.err.exp | 0 .../lang/eval-fail-recursion.nix | 0 .../lang/eval-fail-remove.err.exp | 0 .../lang/eval-fail-remove.nix | 0 .../lang/eval-fail-scope-5.err.exp | 0 .../lang/eval-fail-scope-5.nix | 0 .../lang/eval-fail-seq.err.exp | 0 tests/{ => functional}/lang/eval-fail-seq.nix | 0 .../lang/eval-fail-set-override.err.exp | 0 .../lang/eval-fail-set-override.nix | 0 .../lang/eval-fail-set.err.exp | 0 tests/{ => functional}/lang/eval-fail-set.nix | 0 .../lang/eval-fail-substring.err.exp | 0 .../lang/eval-fail-substring.nix | 0 .../lang/eval-fail-to-path.err.exp | 0 .../lang/eval-fail-to-path.nix | 0 .../lang/eval-fail-toJSON.err.exp | 0 .../lang/eval-fail-toJSON.nix | 0 .../lang/eval-fail-undeclared-arg.err.exp | 0 .../lang/eval-fail-undeclared-arg.nix | 0 .../lang/eval-okay-any-all.exp | 0 .../lang/eval-okay-any-all.nix | 0 .../lang/eval-okay-arithmetic.exp | 0 .../lang/eval-okay-arithmetic.nix | 0 .../lang/eval-okay-attrnames.exp | 0 .../lang/eval-okay-attrnames.nix | 0 .../{ => functional}/lang/eval-okay-attrs.exp | 0 .../{ => functional}/lang/eval-okay-attrs.nix | 0 .../lang/eval-okay-attrs2.exp | 0 .../lang/eval-okay-attrs2.nix | 0 .../lang/eval-okay-attrs3.exp | 0 .../lang/eval-okay-attrs3.nix | 0 .../lang/eval-okay-attrs4.exp | 0 .../lang/eval-okay-attrs4.nix | 0 .../lang/eval-okay-attrs5.exp | 0 .../lang/eval-okay-attrs5.nix | 0 .../lang/eval-okay-attrs6.exp | 0 .../lang/eval-okay-attrs6.nix | 0 .../lang/eval-okay-autoargs.exp | 0 .../lang/eval-okay-autoargs.flags | 0 .../lang/eval-okay-autoargs.nix | 0 .../lang/eval-okay-backslash-newline-1.exp | 0 .../lang/eval-okay-backslash-newline-1.nix | 0 .../lang/eval-okay-backslash-newline-2.exp | 0 .../lang/eval-okay-backslash-newline-2.nix | 0 .../lang/eval-okay-builtins-add.exp | 0 .../lang/eval-okay-builtins-add.nix | 0 .../lang/eval-okay-builtins.exp | 0 .../lang/eval-okay-builtins.nix | 0 .../lang/eval-okay-callable-attrs.exp | 0 .../lang/eval-okay-callable-attrs.nix | 0 .../lang/eval-okay-catattrs.exp | 0 .../lang/eval-okay-catattrs.nix | 0 .../lang/eval-okay-closure.exp | 0 .../lang/eval-okay-closure.exp.xml | 0 .../lang/eval-okay-closure.nix | 0 .../lang/eval-okay-comments.exp | 0 .../lang/eval-okay-comments.nix | 0 .../lang/eval-okay-concat.exp | 0 .../lang/eval-okay-concat.nix | 0 .../lang/eval-okay-concatmap.exp | 0 .../lang/eval-okay-concatmap.nix | 0 .../lang/eval-okay-concatstringssep.exp | 0 .../lang/eval-okay-concatstringssep.nix | 0 .../lang/eval-okay-context-introspection.exp | 0 .../lang/eval-okay-context-introspection.nix | 0 .../lang/eval-okay-context.exp | 0 .../lang/eval-okay-context.nix | 0 .../lang/eval-okay-curpos.exp | 0 .../lang/eval-okay-curpos.nix | 0 .../lang/eval-okay-deepseq.exp | 0 .../lang/eval-okay-deepseq.nix | 0 .../lang/eval-okay-delayed-with-inherit.exp | 0 .../lang/eval-okay-delayed-with-inherit.nix | 0 .../lang/eval-okay-delayed-with.exp | 0 .../lang/eval-okay-delayed-with.nix | 0 .../lang/eval-okay-dynamic-attrs-2.exp | 0 .../lang/eval-okay-dynamic-attrs-2.nix | 0 .../lang/eval-okay-dynamic-attrs-bare.exp | 0 .../lang/eval-okay-dynamic-attrs-bare.nix | 0 .../lang/eval-okay-dynamic-attrs.exp | 0 .../lang/eval-okay-dynamic-attrs.nix | 0 .../{ => functional}/lang/eval-okay-elem.exp | 0 .../{ => functional}/lang/eval-okay-elem.nix | 0 .../lang/eval-okay-empty-args.exp | 0 .../lang/eval-okay-empty-args.nix | 0 .../lang/eval-okay-eq-derivations.exp | 0 .../lang/eval-okay-eq-derivations.nix | 0 tests/{ => functional}/lang/eval-okay-eq.exp | 0 tests/{ => functional}/lang/eval-okay-eq.nix | 0 .../lang/eval-okay-filter.exp | 0 .../lang/eval-okay-filter.nix | 0 .../lang/eval-okay-flake-ref-to-string.exp | 0 .../lang/eval-okay-flake-ref-to-string.nix | 0 .../lang/eval-okay-flatten.exp | 0 .../lang/eval-okay-flatten.nix | 0 .../{ => functional}/lang/eval-okay-float.exp | 0 .../{ => functional}/lang/eval-okay-float.nix | 0 .../lang/eval-okay-floor-ceil.exp | 0 .../lang/eval-okay-floor-ceil.nix | 0 .../eval-okay-foldlStrict-lazy-elements.exp | 0 .../eval-okay-foldlStrict-lazy-elements.nix | 0 ...y-foldlStrict-lazy-initial-accumulator.exp | 0 ...y-foldlStrict-lazy-initial-accumulator.nix | 0 .../lang/eval-okay-foldlStrict.exp | 0 .../lang/eval-okay-foldlStrict.nix | 0 .../lang/eval-okay-fromTOML-timestamps.exp | 0 .../lang/eval-okay-fromTOML-timestamps.flags | 0 .../lang/eval-okay-fromTOML-timestamps.nix | 0 .../lang/eval-okay-fromTOML.exp | 0 .../lang/eval-okay-fromTOML.nix | 0 .../lang/eval-okay-fromjson-escapes.exp | 0 .../lang/eval-okay-fromjson-escapes.nix | 0 .../lang/eval-okay-fromjson.exp | 0 .../lang/eval-okay-fromjson.nix | 0 .../lang/eval-okay-functionargs.exp | 0 .../lang/eval-okay-functionargs.exp.xml | 0 .../lang/eval-okay-functionargs.nix | 0 .../eval-okay-getattrpos-functionargs.exp | 0 .../eval-okay-getattrpos-functionargs.nix | 0 .../lang/eval-okay-getattrpos-undefined.exp | 0 .../lang/eval-okay-getattrpos-undefined.nix | 0 .../lang/eval-okay-getattrpos.exp | 0 .../lang/eval-okay-getattrpos.nix | 0 .../lang/eval-okay-getenv.exp | 0 .../lang/eval-okay-getenv.nix | 0 .../lang/eval-okay-groupBy.exp | 0 .../lang/eval-okay-groupBy.nix | 0 .../{ => functional}/lang/eval-okay-hash.exp | 0 .../lang/eval-okay-hashfile.exp | 0 .../lang/eval-okay-hashfile.nix | 0 .../lang/eval-okay-hashstring.exp | 0 .../lang/eval-okay-hashstring.nix | 0 tests/{ => functional}/lang/eval-okay-if.exp | 0 tests/{ => functional}/lang/eval-okay-if.nix | 0 .../lang/eval-okay-import.exp | 0 .../lang/eval-okay-import.nix | 0 .../lang/eval-okay-ind-string.exp | 0 .../lang/eval-okay-ind-string.nix | 0 .../lang/eval-okay-intersectAttrs.exp | 0 .../lang/eval-okay-intersectAttrs.nix | 0 tests/{ => functional}/lang/eval-okay-let.exp | 0 tests/{ => functional}/lang/eval-okay-let.nix | 0 .../{ => functional}/lang/eval-okay-list.exp | 0 .../{ => functional}/lang/eval-okay-list.nix | 0 .../lang/eval-okay-listtoattrs.exp | 0 .../lang/eval-okay-listtoattrs.nix | 0 .../{ => functional}/lang/eval-okay-logic.exp | 0 .../{ => functional}/lang/eval-okay-logic.nix | 0 tests/{ => functional}/lang/eval-okay-map.exp | 0 tests/{ => functional}/lang/eval-okay-map.nix | 0 .../lang/eval-okay-mapattrs.exp | 0 .../lang/eval-okay-mapattrs.nix | 0 .../lang/eval-okay-merge-dynamic-attrs.exp | 0 .../lang/eval-okay-merge-dynamic-attrs.nix | 0 .../lang/eval-okay-nested-with.exp | 0 .../lang/eval-okay-nested-with.nix | 0 .../lang/eval-okay-new-let.exp | 0 .../lang/eval-okay-new-let.nix | 0 .../lang/eval-okay-null-dynamic-attrs.exp | 0 .../lang/eval-okay-null-dynamic-attrs.nix | 0 .../lang/eval-okay-overrides.exp | 0 .../lang/eval-okay-overrides.nix | 0 .../lang/eval-okay-parse-flake-ref.exp | 0 .../lang/eval-okay-parse-flake-ref.nix | 0 .../lang/eval-okay-partition.exp | 0 .../lang/eval-okay-partition.nix | 0 .../eval-okay-path-string-interpolation.exp | 0 .../eval-okay-path-string-interpolation.nix | 0 .../{ => functional}/lang/eval-okay-path.exp | 0 .../{ => functional}/lang/eval-okay-path.nix | 0 .../lang/eval-okay-pathexists.exp | 0 .../lang/eval-okay-pathexists.nix | 0 .../lang/eval-okay-patterns.exp | 0 .../lang/eval-okay-patterns.nix | 0 .../lang/eval-okay-print.err.exp | 0 .../{ => functional}/lang/eval-okay-print.exp | 0 .../{ => functional}/lang/eval-okay-print.nix | 0 .../lang/eval-okay-readDir.exp | 0 .../lang/eval-okay-readDir.nix | 0 .../lang/eval-okay-readFileType.exp | 0 .../lang/eval-okay-readFileType.nix | 0 .../lang/eval-okay-readfile.exp | 0 .../lang/eval-okay-readfile.nix | 0 .../lang/eval-okay-redefine-builtin.exp | 0 .../lang/eval-okay-redefine-builtin.nix | 0 .../lang/eval-okay-regex-match.exp | 0 .../lang/eval-okay-regex-match.nix | 0 .../lang/eval-okay-regex-split.exp | 0 .../lang/eval-okay-regex-split.nix | 0 .../lang/eval-okay-regression-20220122.exp | 0 .../lang/eval-okay-regression-20220122.nix | 0 .../lang/eval-okay-regression-20220125.exp | 0 .../lang/eval-okay-regression-20220125.nix | 0 .../lang/eval-okay-remove.exp | 0 .../lang/eval-okay-remove.nix | 0 .../lang/eval-okay-replacestrings.exp | 0 .../lang/eval-okay-replacestrings.nix | 0 .../lang/eval-okay-scope-1.exp | 0 .../lang/eval-okay-scope-1.nix | 0 .../lang/eval-okay-scope-2.exp | 0 .../lang/eval-okay-scope-2.nix | 0 .../lang/eval-okay-scope-3.exp | 0 .../lang/eval-okay-scope-3.nix | 0 .../lang/eval-okay-scope-4.exp | 0 .../lang/eval-okay-scope-4.nix | 0 .../lang/eval-okay-scope-6.exp | 0 .../lang/eval-okay-scope-6.nix | 0 .../lang/eval-okay-scope-7.exp | 0 .../lang/eval-okay-scope-7.nix | 0 .../lang/eval-okay-search-path.exp | 0 .../lang/eval-okay-search-path.flags | 0 .../lang/eval-okay-search-path.nix | 0 tests/{ => functional}/lang/eval-okay-seq.exp | 0 tests/{ => functional}/lang/eval-okay-seq.nix | 0 .../{ => functional}/lang/eval-okay-sort.exp | 0 .../{ => functional}/lang/eval-okay-sort.nix | 0 .../lang/eval-okay-splitversion.exp | 0 .../lang/eval-okay-splitversion.nix | 0 .../lang/eval-okay-string.exp | 0 .../lang/eval-okay-string.nix | 0 .../lang/eval-okay-strings-as-attrs-names.exp | 0 .../lang/eval-okay-strings-as-attrs-names.nix | 0 .../lang/eval-okay-substring.exp | 0 .../lang/eval-okay-substring.nix | 0 .../lang/eval-okay-tail-call-1.exp-disabled | 0 .../lang/eval-okay-tail-call-1.nix | 0 .../lang/eval-okay-tojson.exp | 0 .../lang/eval-okay-tojson.nix | 0 .../{ => functional}/lang/eval-okay-toxml.exp | 0 .../{ => functional}/lang/eval-okay-toxml.nix | 0 .../lang/eval-okay-toxml2.exp | 0 .../lang/eval-okay-toxml2.nix | 0 .../lang/eval-okay-tryeval.exp | 0 .../lang/eval-okay-tryeval.nix | 0 .../{ => functional}/lang/eval-okay-types.exp | 0 .../{ => functional}/lang/eval-okay-types.nix | 0 .../lang/eval-okay-versions.exp | 0 .../lang/eval-okay-versions.nix | 0 .../{ => functional}/lang/eval-okay-with.exp | 0 .../{ => functional}/lang/eval-okay-with.nix | 0 .../lang/eval-okay-xml.exp.xml | 0 tests/{ => functional}/lang/eval-okay-xml.nix | 0 .../lang/eval-okay-zipAttrsWith.exp | 0 .../lang/eval-okay-zipAttrsWith.nix | 0 tests/{ => functional}/lang/framework.sh | 0 tests/{ => functional}/lang/imported.nix | 0 tests/{ => functional}/lang/imported2.nix | 0 tests/{ => functional}/lang/lib.nix | 0 .../lang/parse-fail-dup-attrs-1.err.exp | 0 .../lang/parse-fail-dup-attrs-1.nix | 0 .../lang/parse-fail-dup-attrs-2.err.exp | 0 .../lang/parse-fail-dup-attrs-2.nix | 0 .../lang/parse-fail-dup-attrs-3.err.exp | 0 .../lang/parse-fail-dup-attrs-3.nix | 0 .../lang/parse-fail-dup-attrs-4.err.exp | 0 .../lang/parse-fail-dup-attrs-4.nix | 0 .../lang/parse-fail-dup-attrs-6.err.exp | 0 .../lang/parse-fail-dup-attrs-7.err.exp | 0 .../lang/parse-fail-dup-attrs-7.nix | 0 .../lang/parse-fail-dup-formals.err.exp | 0 .../lang/parse-fail-dup-formals.nix | 0 .../lang/parse-fail-eof-in-string.err.exp | 0 .../lang/parse-fail-eof-in-string.nix | 0 .../parse-fail-mixed-nested-attrs1.err.exp | 0 .../lang/parse-fail-mixed-nested-attrs1.nix | 0 .../parse-fail-mixed-nested-attrs2.err.exp | 0 .../lang/parse-fail-mixed-nested-attrs2.nix | 0 .../lang/parse-fail-patterns-1.err.exp | 0 .../lang/parse-fail-patterns-1.nix | 0 .../parse-fail-regression-20060610.err.exp | 0 .../lang/parse-fail-regression-20060610.nix | 0 .../lang/parse-fail-undef-var-2.err.exp | 0 .../lang/parse-fail-undef-var-2.nix | 0 .../lang/parse-fail-undef-var.err.exp | 0 .../lang/parse-fail-undef-var.nix | 0 .../lang/parse-fail-utf8.err.exp | 0 .../{ => functional}/lang/parse-fail-utf8.nix | 0 tests/{ => functional}/lang/parse-okay-1.exp | 0 tests/{ => functional}/lang/parse-okay-1.nix | 0 .../{ => functional}/lang/parse-okay-crlf.exp | 0 .../{ => functional}/lang/parse-okay-crlf.nix | 0 .../lang/parse-okay-dup-attrs-5.exp | 0 .../lang/parse-okay-dup-attrs-5.nix | 0 .../lang/parse-okay-dup-attrs-6.exp | 0 .../lang/parse-okay-dup-attrs-6.nix | 0 .../lang/parse-okay-mixed-nested-attrs-1.exp | 0 .../lang/parse-okay-mixed-nested-attrs-1.nix | 0 .../lang/parse-okay-mixed-nested-attrs-2.exp | 0 .../lang/parse-okay-mixed-nested-attrs-2.nix | 0 .../lang/parse-okay-mixed-nested-attrs-3.exp | 0 .../lang/parse-okay-mixed-nested-attrs-3.nix | 0 .../lang/parse-okay-regression-20041027.exp | 0 .../lang/parse-okay-regression-20041027.nix | 0 .../lang/parse-okay-regression-751.exp | 0 .../lang/parse-okay-regression-751.nix | 0 .../lang/parse-okay-subversion.exp | 0 .../lang/parse-okay-subversion.nix | 0 .../{ => functional}/lang/parse-okay-url.exp | 0 .../{ => functional}/lang/parse-okay-url.nix | 0 tests/{ => functional}/lang/readDir/bar | 0 .../lang/readDir/foo/git-hates-directories | 0 tests/{ => functional}/lang/readDir/ldir | 0 tests/{ => functional}/lang/readDir/linked | 0 tests/{ => functional}/legacy-ssh-store.sh | 0 .../linux-sandbox-cert-test.nix | 0 tests/{ => functional}/linux-sandbox.sh | 0 tests/{ => functional}/local-store.sh | 0 tests/{ => functional}/local.mk | 22 ++++---- tests/{ => functional}/logging.sh | 0 tests/{ => functional}/misc.sh | 0 tests/{ => functional}/multiple-outputs.nix | 0 tests/{ => functional}/multiple-outputs.sh | 0 tests/{ => functional}/nar-access.nix | 0 tests/{ => functional}/nar-access.sh | 0 tests/{ => functional}/nested-sandboxing.sh | 2 +- .../nested-sandboxing/command.sh | 0 .../nested-sandboxing/runner.nix | 0 tests/{ => functional}/nix-build-examples.nix | 0 tests/{ => functional}/nix-build.sh | 0 tests/{ => functional}/nix-channel.sh | 0 .../{ => functional}/nix-collect-garbage-d.sh | 0 tests/{ => functional}/nix-copy-ssh-ng.sh | 0 tests/{ => functional}/nix-copy-ssh.sh | 0 .../{ => functional}/nix-daemon-untrusting.sh | 0 tests/{ => functional}/nix-profile.sh | 0 tests/{ => functional}/nix-shell.sh | 0 tests/{ => functional}/nix_path.sh | 0 tests/{ => functional}/optimise-store.sh | 0 .../{ => functional}/output-normalization.sh | 0 tests/{ => functional}/parallel.builder.sh | 0 tests/{ => functional}/parallel.nix | 0 tests/{ => functional}/parallel.sh | 0 tests/{ => functional}/pass-as-file.sh | 0 tests/{ => functional}/path-from-hash-part.sh | 0 tests/{ => functional}/path.nix | 0 tests/{ => functional}/placeholders.sh | 0 tests/{ => functional}/plugins.sh | 0 tests/{ => functional}/plugins/local.mk | 0 tests/{ => functional}/plugins/plugintest.cc | 0 tests/{ => functional}/post-hook.sh | 0 tests/{ => functional}/pure-eval.nix | 0 tests/{ => functional}/pure-eval.sh | 0 tests/{ => functional}/push-to-store-old.sh | 0 tests/{ => functional}/push-to-store.sh | 0 tests/{ => functional}/read-only-store.sh | 0 tests/{ => functional}/readfile-context.nix | 0 tests/{ => functional}/readfile-context.sh | 0 tests/{ => functional}/recursive.nix | 0 tests/{ => functional}/recursive.sh | 0 tests/{ => functional}/referrers.sh | 0 tests/{ => functional}/remote-store.sh | 0 tests/{ => functional}/repair.sh | 0 tests/{ => functional}/repl.sh | 0 tests/{ => functional}/restricted.nix | 0 tests/{ => functional}/restricted.sh | 6 +- tests/{ => functional}/search.nix | 0 tests/{ => functional}/search.sh | 0 tests/{ => functional}/secure-drv-outputs.nix | 0 tests/{ => functional}/secure-drv-outputs.sh | 0 tests/{ => functional}/selfref-gc.sh | 0 tests/{ => functional}/shell-hello.nix | 0 tests/{ => functional}/shell.nix | 0 tests/{ => functional}/shell.sh | 0 tests/{ => functional}/shell.shebang.rb | 0 tests/{ => functional}/shell.shebang.sh | 0 tests/{ => functional}/signing.sh | 0 tests/{ => functional}/simple-failing.nix | 0 tests/{ => functional}/simple.builder.sh | 0 tests/{ => functional}/simple.nix | 0 tests/{ => functional}/simple.sh | 0 tests/{ => functional}/ssh-relay.sh | 0 tests/{ => functional}/store-ping.sh | 0 .../structured-attrs-shell.nix | 0 tests/{ => functional}/structured-attrs.nix | 0 tests/{ => functional}/structured-attrs.sh | 0 .../substitute-with-invalid-ca.sh | 0 tests/{ => functional}/suggestions.sh | 0 .../{ => functional}/supplementary-groups.sh | 0 tests/{ => functional}/tarball.sh | 0 tests/{ => functional}/test-infra.sh | 0 .../{ => functional}/test-libstoreconsumer.sh | 0 .../test-libstoreconsumer/README.md | 0 .../test-libstoreconsumer/local.mk | 0 .../test-libstoreconsumer/main.cc | 0 tests/{ => functional}/timeout.nix | 0 tests/{ => functional}/timeout.sh | 0 tests/{ => functional}/toString-path.sh | 0 tests/{ => functional}/undefined-variable.nix | 0 tests/{ => functional}/user-envs-migration.sh | 0 tests/{ => functional}/user-envs.builder.sh | 0 tests/{ => functional}/user-envs.nix | 0 tests/{ => functional}/user-envs.sh | 0 tests/{ => functional}/why-depends.sh | 0 tests/{ => functional}/zstd.sh | 0 598 files changed, 93 insertions(+), 93 deletions(-) rename tests/{ => functional}/add.sh (100%) rename tests/{ => functional}/bad.tar.xz (100%) rename tests/{ => functional}/bash-profile.sh (78%) rename tests/{ => functional}/big-derivation-attr.nix (100%) rename tests/{ => functional}/binary-cache-build-remote.sh (100%) rename tests/{ => functional}/binary-cache.sh (100%) rename tests/{ => functional}/brotli.sh (100%) rename tests/{ => functional}/build-delete.sh (100%) rename tests/{ => functional}/build-dry.sh (100%) rename tests/{ => functional}/build-hook-ca-fixed.nix (100%) rename tests/{ => functional}/build-hook-ca-floating.nix (100%) rename tests/{ => functional}/build-hook.nix (100%) rename tests/{ => functional}/build-remote-content-addressed-fixed.sh (100%) rename tests/{ => functional}/build-remote-content-addressed-floating.sh (100%) rename tests/{ => functional}/build-remote-input-addressed.sh (100%) rename tests/{ => functional}/build-remote-trustless-after.sh (100%) rename tests/{ => functional}/build-remote-trustless-should-fail-0.sh (100%) rename tests/{ => functional}/build-remote-trustless-should-pass-0.sh (100%) rename tests/{ => functional}/build-remote-trustless-should-pass-1.sh (100%) rename tests/{ => functional}/build-remote-trustless-should-pass-2.sh (100%) rename tests/{ => functional}/build-remote-trustless-should-pass-3.sh (100%) rename tests/{ => functional}/build-remote-trustless.sh (82%) rename tests/{ => functional}/build-remote.sh (100%) rename tests/{ => functional}/build.sh (100%) rename tests/{ => functional}/ca-shell.nix (100%) rename tests/{ => functional}/ca/build-cache.sh (100%) rename tests/{ => functional}/ca/build-dry.sh (100%) rename tests/{ => functional}/ca/build-with-garbage-path.sh (100%) rename tests/{ => functional}/ca/build.sh (100%) rename tests/{ => functional}/ca/common.sh (100%) rename tests/{ => functional}/ca/concurrent-builds.sh (100%) rename tests/{ => functional}/ca/config.nix.in (100%) rename tests/{ => functional}/ca/content-addressed.nix (100%) rename tests/{ => functional}/ca/derivation-json.sh (100%) rename tests/{ => functional}/ca/duplicate-realisation-in-closure.sh (100%) rename tests/{ => functional}/ca/flake.nix (100%) rename tests/{ => functional}/ca/gc.sh (100%) rename tests/{ => functional}/ca/import-derivation.sh (100%) rename tests/{ => functional}/ca/local.mk (94%) rename tests/{ => functional}/ca/new-build-cmd.sh (100%) rename tests/{ => functional}/ca/nix-copy.sh (100%) rename tests/{ => functional}/ca/nix-run.sh (100%) rename tests/{ => functional}/ca/nix-shell.sh (100%) rename tests/{ => functional}/ca/nondeterministic.nix (100%) rename tests/{ => functional}/ca/post-hook.sh (100%) rename tests/{ => functional}/ca/racy.nix (100%) rename tests/{ => functional}/ca/recursive.sh (100%) rename tests/{ => functional}/ca/repl.sh (100%) rename tests/{ => functional}/ca/selfref-gc.sh (100%) rename tests/{ => functional}/ca/signatures.sh (100%) rename tests/{ => functional}/ca/substitute.sh (100%) rename tests/{ => functional}/ca/why-depends.sh (100%) rename tests/{ => functional}/case-hack.sh (100%) rename tests/{ => functional}/case.nar (100%) rename tests/{ => functional}/check-refs.nix (100%) rename tests/{ => functional}/check-refs.sh (100%) rename tests/{ => functional}/check-reqs.nix (100%) rename tests/{ => functional}/check-reqs.sh (100%) rename tests/{ => functional}/check.nix (100%) rename tests/{ => functional}/check.sh (100%) rename tests/{ => functional}/common.sh (100%) rename tests/{ => functional}/common/vars-and-functions.sh.in (99%) rename tests/{ => functional}/completions.sh (100%) rename tests/{ => functional}/compression-levels.sh (100%) rename tests/{ => functional}/compute-levels.sh (100%) rename tests/{ => functional}/config.nix.in (100%) rename tests/{ => functional}/config.sh (100%) rename tests/{ => functional}/config/nix-with-substituters.conf (100%) rename tests/{ => functional}/db-migration.sh (100%) rename tests/{ => functional}/dependencies.builder0.sh (100%) rename tests/{ => functional}/dependencies.nix (100%) rename tests/{ => functional}/dependencies.sh (100%) rename tests/{ => functional}/derivation-json.sh (100%) rename tests/{ => functional}/dummy (100%) rename tests/{ => functional}/dump-db.sh (100%) rename tests/{ => functional}/dyn-drv/build-built-drv.sh (100%) rename tests/{ => functional}/dyn-drv/common.sh (100%) rename tests/{ => functional}/dyn-drv/config.nix.in (100%) rename tests/{ => functional}/dyn-drv/dep-built-drv.sh (100%) rename tests/{ => functional}/dyn-drv/eval-outputOf.sh (100%) rename tests/{ => functional}/dyn-drv/local.mk (87%) rename tests/{ => functional}/dyn-drv/old-daemon-error-hack.nix (100%) rename tests/{ => functional}/dyn-drv/old-daemon-error-hack.sh (100%) rename tests/{ => functional}/dyn-drv/recursive-mod-json.nix (100%) rename tests/{ => functional}/dyn-drv/recursive-mod-json.sh (100%) rename tests/{ => functional}/dyn-drv/text-hashed-output.nix (100%) rename tests/{ => functional}/dyn-drv/text-hashed-output.sh (100%) rename tests/{ => functional}/eval-store.sh (100%) rename tests/{ => functional}/eval.nix (100%) rename tests/{ => functional}/eval.sh (100%) rename tests/{ => functional}/experimental-features.sh (100%) rename tests/{ => functional}/export-graph.nix (100%) rename tests/{ => functional}/export-graph.sh (100%) rename tests/{ => functional}/export.sh (100%) rename tests/{ => functional}/failing.nix (100%) rename tests/{ => functional}/fetchClosure.sh (100%) rename tests/{ => functional}/fetchGit.sh (100%) rename tests/{ => functional}/fetchGitRefs.sh (100%) rename tests/{ => functional}/fetchGitSubmodules.sh (100%) rename tests/{ => functional}/fetchMercurial.sh (100%) rename tests/{ => functional}/fetchPath.sh (100%) rename tests/{ => functional}/fetchTree-file.sh (100%) rename tests/{ => functional}/fetchurl.sh (100%) rename tests/{ => functional}/filter-source.nix (100%) rename tests/{ => functional}/filter-source.sh (100%) rename tests/{ => functional}/fixed.builder1.sh (100%) rename tests/{ => functional}/fixed.builder2.sh (100%) rename tests/{ => functional}/fixed.nix (100%) rename tests/{ => functional}/fixed.sh (100%) rename tests/{ => functional}/flakes/absolute-paths.sh (100%) rename tests/{ => functional}/flakes/build-paths.sh (100%) rename tests/{ => functional}/flakes/bundle.sh (100%) rename tests/{ => functional}/flakes/check.sh (100%) rename tests/{ => functional}/flakes/circular.sh (100%) rename tests/{ => functional}/flakes/common.sh (100%) rename tests/{ => functional}/flakes/config.sh (100%) rename tests/{ => functional}/flakes/flake-in-submodule.sh (100%) rename tests/{ => functional}/flakes/flakes.sh (100%) rename tests/{ => functional}/flakes/follow-paths.sh (100%) rename tests/{ => functional}/flakes/init.sh (100%) rename tests/{ => functional}/flakes/inputs.sh (100%) rename tests/{ => functional}/flakes/mercurial.sh (100%) rename tests/{ => functional}/flakes/run.sh (100%) rename tests/{ => functional}/flakes/search-root.sh (100%) rename tests/{ => functional}/flakes/show.sh (100%) rename tests/{ => functional}/flakes/unlocked-override.sh (100%) rename tests/{ => functional}/fmt.sh (100%) rename tests/{ => functional}/fmt.simple.sh (100%) rename tests/{ => functional}/function-trace.sh (100%) rename tests/{ => functional}/gc-auto.sh (100%) rename tests/{ => functional}/gc-concurrent.builder.sh (100%) rename tests/{ => functional}/gc-concurrent.nix (100%) rename tests/{ => functional}/gc-concurrent.sh (100%) rename tests/{ => functional}/gc-concurrent2.builder.sh (100%) rename tests/{ => functional}/gc-non-blocking.sh (100%) rename tests/{ => functional}/gc-runtime.nix (100%) rename tests/{ => functional}/gc-runtime.sh (100%) rename tests/{ => functional}/gc.sh (100%) rename tests/{ => functional}/hash-check.nix (100%) rename tests/{ => functional}/hash.sh (100%) rename tests/{ => functional}/hermetic.nix (100%) rename tests/{ => functional}/import-derivation.nix (100%) rename tests/{ => functional}/import-derivation.sh (100%) rename tests/{ => functional}/impure-derivations.nix (100%) rename tests/{ => functional}/impure-derivations.sh (100%) rename tests/{ => functional}/init.sh (100%) rename tests/{ => functional}/install-darwin.sh (100%) rename tests/{ => functional}/lang-test-infra.sh (100%) rename tests/{ => functional}/lang.sh (98%) rename tests/{ => functional}/lang/binary-data (100%) rename tests/{ => functional}/lang/data (100%) rename tests/{ => functional}/lang/dir1/a.nix (100%) rename tests/{ => functional}/lang/dir2/a.nix (100%) rename tests/{ => functional}/lang/dir2/b.nix (100%) rename tests/{ => functional}/lang/dir3/a.nix (100%) rename tests/{ => functional}/lang/dir3/b.nix (100%) rename tests/{ => functional}/lang/dir3/c.nix (100%) rename tests/{ => functional}/lang/dir4/a.nix (100%) rename tests/{ => functional}/lang/dir4/c.nix (100%) rename tests/{ => functional}/lang/empty.exp (100%) rename tests/{ => functional}/lang/eval-fail-abort.err.exp (100%) rename tests/{ => functional}/lang/eval-fail-abort.nix (100%) rename tests/{ => functional}/lang/eval-fail-antiquoted-path.err.exp (100%) rename tests/{ => functional}/lang/eval-fail-assert.err.exp (100%) rename tests/{ => functional}/lang/eval-fail-assert.nix (100%) rename tests/{ => functional}/lang/eval-fail-bad-antiquote-1.err.exp (100%) rename tests/{ => functional}/lang/eval-fail-bad-antiquote-2.err.exp (100%) rename tests/{ => functional}/lang/eval-fail-bad-antiquote-3.err.exp (100%) rename tests/{ => functional}/lang/eval-fail-bad-string-interpolation-1.err.exp (100%) rename tests/{ => functional}/lang/eval-fail-bad-string-interpolation-1.nix (100%) rename tests/{ => functional}/lang/eval-fail-bad-string-interpolation-2.err.exp (100%) rename tests/{ => functional}/lang/eval-fail-bad-string-interpolation-2.nix (100%) rename tests/{ => functional}/lang/eval-fail-bad-string-interpolation-3.err.exp (100%) rename tests/{ => functional}/lang/eval-fail-bad-string-interpolation-3.nix (100%) rename tests/{ => functional}/lang/eval-fail-blackhole.err.exp (100%) rename tests/{ => functional}/lang/eval-fail-blackhole.nix (100%) rename tests/{ => functional}/lang/eval-fail-deepseq.err.exp (100%) rename tests/{ => functional}/lang/eval-fail-deepseq.nix (100%) rename tests/{ => functional}/lang/eval-fail-dup-dynamic-attrs.err.exp (100%) rename tests/{ => functional}/lang/eval-fail-dup-dynamic-attrs.nix (100%) rename tests/{ => functional}/lang/eval-fail-foldlStrict-strict-op-application.err.exp (100%) rename tests/{ => functional}/lang/eval-fail-foldlStrict-strict-op-application.nix (100%) rename tests/{ => functional}/lang/eval-fail-fromTOML-timestamps.err.exp (100%) rename tests/{ => functional}/lang/eval-fail-fromTOML-timestamps.nix (100%) rename tests/{ => functional}/lang/eval-fail-hashfile-missing.err.exp (100%) rename tests/{ => functional}/lang/eval-fail-hashfile-missing.nix (100%) rename tests/{ => functional}/lang/eval-fail-list.err.exp (100%) rename tests/{ => functional}/lang/eval-fail-list.nix (100%) rename tests/{ => functional}/lang/eval-fail-missing-arg.err.exp (100%) rename tests/{ => functional}/lang/eval-fail-missing-arg.nix (100%) rename tests/{ => functional}/lang/eval-fail-nonexist-path.err.exp (100%) rename tests/{ => functional}/lang/eval-fail-nonexist-path.nix (100%) rename tests/{ => functional}/lang/eval-fail-path-slash.err.exp (100%) rename tests/{ => functional}/lang/eval-fail-path-slash.nix (100%) rename tests/{ => functional}/lang/eval-fail-recursion.err.exp (100%) rename tests/{ => functional}/lang/eval-fail-recursion.nix (100%) rename tests/{ => functional}/lang/eval-fail-remove.err.exp (100%) rename tests/{ => functional}/lang/eval-fail-remove.nix (100%) rename tests/{ => functional}/lang/eval-fail-scope-5.err.exp (100%) rename tests/{ => functional}/lang/eval-fail-scope-5.nix (100%) rename tests/{ => functional}/lang/eval-fail-seq.err.exp (100%) rename tests/{ => functional}/lang/eval-fail-seq.nix (100%) rename tests/{ => functional}/lang/eval-fail-set-override.err.exp (100%) rename tests/{ => functional}/lang/eval-fail-set-override.nix (100%) rename tests/{ => functional}/lang/eval-fail-set.err.exp (100%) rename tests/{ => functional}/lang/eval-fail-set.nix (100%) rename tests/{ => functional}/lang/eval-fail-substring.err.exp (100%) rename tests/{ => functional}/lang/eval-fail-substring.nix (100%) rename tests/{ => functional}/lang/eval-fail-to-path.err.exp (100%) rename tests/{ => functional}/lang/eval-fail-to-path.nix (100%) rename tests/{ => functional}/lang/eval-fail-toJSON.err.exp (100%) rename tests/{ => functional}/lang/eval-fail-toJSON.nix (100%) rename tests/{ => functional}/lang/eval-fail-undeclared-arg.err.exp (100%) rename tests/{ => functional}/lang/eval-fail-undeclared-arg.nix (100%) rename tests/{ => functional}/lang/eval-okay-any-all.exp (100%) rename tests/{ => functional}/lang/eval-okay-any-all.nix (100%) rename tests/{ => functional}/lang/eval-okay-arithmetic.exp (100%) rename tests/{ => functional}/lang/eval-okay-arithmetic.nix (100%) rename tests/{ => functional}/lang/eval-okay-attrnames.exp (100%) rename tests/{ => functional}/lang/eval-okay-attrnames.nix (100%) rename tests/{ => functional}/lang/eval-okay-attrs.exp (100%) rename tests/{ => functional}/lang/eval-okay-attrs.nix (100%) rename tests/{ => functional}/lang/eval-okay-attrs2.exp (100%) rename tests/{ => functional}/lang/eval-okay-attrs2.nix (100%) rename tests/{ => functional}/lang/eval-okay-attrs3.exp (100%) rename tests/{ => functional}/lang/eval-okay-attrs3.nix (100%) rename tests/{ => functional}/lang/eval-okay-attrs4.exp (100%) rename tests/{ => functional}/lang/eval-okay-attrs4.nix (100%) rename tests/{ => functional}/lang/eval-okay-attrs5.exp (100%) rename tests/{ => functional}/lang/eval-okay-attrs5.nix (100%) rename tests/{ => functional}/lang/eval-okay-attrs6.exp (100%) rename tests/{ => functional}/lang/eval-okay-attrs6.nix (100%) rename tests/{ => functional}/lang/eval-okay-autoargs.exp (100%) rename tests/{ => functional}/lang/eval-okay-autoargs.flags (100%) rename tests/{ => functional}/lang/eval-okay-autoargs.nix (100%) rename tests/{ => functional}/lang/eval-okay-backslash-newline-1.exp (100%) rename tests/{ => functional}/lang/eval-okay-backslash-newline-1.nix (100%) rename tests/{ => functional}/lang/eval-okay-backslash-newline-2.exp (100%) rename tests/{ => functional}/lang/eval-okay-backslash-newline-2.nix (100%) rename tests/{ => functional}/lang/eval-okay-builtins-add.exp (100%) rename tests/{ => functional}/lang/eval-okay-builtins-add.nix (100%) rename tests/{ => functional}/lang/eval-okay-builtins.exp (100%) rename tests/{ => functional}/lang/eval-okay-builtins.nix (100%) rename tests/{ => functional}/lang/eval-okay-callable-attrs.exp (100%) rename tests/{ => functional}/lang/eval-okay-callable-attrs.nix (100%) rename tests/{ => functional}/lang/eval-okay-catattrs.exp (100%) rename tests/{ => functional}/lang/eval-okay-catattrs.nix (100%) rename tests/{ => functional}/lang/eval-okay-closure.exp (100%) rename tests/{ => functional}/lang/eval-okay-closure.exp.xml (100%) rename tests/{ => functional}/lang/eval-okay-closure.nix (100%) rename tests/{ => functional}/lang/eval-okay-comments.exp (100%) rename tests/{ => functional}/lang/eval-okay-comments.nix (100%) rename tests/{ => functional}/lang/eval-okay-concat.exp (100%) rename tests/{ => functional}/lang/eval-okay-concat.nix (100%) rename tests/{ => functional}/lang/eval-okay-concatmap.exp (100%) rename tests/{ => functional}/lang/eval-okay-concatmap.nix (100%) rename tests/{ => functional}/lang/eval-okay-concatstringssep.exp (100%) rename tests/{ => functional}/lang/eval-okay-concatstringssep.nix (100%) rename tests/{ => functional}/lang/eval-okay-context-introspection.exp (100%) rename tests/{ => functional}/lang/eval-okay-context-introspection.nix (100%) rename tests/{ => functional}/lang/eval-okay-context.exp (100%) rename tests/{ => functional}/lang/eval-okay-context.nix (100%) rename tests/{ => functional}/lang/eval-okay-curpos.exp (100%) rename tests/{ => functional}/lang/eval-okay-curpos.nix (100%) rename tests/{ => functional}/lang/eval-okay-deepseq.exp (100%) rename tests/{ => functional}/lang/eval-okay-deepseq.nix (100%) rename tests/{ => functional}/lang/eval-okay-delayed-with-inherit.exp (100%) rename tests/{ => functional}/lang/eval-okay-delayed-with-inherit.nix (100%) rename tests/{ => functional}/lang/eval-okay-delayed-with.exp (100%) rename tests/{ => functional}/lang/eval-okay-delayed-with.nix (100%) rename tests/{ => functional}/lang/eval-okay-dynamic-attrs-2.exp (100%) rename tests/{ => functional}/lang/eval-okay-dynamic-attrs-2.nix (100%) rename tests/{ => functional}/lang/eval-okay-dynamic-attrs-bare.exp (100%) rename tests/{ => functional}/lang/eval-okay-dynamic-attrs-bare.nix (100%) rename tests/{ => functional}/lang/eval-okay-dynamic-attrs.exp (100%) rename tests/{ => functional}/lang/eval-okay-dynamic-attrs.nix (100%) rename tests/{ => functional}/lang/eval-okay-elem.exp (100%) rename tests/{ => functional}/lang/eval-okay-elem.nix (100%) rename tests/{ => functional}/lang/eval-okay-empty-args.exp (100%) rename tests/{ => functional}/lang/eval-okay-empty-args.nix (100%) rename tests/{ => functional}/lang/eval-okay-eq-derivations.exp (100%) rename tests/{ => functional}/lang/eval-okay-eq-derivations.nix (100%) rename tests/{ => functional}/lang/eval-okay-eq.exp (100%) rename tests/{ => functional}/lang/eval-okay-eq.nix (100%) rename tests/{ => functional}/lang/eval-okay-filter.exp (100%) rename tests/{ => functional}/lang/eval-okay-filter.nix (100%) rename tests/{ => functional}/lang/eval-okay-flake-ref-to-string.exp (100%) rename tests/{ => functional}/lang/eval-okay-flake-ref-to-string.nix (100%) rename tests/{ => functional}/lang/eval-okay-flatten.exp (100%) rename tests/{ => functional}/lang/eval-okay-flatten.nix (100%) rename tests/{ => functional}/lang/eval-okay-float.exp (100%) rename tests/{ => functional}/lang/eval-okay-float.nix (100%) rename tests/{ => functional}/lang/eval-okay-floor-ceil.exp (100%) rename tests/{ => functional}/lang/eval-okay-floor-ceil.nix (100%) rename tests/{ => functional}/lang/eval-okay-foldlStrict-lazy-elements.exp (100%) rename tests/{ => functional}/lang/eval-okay-foldlStrict-lazy-elements.nix (100%) rename tests/{ => functional}/lang/eval-okay-foldlStrict-lazy-initial-accumulator.exp (100%) rename tests/{ => functional}/lang/eval-okay-foldlStrict-lazy-initial-accumulator.nix (100%) rename tests/{ => functional}/lang/eval-okay-foldlStrict.exp (100%) rename tests/{ => functional}/lang/eval-okay-foldlStrict.nix (100%) rename tests/{ => functional}/lang/eval-okay-fromTOML-timestamps.exp (100%) rename tests/{ => functional}/lang/eval-okay-fromTOML-timestamps.flags (100%) rename tests/{ => functional}/lang/eval-okay-fromTOML-timestamps.nix (100%) rename tests/{ => functional}/lang/eval-okay-fromTOML.exp (100%) rename tests/{ => functional}/lang/eval-okay-fromTOML.nix (100%) rename tests/{ => functional}/lang/eval-okay-fromjson-escapes.exp (100%) rename tests/{ => functional}/lang/eval-okay-fromjson-escapes.nix (100%) rename tests/{ => functional}/lang/eval-okay-fromjson.exp (100%) rename tests/{ => functional}/lang/eval-okay-fromjson.nix (100%) rename tests/{ => functional}/lang/eval-okay-functionargs.exp (100%) rename tests/{ => functional}/lang/eval-okay-functionargs.exp.xml (100%) rename tests/{ => functional}/lang/eval-okay-functionargs.nix (100%) rename tests/{ => functional}/lang/eval-okay-getattrpos-functionargs.exp (100%) rename tests/{ => functional}/lang/eval-okay-getattrpos-functionargs.nix (100%) rename tests/{ => functional}/lang/eval-okay-getattrpos-undefined.exp (100%) rename tests/{ => functional}/lang/eval-okay-getattrpos-undefined.nix (100%) rename tests/{ => functional}/lang/eval-okay-getattrpos.exp (100%) rename tests/{ => functional}/lang/eval-okay-getattrpos.nix (100%) rename tests/{ => functional}/lang/eval-okay-getenv.exp (100%) rename tests/{ => functional}/lang/eval-okay-getenv.nix (100%) rename tests/{ => functional}/lang/eval-okay-groupBy.exp (100%) rename tests/{ => functional}/lang/eval-okay-groupBy.nix (100%) rename tests/{ => functional}/lang/eval-okay-hash.exp (100%) rename tests/{ => functional}/lang/eval-okay-hashfile.exp (100%) rename tests/{ => functional}/lang/eval-okay-hashfile.nix (100%) rename tests/{ => functional}/lang/eval-okay-hashstring.exp (100%) rename tests/{ => functional}/lang/eval-okay-hashstring.nix (100%) rename tests/{ => functional}/lang/eval-okay-if.exp (100%) rename tests/{ => functional}/lang/eval-okay-if.nix (100%) rename tests/{ => functional}/lang/eval-okay-import.exp (100%) rename tests/{ => functional}/lang/eval-okay-import.nix (100%) rename tests/{ => functional}/lang/eval-okay-ind-string.exp (100%) rename tests/{ => functional}/lang/eval-okay-ind-string.nix (100%) rename tests/{ => functional}/lang/eval-okay-intersectAttrs.exp (100%) rename tests/{ => functional}/lang/eval-okay-intersectAttrs.nix (100%) rename tests/{ => functional}/lang/eval-okay-let.exp (100%) rename tests/{ => functional}/lang/eval-okay-let.nix (100%) rename tests/{ => functional}/lang/eval-okay-list.exp (100%) rename tests/{ => functional}/lang/eval-okay-list.nix (100%) rename tests/{ => functional}/lang/eval-okay-listtoattrs.exp (100%) rename tests/{ => functional}/lang/eval-okay-listtoattrs.nix (100%) rename tests/{ => functional}/lang/eval-okay-logic.exp (100%) rename tests/{ => functional}/lang/eval-okay-logic.nix (100%) rename tests/{ => functional}/lang/eval-okay-map.exp (100%) rename tests/{ => functional}/lang/eval-okay-map.nix (100%) rename tests/{ => functional}/lang/eval-okay-mapattrs.exp (100%) rename tests/{ => functional}/lang/eval-okay-mapattrs.nix (100%) rename tests/{ => functional}/lang/eval-okay-merge-dynamic-attrs.exp (100%) rename tests/{ => functional}/lang/eval-okay-merge-dynamic-attrs.nix (100%) rename tests/{ => functional}/lang/eval-okay-nested-with.exp (100%) rename tests/{ => functional}/lang/eval-okay-nested-with.nix (100%) rename tests/{ => functional}/lang/eval-okay-new-let.exp (100%) rename tests/{ => functional}/lang/eval-okay-new-let.nix (100%) rename tests/{ => functional}/lang/eval-okay-null-dynamic-attrs.exp (100%) rename tests/{ => functional}/lang/eval-okay-null-dynamic-attrs.nix (100%) rename tests/{ => functional}/lang/eval-okay-overrides.exp (100%) rename tests/{ => functional}/lang/eval-okay-overrides.nix (100%) rename tests/{ => functional}/lang/eval-okay-parse-flake-ref.exp (100%) rename tests/{ => functional}/lang/eval-okay-parse-flake-ref.nix (100%) rename tests/{ => functional}/lang/eval-okay-partition.exp (100%) rename tests/{ => functional}/lang/eval-okay-partition.nix (100%) rename tests/{ => functional}/lang/eval-okay-path-string-interpolation.exp (100%) rename tests/{ => functional}/lang/eval-okay-path-string-interpolation.nix (100%) rename tests/{ => functional}/lang/eval-okay-path.exp (100%) rename tests/{ => functional}/lang/eval-okay-path.nix (100%) rename tests/{ => functional}/lang/eval-okay-pathexists.exp (100%) rename tests/{ => functional}/lang/eval-okay-pathexists.nix (100%) rename tests/{ => functional}/lang/eval-okay-patterns.exp (100%) rename tests/{ => functional}/lang/eval-okay-patterns.nix (100%) rename tests/{ => functional}/lang/eval-okay-print.err.exp (100%) rename tests/{ => functional}/lang/eval-okay-print.exp (100%) rename tests/{ => functional}/lang/eval-okay-print.nix (100%) rename tests/{ => functional}/lang/eval-okay-readDir.exp (100%) rename tests/{ => functional}/lang/eval-okay-readDir.nix (100%) rename tests/{ => functional}/lang/eval-okay-readFileType.exp (100%) rename tests/{ => functional}/lang/eval-okay-readFileType.nix (100%) rename tests/{ => functional}/lang/eval-okay-readfile.exp (100%) rename tests/{ => functional}/lang/eval-okay-readfile.nix (100%) rename tests/{ => functional}/lang/eval-okay-redefine-builtin.exp (100%) rename tests/{ => functional}/lang/eval-okay-redefine-builtin.nix (100%) rename tests/{ => functional}/lang/eval-okay-regex-match.exp (100%) rename tests/{ => functional}/lang/eval-okay-regex-match.nix (100%) rename tests/{ => functional}/lang/eval-okay-regex-split.exp (100%) rename tests/{ => functional}/lang/eval-okay-regex-split.nix (100%) rename tests/{ => functional}/lang/eval-okay-regression-20220122.exp (100%) rename tests/{ => functional}/lang/eval-okay-regression-20220122.nix (100%) rename tests/{ => functional}/lang/eval-okay-regression-20220125.exp (100%) rename tests/{ => functional}/lang/eval-okay-regression-20220125.nix (100%) rename tests/{ => functional}/lang/eval-okay-remove.exp (100%) rename tests/{ => functional}/lang/eval-okay-remove.nix (100%) rename tests/{ => functional}/lang/eval-okay-replacestrings.exp (100%) rename tests/{ => functional}/lang/eval-okay-replacestrings.nix (100%) rename tests/{ => functional}/lang/eval-okay-scope-1.exp (100%) rename tests/{ => functional}/lang/eval-okay-scope-1.nix (100%) rename tests/{ => functional}/lang/eval-okay-scope-2.exp (100%) rename tests/{ => functional}/lang/eval-okay-scope-2.nix (100%) rename tests/{ => functional}/lang/eval-okay-scope-3.exp (100%) rename tests/{ => functional}/lang/eval-okay-scope-3.nix (100%) rename tests/{ => functional}/lang/eval-okay-scope-4.exp (100%) rename tests/{ => functional}/lang/eval-okay-scope-4.nix (100%) rename tests/{ => functional}/lang/eval-okay-scope-6.exp (100%) rename tests/{ => functional}/lang/eval-okay-scope-6.nix (100%) rename tests/{ => functional}/lang/eval-okay-scope-7.exp (100%) rename tests/{ => functional}/lang/eval-okay-scope-7.nix (100%) rename tests/{ => functional}/lang/eval-okay-search-path.exp (100%) rename tests/{ => functional}/lang/eval-okay-search-path.flags (100%) rename tests/{ => functional}/lang/eval-okay-search-path.nix (100%) rename tests/{ => functional}/lang/eval-okay-seq.exp (100%) rename tests/{ => functional}/lang/eval-okay-seq.nix (100%) rename tests/{ => functional}/lang/eval-okay-sort.exp (100%) rename tests/{ => functional}/lang/eval-okay-sort.nix (100%) rename tests/{ => functional}/lang/eval-okay-splitversion.exp (100%) rename tests/{ => functional}/lang/eval-okay-splitversion.nix (100%) rename tests/{ => functional}/lang/eval-okay-string.exp (100%) rename tests/{ => functional}/lang/eval-okay-string.nix (100%) rename tests/{ => functional}/lang/eval-okay-strings-as-attrs-names.exp (100%) rename tests/{ => functional}/lang/eval-okay-strings-as-attrs-names.nix (100%) rename tests/{ => functional}/lang/eval-okay-substring.exp (100%) rename tests/{ => functional}/lang/eval-okay-substring.nix (100%) rename tests/{ => functional}/lang/eval-okay-tail-call-1.exp-disabled (100%) rename tests/{ => functional}/lang/eval-okay-tail-call-1.nix (100%) rename tests/{ => functional}/lang/eval-okay-tojson.exp (100%) rename tests/{ => functional}/lang/eval-okay-tojson.nix (100%) rename tests/{ => functional}/lang/eval-okay-toxml.exp (100%) rename tests/{ => functional}/lang/eval-okay-toxml.nix (100%) rename tests/{ => functional}/lang/eval-okay-toxml2.exp (100%) rename tests/{ => functional}/lang/eval-okay-toxml2.nix (100%) rename tests/{ => functional}/lang/eval-okay-tryeval.exp (100%) rename tests/{ => functional}/lang/eval-okay-tryeval.nix (100%) rename tests/{ => functional}/lang/eval-okay-types.exp (100%) rename tests/{ => functional}/lang/eval-okay-types.nix (100%) rename tests/{ => functional}/lang/eval-okay-versions.exp (100%) rename tests/{ => functional}/lang/eval-okay-versions.nix (100%) rename tests/{ => functional}/lang/eval-okay-with.exp (100%) rename tests/{ => functional}/lang/eval-okay-with.nix (100%) rename tests/{ => functional}/lang/eval-okay-xml.exp.xml (100%) rename tests/{ => functional}/lang/eval-okay-xml.nix (100%) rename tests/{ => functional}/lang/eval-okay-zipAttrsWith.exp (100%) rename tests/{ => functional}/lang/eval-okay-zipAttrsWith.nix (100%) rename tests/{ => functional}/lang/framework.sh (100%) rename tests/{ => functional}/lang/imported.nix (100%) rename tests/{ => functional}/lang/imported2.nix (100%) rename tests/{ => functional}/lang/lib.nix (100%) rename tests/{ => functional}/lang/parse-fail-dup-attrs-1.err.exp (100%) rename tests/{ => functional}/lang/parse-fail-dup-attrs-1.nix (100%) rename tests/{ => functional}/lang/parse-fail-dup-attrs-2.err.exp (100%) rename tests/{ => functional}/lang/parse-fail-dup-attrs-2.nix (100%) rename tests/{ => functional}/lang/parse-fail-dup-attrs-3.err.exp (100%) rename tests/{ => functional}/lang/parse-fail-dup-attrs-3.nix (100%) rename tests/{ => functional}/lang/parse-fail-dup-attrs-4.err.exp (100%) rename tests/{ => functional}/lang/parse-fail-dup-attrs-4.nix (100%) rename tests/{ => functional}/lang/parse-fail-dup-attrs-6.err.exp (100%) rename tests/{ => functional}/lang/parse-fail-dup-attrs-7.err.exp (100%) rename tests/{ => functional}/lang/parse-fail-dup-attrs-7.nix (100%) rename tests/{ => functional}/lang/parse-fail-dup-formals.err.exp (100%) rename tests/{ => functional}/lang/parse-fail-dup-formals.nix (100%) rename tests/{ => functional}/lang/parse-fail-eof-in-string.err.exp (100%) rename tests/{ => functional}/lang/parse-fail-eof-in-string.nix (100%) rename tests/{ => functional}/lang/parse-fail-mixed-nested-attrs1.err.exp (100%) rename tests/{ => functional}/lang/parse-fail-mixed-nested-attrs1.nix (100%) rename tests/{ => functional}/lang/parse-fail-mixed-nested-attrs2.err.exp (100%) rename tests/{ => functional}/lang/parse-fail-mixed-nested-attrs2.nix (100%) rename tests/{ => functional}/lang/parse-fail-patterns-1.err.exp (100%) rename tests/{ => functional}/lang/parse-fail-patterns-1.nix (100%) rename tests/{ => functional}/lang/parse-fail-regression-20060610.err.exp (100%) rename tests/{ => functional}/lang/parse-fail-regression-20060610.nix (100%) rename tests/{ => functional}/lang/parse-fail-undef-var-2.err.exp (100%) rename tests/{ => functional}/lang/parse-fail-undef-var-2.nix (100%) rename tests/{ => functional}/lang/parse-fail-undef-var.err.exp (100%) rename tests/{ => functional}/lang/parse-fail-undef-var.nix (100%) rename tests/{ => functional}/lang/parse-fail-utf8.err.exp (100%) rename tests/{ => functional}/lang/parse-fail-utf8.nix (100%) rename tests/{ => functional}/lang/parse-okay-1.exp (100%) rename tests/{ => functional}/lang/parse-okay-1.nix (100%) rename tests/{ => functional}/lang/parse-okay-crlf.exp (100%) rename tests/{ => functional}/lang/parse-okay-crlf.nix (100%) rename tests/{ => functional}/lang/parse-okay-dup-attrs-5.exp (100%) rename tests/{ => functional}/lang/parse-okay-dup-attrs-5.nix (100%) rename tests/{ => functional}/lang/parse-okay-dup-attrs-6.exp (100%) rename tests/{ => functional}/lang/parse-okay-dup-attrs-6.nix (100%) rename tests/{ => functional}/lang/parse-okay-mixed-nested-attrs-1.exp (100%) rename tests/{ => functional}/lang/parse-okay-mixed-nested-attrs-1.nix (100%) rename tests/{ => functional}/lang/parse-okay-mixed-nested-attrs-2.exp (100%) rename tests/{ => functional}/lang/parse-okay-mixed-nested-attrs-2.nix (100%) rename tests/{ => functional}/lang/parse-okay-mixed-nested-attrs-3.exp (100%) rename tests/{ => functional}/lang/parse-okay-mixed-nested-attrs-3.nix (100%) rename tests/{ => functional}/lang/parse-okay-regression-20041027.exp (100%) rename tests/{ => functional}/lang/parse-okay-regression-20041027.nix (100%) rename tests/{ => functional}/lang/parse-okay-regression-751.exp (100%) rename tests/{ => functional}/lang/parse-okay-regression-751.nix (100%) rename tests/{ => functional}/lang/parse-okay-subversion.exp (100%) rename tests/{ => functional}/lang/parse-okay-subversion.nix (100%) rename tests/{ => functional}/lang/parse-okay-url.exp (100%) rename tests/{ => functional}/lang/parse-okay-url.nix (100%) rename tests/{ => functional}/lang/readDir/bar (100%) rename tests/{ => functional}/lang/readDir/foo/git-hates-directories (100%) rename tests/{ => functional}/lang/readDir/ldir (100%) rename tests/{ => functional}/lang/readDir/linked (100%) rename tests/{ => functional}/legacy-ssh-store.sh (100%) rename tests/{ => functional}/linux-sandbox-cert-test.nix (100%) rename tests/{ => functional}/linux-sandbox.sh (100%) rename tests/{ => functional}/local-store.sh (100%) rename tests/{ => functional}/local.mk (89%) rename tests/{ => functional}/logging.sh (100%) rename tests/{ => functional}/misc.sh (100%) rename tests/{ => functional}/multiple-outputs.nix (100%) rename tests/{ => functional}/multiple-outputs.sh (100%) rename tests/{ => functional}/nar-access.nix (100%) rename tests/{ => functional}/nar-access.sh (100%) rename tests/{ => functional}/nested-sandboxing.sh (75%) rename tests/{ => functional}/nested-sandboxing/command.sh (100%) rename tests/{ => functional}/nested-sandboxing/runner.nix (100%) rename tests/{ => functional}/nix-build-examples.nix (100%) rename tests/{ => functional}/nix-build.sh (100%) rename tests/{ => functional}/nix-channel.sh (100%) rename tests/{ => functional}/nix-collect-garbage-d.sh (100%) rename tests/{ => functional}/nix-copy-ssh-ng.sh (100%) rename tests/{ => functional}/nix-copy-ssh.sh (100%) rename tests/{ => functional}/nix-daemon-untrusting.sh (100%) rename tests/{ => functional}/nix-profile.sh (100%) rename tests/{ => functional}/nix-shell.sh (100%) rename tests/{ => functional}/nix_path.sh (100%) rename tests/{ => functional}/optimise-store.sh (100%) rename tests/{ => functional}/output-normalization.sh (100%) rename tests/{ => functional}/parallel.builder.sh (100%) rename tests/{ => functional}/parallel.nix (100%) rename tests/{ => functional}/parallel.sh (100%) rename tests/{ => functional}/pass-as-file.sh (100%) rename tests/{ => functional}/path-from-hash-part.sh (100%) rename tests/{ => functional}/path.nix (100%) rename tests/{ => functional}/placeholders.sh (100%) rename tests/{ => functional}/plugins.sh (100%) rename tests/{ => functional}/plugins/local.mk (100%) rename tests/{ => functional}/plugins/plugintest.cc (100%) rename tests/{ => functional}/post-hook.sh (100%) rename tests/{ => functional}/pure-eval.nix (100%) rename tests/{ => functional}/pure-eval.sh (100%) rename tests/{ => functional}/push-to-store-old.sh (100%) rename tests/{ => functional}/push-to-store.sh (100%) rename tests/{ => functional}/read-only-store.sh (100%) rename tests/{ => functional}/readfile-context.nix (100%) rename tests/{ => functional}/readfile-context.sh (100%) rename tests/{ => functional}/recursive.nix (100%) rename tests/{ => functional}/recursive.sh (100%) rename tests/{ => functional}/referrers.sh (100%) rename tests/{ => functional}/remote-store.sh (100%) rename tests/{ => functional}/repair.sh (100%) rename tests/{ => functional}/repl.sh (100%) rename tests/{ => functional}/restricted.nix (100%) rename tests/{ => functional}/restricted.sh (95%) rename tests/{ => functional}/search.nix (100%) rename tests/{ => functional}/search.sh (100%) rename tests/{ => functional}/secure-drv-outputs.nix (100%) rename tests/{ => functional}/secure-drv-outputs.sh (100%) rename tests/{ => functional}/selfref-gc.sh (100%) rename tests/{ => functional}/shell-hello.nix (100%) rename tests/{ => functional}/shell.nix (100%) rename tests/{ => functional}/shell.sh (100%) rename tests/{ => functional}/shell.shebang.rb (100%) rename tests/{ => functional}/shell.shebang.sh (100%) rename tests/{ => functional}/signing.sh (100%) rename tests/{ => functional}/simple-failing.nix (100%) rename tests/{ => functional}/simple.builder.sh (100%) rename tests/{ => functional}/simple.nix (100%) rename tests/{ => functional}/simple.sh (100%) rename tests/{ => functional}/ssh-relay.sh (100%) rename tests/{ => functional}/store-ping.sh (100%) rename tests/{ => functional}/structured-attrs-shell.nix (100%) rename tests/{ => functional}/structured-attrs.nix (100%) rename tests/{ => functional}/structured-attrs.sh (100%) rename tests/{ => functional}/substitute-with-invalid-ca.sh (100%) rename tests/{ => functional}/suggestions.sh (100%) rename tests/{ => functional}/supplementary-groups.sh (100%) rename tests/{ => functional}/tarball.sh (100%) rename tests/{ => functional}/test-infra.sh (100%) rename tests/{ => functional}/test-libstoreconsumer.sh (100%) rename tests/{ => functional}/test-libstoreconsumer/README.md (100%) rename tests/{ => functional}/test-libstoreconsumer/local.mk (100%) rename tests/{ => functional}/test-libstoreconsumer/main.cc (100%) rename tests/{ => functional}/timeout.nix (100%) rename tests/{ => functional}/timeout.sh (100%) rename tests/{ => functional}/toString-path.sh (100%) rename tests/{ => functional}/undefined-variable.nix (100%) rename tests/{ => functional}/user-envs-migration.sh (100%) rename tests/{ => functional}/user-envs.builder.sh (100%) rename tests/{ => functional}/user-envs.nix (100%) rename tests/{ => functional}/user-envs.sh (100%) rename tests/{ => functional}/why-depends.sh (100%) rename tests/{ => functional}/zstd.sh (100%) diff --git a/.github/labeler.yml b/.github/labeler.yml index 12120bdb3..7544f07a6 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -20,4 +20,4 @@ # Unit tests - src/*/tests/**/* # Functional and integration tests - - tests/**/* + - tests/functional/**/* diff --git a/.gitignore b/.gitignore index bf4f33564..2d3314015 100644 --- a/.gitignore +++ b/.gitignore @@ -79,24 +79,24 @@ perl/Makefile.config /src/build-remote/build-remote -# /tests/ -/tests/test-tmp -/tests/common/vars-and-functions.sh -/tests/result* -/tests/restricted-innocent -/tests/shell -/tests/shell.drv -/tests/config.nix -/tests/ca/config.nix -/tests/dyn-drv/config.nix -/tests/repl-result-out -/tests/test-libstoreconsumer/test-libstoreconsumer +# /tests/functional/ +/tests/functional/test-tmp +/tests/functional/common/vars-and-functions.sh +/tests/functional/result* +/tests/functional/restricted-innocent +/tests/functional/shell +/tests/functional/shell.drv +/tests/functional/config.nix +/tests/functional/ca/config.nix +/tests/functional/dyn-drv/config.nix +/tests/functional/repl-result-out +/tests/functional/test-libstoreconsumer/test-libstoreconsumer -# /tests/lang/ -/tests/lang/*.out -/tests/lang/*.out.xml -/tests/lang/*.err -/tests/lang/*.ast +# /tests/functional/lang/ +/tests/functional/lang/*.out +/tests/functional/lang/*.out.xml +/tests/functional/lang/*.err +/tests/functional/lang/*.ast /perl/lib/Nix/Config.pm /perl/lib/Nix/Store.cc diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index facbf0eb0..8908b9887 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -52,7 +52,7 @@ Check out the [security policy](https://github.com/NixOS/nix/security/policy). - [ ] Fixes an [idea approved](https://github.com/NixOS/nix/labels/idea%20approved) issue - [ ] Tests, as appropriate: - - Functional tests – [`tests/**.sh`](./tests) + - Functional tests – [`tests/functional/**.sh`](./tests/functional) - Unit tests – [`src/*/tests`](./src/) - Integration tests – [`tests/nixos/*`](./tests/nixos) - [ ] User documentation in the [manual](..doc/manual/src) diff --git a/Makefile b/Makefile index 31b54b93d..c0b27e904 100644 --- a/Makefile +++ b/Makefile @@ -26,11 +26,11 @@ makefiles += \ src/libutil/tests/local.mk \ src/libstore/tests/local.mk \ src/libexpr/tests/local.mk \ - tests/local.mk \ - tests/ca/local.mk \ - tests/dyn-drv/local.mk \ - tests/test-libstoreconsumer/local.mk \ - tests/plugins/local.mk + tests/functional/local.mk \ + tests/functional/ca/local.mk \ + tests/functional/dyn-drv/local.mk \ + tests/functional/test-libstoreconsumer/local.mk \ + tests/functional/plugins/local.mk else makefiles += \ mk/disable-tests.mk diff --git a/doc/manual/src/contributing/testing.md b/doc/manual/src/contributing/testing.md index cd94d5cfb..ccd90088e 100644 --- a/doc/manual/src/contributing/testing.md +++ b/doc/manual/src/contributing/testing.md @@ -12,7 +12,7 @@ Finer-grained filtering is also possible using the [--gtest_filter](https://goog ## Functional tests -The functional tests reside under the `tests` directory and are listed in `tests/local.mk`. +The functional tests reside under the `tests/functional` directory and are listed in `tests/functional/local.mk`. Each test is a bash script. ### Running the whole test suite @@ -21,8 +21,8 @@ The whole test suite can be run with: ```shell-session $ make install && make installcheck -ran test tests/foo.sh... [PASS] -ran test tests/bar.sh... [PASS] +ran test tests/functional/foo.sh... [PASS] +ran test tests/functional/bar.sh... [PASS] ... ``` @@ -30,14 +30,14 @@ ran test tests/bar.sh... [PASS] Sometimes it is useful to group related tests so they can be easily run together without running the entire test suite. Each test group is in a subdirectory of `tests`. -For example, `tests/ca/local.mk` defines a `ca` test group for content-addressed derivation outputs. +For example, `tests/functional/ca/local.mk` defines a `ca` test group for content-addressed derivation outputs. That test group can be run like this: ```shell-session $ make ca.test-group -j50 -ran test tests/ca/nix-run.sh... [PASS] -ran test tests/ca/import-derivation.sh... [PASS] +ran test tests/functional/ca/nix-run.sh... [PASS] +ran test tests/functional/ca/import-derivation.sh... [PASS] ... ``` @@ -56,21 +56,21 @@ install-tests-groups += $(test-group-name) Individual tests can be run with `make`: ```shell-session -$ make tests/${testName}.sh.test -ran test tests/${testName}.sh... [PASS] +$ make tests/functional/${testName}.sh.test +ran test tests/functional/${testName}.sh... [PASS] ``` or without `make`: ```shell-session -$ ./mk/run-test.sh tests/${testName}.sh -ran test tests/${testName}.sh... [PASS] +$ ./mk/run-test.sh tests/functional/${testName}.sh +ran test tests/functional/${testName}.sh... [PASS] ``` To see the complete output, one can also run: ```shell-session -$ ./mk/debug-test.sh tests/${testName}.sh +$ ./mk/debug-test.sh tests/functional/${testName}.sh + foo output from foo + bar @@ -105,7 +105,7 @@ edit it like so: Then, running the test with `./mk/debug-test.sh` will drop you into GDB once the script reaches that point: ```shell-session -$ ./mk/debug-test.sh tests/${testName}.sh +$ ./mk/debug-test.sh tests/functional/${testName}.sh ... + gdb blash blub GNU gdb (GDB) 12.1 @@ -124,9 +124,11 @@ This technique is to include the exact output/behavior of a former version of Ni For example, this technique is used for the language tests, to check both the printed final value if evaluation was successful, and any errors and warnings encountered. It is frequently useful to regenerate the expected output. -To do that, rerun the failed test with `_NIX_TEST_ACCEPT=1`. -(At least, this is the convention we've used for `tests/lang.sh`. -If we add more characterization testing we should always strive to be consistent.) +To do that, rerun the failed test(s) with `_NIX_TEST_ACCEPT=1`. +For example: +```bash +_NIX_TEST_ACCEPT=1 make tests/functional/lang.sh.test +``` An interesting situation to document is the case when these tests are "overfitted". The language tests are, again, an example of this. diff --git a/flake.nix b/flake.nix index 1d629bb6a..beedb000f 100644 --- a/flake.nix +++ b/flake.nix @@ -24,7 +24,7 @@ linuxSystems = linux32BitSystems ++ linux64BitSystems; darwinSystems = [ "x86_64-darwin" "aarch64-darwin" ]; systems = linuxSystems ++ darwinSystems; - + crossSystems = [ "armv6l-linux" "armv7l-linux" ]; stdenvs = [ "gccStdenv" "clangStdenv" "clang11Stdenv" "stdenv" "libcxxStdenv" "ccacheStdenv" ]; @@ -58,35 +58,27 @@ nixSrc = fileset.toSource { root = ./.; - fileset = fileset.intersect baseFiles ( - fileset.difference - (fileset.unions [ - ./.version - ./boehmgc-coroutine-sp-fallback.diff - ./bootstrap.sh - ./configure.ac - ./doc - ./local.mk - ./m4 - ./Makefile - ./Makefile.config.in - ./misc - ./mk - ./precompiled-headers.h - ./src - ./tests - ./COPYING - ./scripts/local.mk - (fileset.fileFilter (f: lib.strings.hasPrefix "nix-profile" f.name) ./scripts) - # TODO: do we really need README.md? It doesn't seem used in the build. - ./README.md - ]) - (fileset.unions [ - # Removed file sets - ./tests/nixos - ./tests/installer - ]) - ); + fileset = fileset.intersect baseFiles (fileset.unions [ + ./.version + ./boehmgc-coroutine-sp-fallback.diff + ./bootstrap.sh + ./configure.ac + ./doc + ./local.mk + ./m4 + ./Makefile + ./Makefile.config.in + ./misc + ./mk + ./precompiled-headers.h + ./src + ./tests/functional + ./COPYING + ./scripts/local.mk + (fileset.fileFilter (f: lib.strings.hasPrefix "nix-profile" f.name) ./scripts) + # TODO: do we really need README.md? It doesn't seem used in the build. + ./README.md + ]); }; # Memoize nixpkgs for different platforms for efficiency. diff --git a/mk/common-test.sh b/mk/common-test.sh index 0a2e4c1c2..7ab25febf 100644 --- a/mk/common-test.sh +++ b/mk/common-test.sh @@ -1,11 +1,15 @@ +test_dir=tests/functional + +test=$(echo -n "$test" | sed -e "s|^$test_dir/||") + TESTS_ENVIRONMENT=("TEST_NAME=${test%.*}" 'NIX_REMOTE=') : ${BASH:=/usr/bin/env bash} init_test () { - cd tests && env "${TESTS_ENVIRONMENT[@]}" $BASH -e init.sh 2>/dev/null > /dev/null + cd "$test_dir" && env "${TESTS_ENVIRONMENT[@]}" $BASH -e init.sh 2>/dev/null > /dev/null } run_test_proper () { - cd $(dirname $test) && env "${TESTS_ENVIRONMENT[@]}" $BASH -e $(basename $test) + cd "$test_dir/$(dirname $test)" && env "${TESTS_ENVIRONMENT[@]}" $BASH -e $(basename $test) } diff --git a/src/libstore/gc.cc b/src/libstore/gc.cc index 26c87391c..516cbef83 100644 --- a/src/libstore/gc.cc +++ b/src/libstore/gc.cc @@ -776,7 +776,7 @@ void LocalStore::collectGarbage(const GCOptions & options, GCResults & results) } }; - /* Synchronisation point for testing, see tests/gc-concurrent.sh. */ + /* Synchronisation point for testing, see tests/functional/gc-concurrent.sh. */ if (auto p = getEnv("_NIX_TEST_GC_SYNC")) readFile(*p); diff --git a/src/libutil/url-parts.hh b/src/libutil/url-parts.hh index 98162b0f7..12026921f 100644 --- a/src/libutil/url-parts.hh +++ b/src/libutil/url-parts.hh @@ -30,7 +30,7 @@ extern std::regex refRegex; /// Instead of defining what a good Git Ref is, we define what a bad Git Ref is /// This is because of the definition of a ref in refs.c in https://github.com/git/git -/// See tests/fetchGitRefs.sh for the full definition +/// See tests/functional/fetchGitRefs.sh for the full definition const static std::string badGitRefRegexS = "//|^[./]|/\\.|\\.\\.|[[:cntrl:][:space:]:?^~\[]|\\\\|\\*|\\.lock$|\\.lock/|@\\{|[/.]$|^@$|^$"; extern std::regex badGitRefRegex; diff --git a/tests/add.sh b/tests/functional/add.sh similarity index 100% rename from tests/add.sh rename to tests/functional/add.sh diff --git a/tests/bad.tar.xz b/tests/functional/bad.tar.xz similarity index 100% rename from tests/bad.tar.xz rename to tests/functional/bad.tar.xz diff --git a/tests/bash-profile.sh b/tests/functional/bash-profile.sh similarity index 78% rename from tests/bash-profile.sh rename to tests/functional/bash-profile.sh index e2e0d1090..3faeaaba1 100644 --- a/tests/bash-profile.sh +++ b/tests/functional/bash-profile.sh @@ -1,6 +1,6 @@ source common.sh -sed -e "s|@localstatedir@|$TEST_ROOT/profile-var|g" -e "s|@coreutils@|$coreutils|g" < ../scripts/nix-profile.sh.in > $TEST_ROOT/nix-profile.sh +sed -e "s|@localstatedir@|$TEST_ROOT/profile-var|g" -e "s|@coreutils@|$coreutils|g" < ../../scripts/nix-profile.sh.in > $TEST_ROOT/nix-profile.sh user=$(whoami) rm -rf $TEST_HOME $TEST_ROOT/profile-var diff --git a/tests/big-derivation-attr.nix b/tests/functional/big-derivation-attr.nix similarity index 100% rename from tests/big-derivation-attr.nix rename to tests/functional/big-derivation-attr.nix diff --git a/tests/binary-cache-build-remote.sh b/tests/functional/binary-cache-build-remote.sh similarity index 100% rename from tests/binary-cache-build-remote.sh rename to tests/functional/binary-cache-build-remote.sh diff --git a/tests/binary-cache.sh b/tests/functional/binary-cache.sh similarity index 100% rename from tests/binary-cache.sh rename to tests/functional/binary-cache.sh diff --git a/tests/brotli.sh b/tests/functional/brotli.sh similarity index 100% rename from tests/brotli.sh rename to tests/functional/brotli.sh diff --git a/tests/build-delete.sh b/tests/functional/build-delete.sh similarity index 100% rename from tests/build-delete.sh rename to tests/functional/build-delete.sh diff --git a/tests/build-dry.sh b/tests/functional/build-dry.sh similarity index 100% rename from tests/build-dry.sh rename to tests/functional/build-dry.sh diff --git a/tests/build-hook-ca-fixed.nix b/tests/functional/build-hook-ca-fixed.nix similarity index 100% rename from tests/build-hook-ca-fixed.nix rename to tests/functional/build-hook-ca-fixed.nix diff --git a/tests/build-hook-ca-floating.nix b/tests/functional/build-hook-ca-floating.nix similarity index 100% rename from tests/build-hook-ca-floating.nix rename to tests/functional/build-hook-ca-floating.nix diff --git a/tests/build-hook.nix b/tests/functional/build-hook.nix similarity index 100% rename from tests/build-hook.nix rename to tests/functional/build-hook.nix diff --git a/tests/build-remote-content-addressed-fixed.sh b/tests/functional/build-remote-content-addressed-fixed.sh similarity index 100% rename from tests/build-remote-content-addressed-fixed.sh rename to tests/functional/build-remote-content-addressed-fixed.sh diff --git a/tests/build-remote-content-addressed-floating.sh b/tests/functional/build-remote-content-addressed-floating.sh similarity index 100% rename from tests/build-remote-content-addressed-floating.sh rename to tests/functional/build-remote-content-addressed-floating.sh diff --git a/tests/build-remote-input-addressed.sh b/tests/functional/build-remote-input-addressed.sh similarity index 100% rename from tests/build-remote-input-addressed.sh rename to tests/functional/build-remote-input-addressed.sh diff --git a/tests/build-remote-trustless-after.sh b/tests/functional/build-remote-trustless-after.sh similarity index 100% rename from tests/build-remote-trustless-after.sh rename to tests/functional/build-remote-trustless-after.sh diff --git a/tests/build-remote-trustless-should-fail-0.sh b/tests/functional/build-remote-trustless-should-fail-0.sh similarity index 100% rename from tests/build-remote-trustless-should-fail-0.sh rename to tests/functional/build-remote-trustless-should-fail-0.sh diff --git a/tests/build-remote-trustless-should-pass-0.sh b/tests/functional/build-remote-trustless-should-pass-0.sh similarity index 100% rename from tests/build-remote-trustless-should-pass-0.sh rename to tests/functional/build-remote-trustless-should-pass-0.sh diff --git a/tests/build-remote-trustless-should-pass-1.sh b/tests/functional/build-remote-trustless-should-pass-1.sh similarity index 100% rename from tests/build-remote-trustless-should-pass-1.sh rename to tests/functional/build-remote-trustless-should-pass-1.sh diff --git a/tests/build-remote-trustless-should-pass-2.sh b/tests/functional/build-remote-trustless-should-pass-2.sh similarity index 100% rename from tests/build-remote-trustless-should-pass-2.sh rename to tests/functional/build-remote-trustless-should-pass-2.sh diff --git a/tests/build-remote-trustless-should-pass-3.sh b/tests/functional/build-remote-trustless-should-pass-3.sh similarity index 100% rename from tests/build-remote-trustless-should-pass-3.sh rename to tests/functional/build-remote-trustless-should-pass-3.sh diff --git a/tests/build-remote-trustless.sh b/tests/functional/build-remote-trustless.sh similarity index 82% rename from tests/build-remote-trustless.sh rename to tests/functional/build-remote-trustless.sh index 9df44e0c5..81e5253bf 100644 --- a/tests/build-remote-trustless.sh +++ b/tests/functional/build-remote-trustless.sh @@ -6,7 +6,7 @@ unset NIX_STATE_DIR remoteDir=$TEST_ROOT/remote -# Note: ssh{-ng}://localhost bypasses ssh. See tests/build-remote.sh for +# Note: ssh{-ng}://localhost bypasses ssh. See tests/functional/build-remote.sh for # more details. nix-build $file -o $TEST_ROOT/result --max-jobs 0 \ --arg busybox $busybox \ diff --git a/tests/build-remote.sh b/tests/functional/build-remote.sh similarity index 100% rename from tests/build-remote.sh rename to tests/functional/build-remote.sh diff --git a/tests/build.sh b/tests/functional/build.sh similarity index 100% rename from tests/build.sh rename to tests/functional/build.sh diff --git a/tests/ca-shell.nix b/tests/functional/ca-shell.nix similarity index 100% rename from tests/ca-shell.nix rename to tests/functional/ca-shell.nix diff --git a/tests/ca/build-cache.sh b/tests/functional/ca/build-cache.sh similarity index 100% rename from tests/ca/build-cache.sh rename to tests/functional/ca/build-cache.sh diff --git a/tests/ca/build-dry.sh b/tests/functional/ca/build-dry.sh similarity index 100% rename from tests/ca/build-dry.sh rename to tests/functional/ca/build-dry.sh diff --git a/tests/ca/build-with-garbage-path.sh b/tests/functional/ca/build-with-garbage-path.sh similarity index 100% rename from tests/ca/build-with-garbage-path.sh rename to tests/functional/ca/build-with-garbage-path.sh diff --git a/tests/ca/build.sh b/tests/functional/ca/build.sh similarity index 100% rename from tests/ca/build.sh rename to tests/functional/ca/build.sh diff --git a/tests/ca/common.sh b/tests/functional/ca/common.sh similarity index 100% rename from tests/ca/common.sh rename to tests/functional/ca/common.sh diff --git a/tests/ca/concurrent-builds.sh b/tests/functional/ca/concurrent-builds.sh similarity index 100% rename from tests/ca/concurrent-builds.sh rename to tests/functional/ca/concurrent-builds.sh diff --git a/tests/ca/config.nix.in b/tests/functional/ca/config.nix.in similarity index 100% rename from tests/ca/config.nix.in rename to tests/functional/ca/config.nix.in diff --git a/tests/ca/content-addressed.nix b/tests/functional/ca/content-addressed.nix similarity index 100% rename from tests/ca/content-addressed.nix rename to tests/functional/ca/content-addressed.nix diff --git a/tests/ca/derivation-json.sh b/tests/functional/ca/derivation-json.sh similarity index 100% rename from tests/ca/derivation-json.sh rename to tests/functional/ca/derivation-json.sh diff --git a/tests/ca/duplicate-realisation-in-closure.sh b/tests/functional/ca/duplicate-realisation-in-closure.sh similarity index 100% rename from tests/ca/duplicate-realisation-in-closure.sh rename to tests/functional/ca/duplicate-realisation-in-closure.sh diff --git a/tests/ca/flake.nix b/tests/functional/ca/flake.nix similarity index 100% rename from tests/ca/flake.nix rename to tests/functional/ca/flake.nix diff --git a/tests/ca/gc.sh b/tests/functional/ca/gc.sh similarity index 100% rename from tests/ca/gc.sh rename to tests/functional/ca/gc.sh diff --git a/tests/ca/import-derivation.sh b/tests/functional/ca/import-derivation.sh similarity index 100% rename from tests/ca/import-derivation.sh rename to tests/functional/ca/import-derivation.sh diff --git a/tests/ca/local.mk b/tests/functional/ca/local.mk similarity index 94% rename from tests/ca/local.mk rename to tests/functional/ca/local.mk index 0852e592e..fd87b8d1f 100644 --- a/tests/ca/local.mk +++ b/tests/functional/ca/local.mk @@ -25,4 +25,4 @@ clean-files += \ $(d)/config.nix test-deps += \ - tests/ca/config.nix + tests/functional/ca/config.nix diff --git a/tests/ca/new-build-cmd.sh b/tests/functional/ca/new-build-cmd.sh similarity index 100% rename from tests/ca/new-build-cmd.sh rename to tests/functional/ca/new-build-cmd.sh diff --git a/tests/ca/nix-copy.sh b/tests/functional/ca/nix-copy.sh similarity index 100% rename from tests/ca/nix-copy.sh rename to tests/functional/ca/nix-copy.sh diff --git a/tests/ca/nix-run.sh b/tests/functional/ca/nix-run.sh similarity index 100% rename from tests/ca/nix-run.sh rename to tests/functional/ca/nix-run.sh diff --git a/tests/ca/nix-shell.sh b/tests/functional/ca/nix-shell.sh similarity index 100% rename from tests/ca/nix-shell.sh rename to tests/functional/ca/nix-shell.sh diff --git a/tests/ca/nondeterministic.nix b/tests/functional/ca/nondeterministic.nix similarity index 100% rename from tests/ca/nondeterministic.nix rename to tests/functional/ca/nondeterministic.nix diff --git a/tests/ca/post-hook.sh b/tests/functional/ca/post-hook.sh similarity index 100% rename from tests/ca/post-hook.sh rename to tests/functional/ca/post-hook.sh diff --git a/tests/ca/racy.nix b/tests/functional/ca/racy.nix similarity index 100% rename from tests/ca/racy.nix rename to tests/functional/ca/racy.nix diff --git a/tests/ca/recursive.sh b/tests/functional/ca/recursive.sh similarity index 100% rename from tests/ca/recursive.sh rename to tests/functional/ca/recursive.sh diff --git a/tests/ca/repl.sh b/tests/functional/ca/repl.sh similarity index 100% rename from tests/ca/repl.sh rename to tests/functional/ca/repl.sh diff --git a/tests/ca/selfref-gc.sh b/tests/functional/ca/selfref-gc.sh similarity index 100% rename from tests/ca/selfref-gc.sh rename to tests/functional/ca/selfref-gc.sh diff --git a/tests/ca/signatures.sh b/tests/functional/ca/signatures.sh similarity index 100% rename from tests/ca/signatures.sh rename to tests/functional/ca/signatures.sh diff --git a/tests/ca/substitute.sh b/tests/functional/ca/substitute.sh similarity index 100% rename from tests/ca/substitute.sh rename to tests/functional/ca/substitute.sh diff --git a/tests/ca/why-depends.sh b/tests/functional/ca/why-depends.sh similarity index 100% rename from tests/ca/why-depends.sh rename to tests/functional/ca/why-depends.sh diff --git a/tests/case-hack.sh b/tests/functional/case-hack.sh similarity index 100% rename from tests/case-hack.sh rename to tests/functional/case-hack.sh diff --git a/tests/case.nar b/tests/functional/case.nar similarity index 100% rename from tests/case.nar rename to tests/functional/case.nar diff --git a/tests/check-refs.nix b/tests/functional/check-refs.nix similarity index 100% rename from tests/check-refs.nix rename to tests/functional/check-refs.nix diff --git a/tests/check-refs.sh b/tests/functional/check-refs.sh similarity index 100% rename from tests/check-refs.sh rename to tests/functional/check-refs.sh diff --git a/tests/check-reqs.nix b/tests/functional/check-reqs.nix similarity index 100% rename from tests/check-reqs.nix rename to tests/functional/check-reqs.nix diff --git a/tests/check-reqs.sh b/tests/functional/check-reqs.sh similarity index 100% rename from tests/check-reqs.sh rename to tests/functional/check-reqs.sh diff --git a/tests/check.nix b/tests/functional/check.nix similarity index 100% rename from tests/check.nix rename to tests/functional/check.nix diff --git a/tests/check.sh b/tests/functional/check.sh similarity index 100% rename from tests/check.sh rename to tests/functional/check.sh diff --git a/tests/common.sh b/tests/functional/common.sh similarity index 100% rename from tests/common.sh rename to tests/functional/common.sh diff --git a/tests/common/vars-and-functions.sh.in b/tests/functional/common/vars-and-functions.sh.in similarity index 99% rename from tests/common/vars-and-functions.sh.in rename to tests/functional/common/vars-and-functions.sh.in index 8f9ec4b1a..967d6be54 100644 --- a/tests/common/vars-and-functions.sh.in +++ b/tests/functional/common/vars-and-functions.sh.in @@ -6,7 +6,7 @@ COMMON_VARS_AND_FUNCTIONS_SH_SOURCED=1 export PS4='+(${BASH_SOURCE[0]-$0}:$LINENO) ' -export TEST_ROOT=$(realpath ${TMPDIR:-/tmp}/nix-test)/${TEST_NAME:-default} +export TEST_ROOT=$(realpath ${TMPDIR:-/tmp}/nix-test)/${TEST_NAME:-default/tests\/functional//} export NIX_STORE_DIR if ! NIX_STORE_DIR=$(readlink -f $TEST_ROOT/store 2> /dev/null); then # Maybe the build directory is symlinked. diff --git a/tests/completions.sh b/tests/functional/completions.sh similarity index 100% rename from tests/completions.sh rename to tests/functional/completions.sh diff --git a/tests/compression-levels.sh b/tests/functional/compression-levels.sh similarity index 100% rename from tests/compression-levels.sh rename to tests/functional/compression-levels.sh diff --git a/tests/compute-levels.sh b/tests/functional/compute-levels.sh similarity index 100% rename from tests/compute-levels.sh rename to tests/functional/compute-levels.sh diff --git a/tests/config.nix.in b/tests/functional/config.nix.in similarity index 100% rename from tests/config.nix.in rename to tests/functional/config.nix.in diff --git a/tests/config.sh b/tests/functional/config.sh similarity index 100% rename from tests/config.sh rename to tests/functional/config.sh diff --git a/tests/config/nix-with-substituters.conf b/tests/functional/config/nix-with-substituters.conf similarity index 100% rename from tests/config/nix-with-substituters.conf rename to tests/functional/config/nix-with-substituters.conf diff --git a/tests/db-migration.sh b/tests/functional/db-migration.sh similarity index 100% rename from tests/db-migration.sh rename to tests/functional/db-migration.sh diff --git a/tests/dependencies.builder0.sh b/tests/functional/dependencies.builder0.sh similarity index 100% rename from tests/dependencies.builder0.sh rename to tests/functional/dependencies.builder0.sh diff --git a/tests/dependencies.nix b/tests/functional/dependencies.nix similarity index 100% rename from tests/dependencies.nix rename to tests/functional/dependencies.nix diff --git a/tests/dependencies.sh b/tests/functional/dependencies.sh similarity index 100% rename from tests/dependencies.sh rename to tests/functional/dependencies.sh diff --git a/tests/derivation-json.sh b/tests/functional/derivation-json.sh similarity index 100% rename from tests/derivation-json.sh rename to tests/functional/derivation-json.sh diff --git a/tests/dummy b/tests/functional/dummy similarity index 100% rename from tests/dummy rename to tests/functional/dummy diff --git a/tests/dump-db.sh b/tests/functional/dump-db.sh similarity index 100% rename from tests/dump-db.sh rename to tests/functional/dump-db.sh diff --git a/tests/dyn-drv/build-built-drv.sh b/tests/functional/dyn-drv/build-built-drv.sh similarity index 100% rename from tests/dyn-drv/build-built-drv.sh rename to tests/functional/dyn-drv/build-built-drv.sh diff --git a/tests/dyn-drv/common.sh b/tests/functional/dyn-drv/common.sh similarity index 100% rename from tests/dyn-drv/common.sh rename to tests/functional/dyn-drv/common.sh diff --git a/tests/dyn-drv/config.nix.in b/tests/functional/dyn-drv/config.nix.in similarity index 100% rename from tests/dyn-drv/config.nix.in rename to tests/functional/dyn-drv/config.nix.in diff --git a/tests/dyn-drv/dep-built-drv.sh b/tests/functional/dyn-drv/dep-built-drv.sh similarity index 100% rename from tests/dyn-drv/dep-built-drv.sh rename to tests/functional/dyn-drv/dep-built-drv.sh diff --git a/tests/dyn-drv/eval-outputOf.sh b/tests/functional/dyn-drv/eval-outputOf.sh similarity index 100% rename from tests/dyn-drv/eval-outputOf.sh rename to tests/functional/dyn-drv/eval-outputOf.sh diff --git a/tests/dyn-drv/local.mk b/tests/functional/dyn-drv/local.mk similarity index 87% rename from tests/dyn-drv/local.mk rename to tests/functional/dyn-drv/local.mk index 6b435499b..c87534944 100644 --- a/tests/dyn-drv/local.mk +++ b/tests/functional/dyn-drv/local.mk @@ -12,4 +12,4 @@ clean-files += \ $(d)/config.nix test-deps += \ - tests/dyn-drv/config.nix + tests/functional/dyn-drv/config.nix diff --git a/tests/dyn-drv/old-daemon-error-hack.nix b/tests/functional/dyn-drv/old-daemon-error-hack.nix similarity index 100% rename from tests/dyn-drv/old-daemon-error-hack.nix rename to tests/functional/dyn-drv/old-daemon-error-hack.nix diff --git a/tests/dyn-drv/old-daemon-error-hack.sh b/tests/functional/dyn-drv/old-daemon-error-hack.sh similarity index 100% rename from tests/dyn-drv/old-daemon-error-hack.sh rename to tests/functional/dyn-drv/old-daemon-error-hack.sh diff --git a/tests/dyn-drv/recursive-mod-json.nix b/tests/functional/dyn-drv/recursive-mod-json.nix similarity index 100% rename from tests/dyn-drv/recursive-mod-json.nix rename to tests/functional/dyn-drv/recursive-mod-json.nix diff --git a/tests/dyn-drv/recursive-mod-json.sh b/tests/functional/dyn-drv/recursive-mod-json.sh similarity index 100% rename from tests/dyn-drv/recursive-mod-json.sh rename to tests/functional/dyn-drv/recursive-mod-json.sh diff --git a/tests/dyn-drv/text-hashed-output.nix b/tests/functional/dyn-drv/text-hashed-output.nix similarity index 100% rename from tests/dyn-drv/text-hashed-output.nix rename to tests/functional/dyn-drv/text-hashed-output.nix diff --git a/tests/dyn-drv/text-hashed-output.sh b/tests/functional/dyn-drv/text-hashed-output.sh similarity index 100% rename from tests/dyn-drv/text-hashed-output.sh rename to tests/functional/dyn-drv/text-hashed-output.sh diff --git a/tests/eval-store.sh b/tests/functional/eval-store.sh similarity index 100% rename from tests/eval-store.sh rename to tests/functional/eval-store.sh diff --git a/tests/eval.nix b/tests/functional/eval.nix similarity index 100% rename from tests/eval.nix rename to tests/functional/eval.nix diff --git a/tests/eval.sh b/tests/functional/eval.sh similarity index 100% rename from tests/eval.sh rename to tests/functional/eval.sh diff --git a/tests/experimental-features.sh b/tests/functional/experimental-features.sh similarity index 100% rename from tests/experimental-features.sh rename to tests/functional/experimental-features.sh diff --git a/tests/export-graph.nix b/tests/functional/export-graph.nix similarity index 100% rename from tests/export-graph.nix rename to tests/functional/export-graph.nix diff --git a/tests/export-graph.sh b/tests/functional/export-graph.sh similarity index 100% rename from tests/export-graph.sh rename to tests/functional/export-graph.sh diff --git a/tests/export.sh b/tests/functional/export.sh similarity index 100% rename from tests/export.sh rename to tests/functional/export.sh diff --git a/tests/failing.nix b/tests/functional/failing.nix similarity index 100% rename from tests/failing.nix rename to tests/functional/failing.nix diff --git a/tests/fetchClosure.sh b/tests/functional/fetchClosure.sh similarity index 100% rename from tests/fetchClosure.sh rename to tests/functional/fetchClosure.sh diff --git a/tests/fetchGit.sh b/tests/functional/fetchGit.sh similarity index 100% rename from tests/fetchGit.sh rename to tests/functional/fetchGit.sh diff --git a/tests/fetchGitRefs.sh b/tests/functional/fetchGitRefs.sh similarity index 100% rename from tests/fetchGitRefs.sh rename to tests/functional/fetchGitRefs.sh diff --git a/tests/fetchGitSubmodules.sh b/tests/functional/fetchGitSubmodules.sh similarity index 100% rename from tests/fetchGitSubmodules.sh rename to tests/functional/fetchGitSubmodules.sh diff --git a/tests/fetchMercurial.sh b/tests/functional/fetchMercurial.sh similarity index 100% rename from tests/fetchMercurial.sh rename to tests/functional/fetchMercurial.sh diff --git a/tests/fetchPath.sh b/tests/functional/fetchPath.sh similarity index 100% rename from tests/fetchPath.sh rename to tests/functional/fetchPath.sh diff --git a/tests/fetchTree-file.sh b/tests/functional/fetchTree-file.sh similarity index 100% rename from tests/fetchTree-file.sh rename to tests/functional/fetchTree-file.sh diff --git a/tests/fetchurl.sh b/tests/functional/fetchurl.sh similarity index 100% rename from tests/fetchurl.sh rename to tests/functional/fetchurl.sh diff --git a/tests/filter-source.nix b/tests/functional/filter-source.nix similarity index 100% rename from tests/filter-source.nix rename to tests/functional/filter-source.nix diff --git a/tests/filter-source.sh b/tests/functional/filter-source.sh similarity index 100% rename from tests/filter-source.sh rename to tests/functional/filter-source.sh diff --git a/tests/fixed.builder1.sh b/tests/functional/fixed.builder1.sh similarity index 100% rename from tests/fixed.builder1.sh rename to tests/functional/fixed.builder1.sh diff --git a/tests/fixed.builder2.sh b/tests/functional/fixed.builder2.sh similarity index 100% rename from tests/fixed.builder2.sh rename to tests/functional/fixed.builder2.sh diff --git a/tests/fixed.nix b/tests/functional/fixed.nix similarity index 100% rename from tests/fixed.nix rename to tests/functional/fixed.nix diff --git a/tests/fixed.sh b/tests/functional/fixed.sh similarity index 100% rename from tests/fixed.sh rename to tests/functional/fixed.sh diff --git a/tests/flakes/absolute-paths.sh b/tests/functional/flakes/absolute-paths.sh similarity index 100% rename from tests/flakes/absolute-paths.sh rename to tests/functional/flakes/absolute-paths.sh diff --git a/tests/flakes/build-paths.sh b/tests/functional/flakes/build-paths.sh similarity index 100% rename from tests/flakes/build-paths.sh rename to tests/functional/flakes/build-paths.sh diff --git a/tests/flakes/bundle.sh b/tests/functional/flakes/bundle.sh similarity index 100% rename from tests/flakes/bundle.sh rename to tests/functional/flakes/bundle.sh diff --git a/tests/flakes/check.sh b/tests/functional/flakes/check.sh similarity index 100% rename from tests/flakes/check.sh rename to tests/functional/flakes/check.sh diff --git a/tests/flakes/circular.sh b/tests/functional/flakes/circular.sh similarity index 100% rename from tests/flakes/circular.sh rename to tests/functional/flakes/circular.sh diff --git a/tests/flakes/common.sh b/tests/functional/flakes/common.sh similarity index 100% rename from tests/flakes/common.sh rename to tests/functional/flakes/common.sh diff --git a/tests/flakes/config.sh b/tests/functional/flakes/config.sh similarity index 100% rename from tests/flakes/config.sh rename to tests/functional/flakes/config.sh diff --git a/tests/flakes/flake-in-submodule.sh b/tests/functional/flakes/flake-in-submodule.sh similarity index 100% rename from tests/flakes/flake-in-submodule.sh rename to tests/functional/flakes/flake-in-submodule.sh diff --git a/tests/flakes/flakes.sh b/tests/functional/flakes/flakes.sh similarity index 100% rename from tests/flakes/flakes.sh rename to tests/functional/flakes/flakes.sh diff --git a/tests/flakes/follow-paths.sh b/tests/functional/flakes/follow-paths.sh similarity index 100% rename from tests/flakes/follow-paths.sh rename to tests/functional/flakes/follow-paths.sh diff --git a/tests/flakes/init.sh b/tests/functional/flakes/init.sh similarity index 100% rename from tests/flakes/init.sh rename to tests/functional/flakes/init.sh diff --git a/tests/flakes/inputs.sh b/tests/functional/flakes/inputs.sh similarity index 100% rename from tests/flakes/inputs.sh rename to tests/functional/flakes/inputs.sh diff --git a/tests/flakes/mercurial.sh b/tests/functional/flakes/mercurial.sh similarity index 100% rename from tests/flakes/mercurial.sh rename to tests/functional/flakes/mercurial.sh diff --git a/tests/flakes/run.sh b/tests/functional/flakes/run.sh similarity index 100% rename from tests/flakes/run.sh rename to tests/functional/flakes/run.sh diff --git a/tests/flakes/search-root.sh b/tests/functional/flakes/search-root.sh similarity index 100% rename from tests/flakes/search-root.sh rename to tests/functional/flakes/search-root.sh diff --git a/tests/flakes/show.sh b/tests/functional/flakes/show.sh similarity index 100% rename from tests/flakes/show.sh rename to tests/functional/flakes/show.sh diff --git a/tests/flakes/unlocked-override.sh b/tests/functional/flakes/unlocked-override.sh similarity index 100% rename from tests/flakes/unlocked-override.sh rename to tests/functional/flakes/unlocked-override.sh diff --git a/tests/fmt.sh b/tests/functional/fmt.sh similarity index 100% rename from tests/fmt.sh rename to tests/functional/fmt.sh diff --git a/tests/fmt.simple.sh b/tests/functional/fmt.simple.sh similarity index 100% rename from tests/fmt.simple.sh rename to tests/functional/fmt.simple.sh diff --git a/tests/function-trace.sh b/tests/functional/function-trace.sh similarity index 100% rename from tests/function-trace.sh rename to tests/functional/function-trace.sh diff --git a/tests/gc-auto.sh b/tests/functional/gc-auto.sh similarity index 100% rename from tests/gc-auto.sh rename to tests/functional/gc-auto.sh diff --git a/tests/gc-concurrent.builder.sh b/tests/functional/gc-concurrent.builder.sh similarity index 100% rename from tests/gc-concurrent.builder.sh rename to tests/functional/gc-concurrent.builder.sh diff --git a/tests/gc-concurrent.nix b/tests/functional/gc-concurrent.nix similarity index 100% rename from tests/gc-concurrent.nix rename to tests/functional/gc-concurrent.nix diff --git a/tests/gc-concurrent.sh b/tests/functional/gc-concurrent.sh similarity index 100% rename from tests/gc-concurrent.sh rename to tests/functional/gc-concurrent.sh diff --git a/tests/gc-concurrent2.builder.sh b/tests/functional/gc-concurrent2.builder.sh similarity index 100% rename from tests/gc-concurrent2.builder.sh rename to tests/functional/gc-concurrent2.builder.sh diff --git a/tests/gc-non-blocking.sh b/tests/functional/gc-non-blocking.sh similarity index 100% rename from tests/gc-non-blocking.sh rename to tests/functional/gc-non-blocking.sh diff --git a/tests/gc-runtime.nix b/tests/functional/gc-runtime.nix similarity index 100% rename from tests/gc-runtime.nix rename to tests/functional/gc-runtime.nix diff --git a/tests/gc-runtime.sh b/tests/functional/gc-runtime.sh similarity index 100% rename from tests/gc-runtime.sh rename to tests/functional/gc-runtime.sh diff --git a/tests/gc.sh b/tests/functional/gc.sh similarity index 100% rename from tests/gc.sh rename to tests/functional/gc.sh diff --git a/tests/hash-check.nix b/tests/functional/hash-check.nix similarity index 100% rename from tests/hash-check.nix rename to tests/functional/hash-check.nix diff --git a/tests/hash.sh b/tests/functional/hash.sh similarity index 100% rename from tests/hash.sh rename to tests/functional/hash.sh diff --git a/tests/hermetic.nix b/tests/functional/hermetic.nix similarity index 100% rename from tests/hermetic.nix rename to tests/functional/hermetic.nix diff --git a/tests/import-derivation.nix b/tests/functional/import-derivation.nix similarity index 100% rename from tests/import-derivation.nix rename to tests/functional/import-derivation.nix diff --git a/tests/import-derivation.sh b/tests/functional/import-derivation.sh similarity index 100% rename from tests/import-derivation.sh rename to tests/functional/import-derivation.sh diff --git a/tests/impure-derivations.nix b/tests/functional/impure-derivations.nix similarity index 100% rename from tests/impure-derivations.nix rename to tests/functional/impure-derivations.nix diff --git a/tests/impure-derivations.sh b/tests/functional/impure-derivations.sh similarity index 100% rename from tests/impure-derivations.sh rename to tests/functional/impure-derivations.sh diff --git a/tests/init.sh b/tests/functional/init.sh similarity index 100% rename from tests/init.sh rename to tests/functional/init.sh diff --git a/tests/install-darwin.sh b/tests/functional/install-darwin.sh similarity index 100% rename from tests/install-darwin.sh rename to tests/functional/install-darwin.sh diff --git a/tests/lang-test-infra.sh b/tests/functional/lang-test-infra.sh similarity index 100% rename from tests/lang-test-infra.sh rename to tests/functional/lang-test-infra.sh diff --git a/tests/lang.sh b/tests/functional/lang.sh similarity index 98% rename from tests/lang.sh rename to tests/functional/lang.sh index 75dbbc38e..f4760eced 100755 --- a/tests/lang.sh +++ b/tests/functional/lang.sh @@ -134,7 +134,7 @@ else echo '' echo 'You can rerun this test with:' echo '' - echo ' _NIX_TEST_ACCEPT=1 make tests/lang.sh.test' + echo ' _NIX_TEST_ACCEPT=1 make tests/functional/lang.sh.test' echo '' echo 'to regenerate the files containing the expected output,' echo 'and then view the git diff to decide whether a change is' diff --git a/tests/lang/binary-data b/tests/functional/lang/binary-data similarity index 100% rename from tests/lang/binary-data rename to tests/functional/lang/binary-data diff --git a/tests/lang/data b/tests/functional/lang/data similarity index 100% rename from tests/lang/data rename to tests/functional/lang/data diff --git a/tests/lang/dir1/a.nix b/tests/functional/lang/dir1/a.nix similarity index 100% rename from tests/lang/dir1/a.nix rename to tests/functional/lang/dir1/a.nix diff --git a/tests/lang/dir2/a.nix b/tests/functional/lang/dir2/a.nix similarity index 100% rename from tests/lang/dir2/a.nix rename to tests/functional/lang/dir2/a.nix diff --git a/tests/lang/dir2/b.nix b/tests/functional/lang/dir2/b.nix similarity index 100% rename from tests/lang/dir2/b.nix rename to tests/functional/lang/dir2/b.nix diff --git a/tests/lang/dir3/a.nix b/tests/functional/lang/dir3/a.nix similarity index 100% rename from tests/lang/dir3/a.nix rename to tests/functional/lang/dir3/a.nix diff --git a/tests/lang/dir3/b.nix b/tests/functional/lang/dir3/b.nix similarity index 100% rename from tests/lang/dir3/b.nix rename to tests/functional/lang/dir3/b.nix diff --git a/tests/lang/dir3/c.nix b/tests/functional/lang/dir3/c.nix similarity index 100% rename from tests/lang/dir3/c.nix rename to tests/functional/lang/dir3/c.nix diff --git a/tests/lang/dir4/a.nix b/tests/functional/lang/dir4/a.nix similarity index 100% rename from tests/lang/dir4/a.nix rename to tests/functional/lang/dir4/a.nix diff --git a/tests/lang/dir4/c.nix b/tests/functional/lang/dir4/c.nix similarity index 100% rename from tests/lang/dir4/c.nix rename to tests/functional/lang/dir4/c.nix diff --git a/tests/lang/empty.exp b/tests/functional/lang/empty.exp similarity index 100% rename from tests/lang/empty.exp rename to tests/functional/lang/empty.exp diff --git a/tests/lang/eval-fail-abort.err.exp b/tests/functional/lang/eval-fail-abort.err.exp similarity index 100% rename from tests/lang/eval-fail-abort.err.exp rename to tests/functional/lang/eval-fail-abort.err.exp diff --git a/tests/lang/eval-fail-abort.nix b/tests/functional/lang/eval-fail-abort.nix similarity index 100% rename from tests/lang/eval-fail-abort.nix rename to tests/functional/lang/eval-fail-abort.nix diff --git a/tests/lang/eval-fail-antiquoted-path.err.exp b/tests/functional/lang/eval-fail-antiquoted-path.err.exp similarity index 100% rename from tests/lang/eval-fail-antiquoted-path.err.exp rename to tests/functional/lang/eval-fail-antiquoted-path.err.exp diff --git a/tests/lang/eval-fail-assert.err.exp b/tests/functional/lang/eval-fail-assert.err.exp similarity index 100% rename from tests/lang/eval-fail-assert.err.exp rename to tests/functional/lang/eval-fail-assert.err.exp diff --git a/tests/lang/eval-fail-assert.nix b/tests/functional/lang/eval-fail-assert.nix similarity index 100% rename from tests/lang/eval-fail-assert.nix rename to tests/functional/lang/eval-fail-assert.nix diff --git a/tests/lang/eval-fail-bad-antiquote-1.err.exp b/tests/functional/lang/eval-fail-bad-antiquote-1.err.exp similarity index 100% rename from tests/lang/eval-fail-bad-antiquote-1.err.exp rename to tests/functional/lang/eval-fail-bad-antiquote-1.err.exp diff --git a/tests/lang/eval-fail-bad-antiquote-2.err.exp b/tests/functional/lang/eval-fail-bad-antiquote-2.err.exp similarity index 100% rename from tests/lang/eval-fail-bad-antiquote-2.err.exp rename to tests/functional/lang/eval-fail-bad-antiquote-2.err.exp diff --git a/tests/lang/eval-fail-bad-antiquote-3.err.exp b/tests/functional/lang/eval-fail-bad-antiquote-3.err.exp similarity index 100% rename from tests/lang/eval-fail-bad-antiquote-3.err.exp rename to tests/functional/lang/eval-fail-bad-antiquote-3.err.exp diff --git a/tests/lang/eval-fail-bad-string-interpolation-1.err.exp b/tests/functional/lang/eval-fail-bad-string-interpolation-1.err.exp similarity index 100% rename from tests/lang/eval-fail-bad-string-interpolation-1.err.exp rename to tests/functional/lang/eval-fail-bad-string-interpolation-1.err.exp diff --git a/tests/lang/eval-fail-bad-string-interpolation-1.nix b/tests/functional/lang/eval-fail-bad-string-interpolation-1.nix similarity index 100% rename from tests/lang/eval-fail-bad-string-interpolation-1.nix rename to tests/functional/lang/eval-fail-bad-string-interpolation-1.nix diff --git a/tests/lang/eval-fail-bad-string-interpolation-2.err.exp b/tests/functional/lang/eval-fail-bad-string-interpolation-2.err.exp similarity index 100% rename from tests/lang/eval-fail-bad-string-interpolation-2.err.exp rename to tests/functional/lang/eval-fail-bad-string-interpolation-2.err.exp diff --git a/tests/lang/eval-fail-bad-string-interpolation-2.nix b/tests/functional/lang/eval-fail-bad-string-interpolation-2.nix similarity index 100% rename from tests/lang/eval-fail-bad-string-interpolation-2.nix rename to tests/functional/lang/eval-fail-bad-string-interpolation-2.nix diff --git a/tests/lang/eval-fail-bad-string-interpolation-3.err.exp b/tests/functional/lang/eval-fail-bad-string-interpolation-3.err.exp similarity index 100% rename from tests/lang/eval-fail-bad-string-interpolation-3.err.exp rename to tests/functional/lang/eval-fail-bad-string-interpolation-3.err.exp diff --git a/tests/lang/eval-fail-bad-string-interpolation-3.nix b/tests/functional/lang/eval-fail-bad-string-interpolation-3.nix similarity index 100% rename from tests/lang/eval-fail-bad-string-interpolation-3.nix rename to tests/functional/lang/eval-fail-bad-string-interpolation-3.nix diff --git a/tests/lang/eval-fail-blackhole.err.exp b/tests/functional/lang/eval-fail-blackhole.err.exp similarity index 100% rename from tests/lang/eval-fail-blackhole.err.exp rename to tests/functional/lang/eval-fail-blackhole.err.exp diff --git a/tests/lang/eval-fail-blackhole.nix b/tests/functional/lang/eval-fail-blackhole.nix similarity index 100% rename from tests/lang/eval-fail-blackhole.nix rename to tests/functional/lang/eval-fail-blackhole.nix diff --git a/tests/lang/eval-fail-deepseq.err.exp b/tests/functional/lang/eval-fail-deepseq.err.exp similarity index 100% rename from tests/lang/eval-fail-deepseq.err.exp rename to tests/functional/lang/eval-fail-deepseq.err.exp diff --git a/tests/lang/eval-fail-deepseq.nix b/tests/functional/lang/eval-fail-deepseq.nix similarity index 100% rename from tests/lang/eval-fail-deepseq.nix rename to tests/functional/lang/eval-fail-deepseq.nix diff --git a/tests/lang/eval-fail-dup-dynamic-attrs.err.exp b/tests/functional/lang/eval-fail-dup-dynamic-attrs.err.exp similarity index 100% rename from tests/lang/eval-fail-dup-dynamic-attrs.err.exp rename to tests/functional/lang/eval-fail-dup-dynamic-attrs.err.exp diff --git a/tests/lang/eval-fail-dup-dynamic-attrs.nix b/tests/functional/lang/eval-fail-dup-dynamic-attrs.nix similarity index 100% rename from tests/lang/eval-fail-dup-dynamic-attrs.nix rename to tests/functional/lang/eval-fail-dup-dynamic-attrs.nix diff --git a/tests/lang/eval-fail-foldlStrict-strict-op-application.err.exp b/tests/functional/lang/eval-fail-foldlStrict-strict-op-application.err.exp similarity index 100% rename from tests/lang/eval-fail-foldlStrict-strict-op-application.err.exp rename to tests/functional/lang/eval-fail-foldlStrict-strict-op-application.err.exp diff --git a/tests/lang/eval-fail-foldlStrict-strict-op-application.nix b/tests/functional/lang/eval-fail-foldlStrict-strict-op-application.nix similarity index 100% rename from tests/lang/eval-fail-foldlStrict-strict-op-application.nix rename to tests/functional/lang/eval-fail-foldlStrict-strict-op-application.nix diff --git a/tests/lang/eval-fail-fromTOML-timestamps.err.exp b/tests/functional/lang/eval-fail-fromTOML-timestamps.err.exp similarity index 100% rename from tests/lang/eval-fail-fromTOML-timestamps.err.exp rename to tests/functional/lang/eval-fail-fromTOML-timestamps.err.exp diff --git a/tests/lang/eval-fail-fromTOML-timestamps.nix b/tests/functional/lang/eval-fail-fromTOML-timestamps.nix similarity index 100% rename from tests/lang/eval-fail-fromTOML-timestamps.nix rename to tests/functional/lang/eval-fail-fromTOML-timestamps.nix diff --git a/tests/lang/eval-fail-hashfile-missing.err.exp b/tests/functional/lang/eval-fail-hashfile-missing.err.exp similarity index 100% rename from tests/lang/eval-fail-hashfile-missing.err.exp rename to tests/functional/lang/eval-fail-hashfile-missing.err.exp diff --git a/tests/lang/eval-fail-hashfile-missing.nix b/tests/functional/lang/eval-fail-hashfile-missing.nix similarity index 100% rename from tests/lang/eval-fail-hashfile-missing.nix rename to tests/functional/lang/eval-fail-hashfile-missing.nix diff --git a/tests/lang/eval-fail-list.err.exp b/tests/functional/lang/eval-fail-list.err.exp similarity index 100% rename from tests/lang/eval-fail-list.err.exp rename to tests/functional/lang/eval-fail-list.err.exp diff --git a/tests/lang/eval-fail-list.nix b/tests/functional/lang/eval-fail-list.nix similarity index 100% rename from tests/lang/eval-fail-list.nix rename to tests/functional/lang/eval-fail-list.nix diff --git a/tests/lang/eval-fail-missing-arg.err.exp b/tests/functional/lang/eval-fail-missing-arg.err.exp similarity index 100% rename from tests/lang/eval-fail-missing-arg.err.exp rename to tests/functional/lang/eval-fail-missing-arg.err.exp diff --git a/tests/lang/eval-fail-missing-arg.nix b/tests/functional/lang/eval-fail-missing-arg.nix similarity index 100% rename from tests/lang/eval-fail-missing-arg.nix rename to tests/functional/lang/eval-fail-missing-arg.nix diff --git a/tests/lang/eval-fail-nonexist-path.err.exp b/tests/functional/lang/eval-fail-nonexist-path.err.exp similarity index 100% rename from tests/lang/eval-fail-nonexist-path.err.exp rename to tests/functional/lang/eval-fail-nonexist-path.err.exp diff --git a/tests/lang/eval-fail-nonexist-path.nix b/tests/functional/lang/eval-fail-nonexist-path.nix similarity index 100% rename from tests/lang/eval-fail-nonexist-path.nix rename to tests/functional/lang/eval-fail-nonexist-path.nix diff --git a/tests/lang/eval-fail-path-slash.err.exp b/tests/functional/lang/eval-fail-path-slash.err.exp similarity index 100% rename from tests/lang/eval-fail-path-slash.err.exp rename to tests/functional/lang/eval-fail-path-slash.err.exp diff --git a/tests/lang/eval-fail-path-slash.nix b/tests/functional/lang/eval-fail-path-slash.nix similarity index 100% rename from tests/lang/eval-fail-path-slash.nix rename to tests/functional/lang/eval-fail-path-slash.nix diff --git a/tests/lang/eval-fail-recursion.err.exp b/tests/functional/lang/eval-fail-recursion.err.exp similarity index 100% rename from tests/lang/eval-fail-recursion.err.exp rename to tests/functional/lang/eval-fail-recursion.err.exp diff --git a/tests/lang/eval-fail-recursion.nix b/tests/functional/lang/eval-fail-recursion.nix similarity index 100% rename from tests/lang/eval-fail-recursion.nix rename to tests/functional/lang/eval-fail-recursion.nix diff --git a/tests/lang/eval-fail-remove.err.exp b/tests/functional/lang/eval-fail-remove.err.exp similarity index 100% rename from tests/lang/eval-fail-remove.err.exp rename to tests/functional/lang/eval-fail-remove.err.exp diff --git a/tests/lang/eval-fail-remove.nix b/tests/functional/lang/eval-fail-remove.nix similarity index 100% rename from tests/lang/eval-fail-remove.nix rename to tests/functional/lang/eval-fail-remove.nix diff --git a/tests/lang/eval-fail-scope-5.err.exp b/tests/functional/lang/eval-fail-scope-5.err.exp similarity index 100% rename from tests/lang/eval-fail-scope-5.err.exp rename to tests/functional/lang/eval-fail-scope-5.err.exp diff --git a/tests/lang/eval-fail-scope-5.nix b/tests/functional/lang/eval-fail-scope-5.nix similarity index 100% rename from tests/lang/eval-fail-scope-5.nix rename to tests/functional/lang/eval-fail-scope-5.nix diff --git a/tests/lang/eval-fail-seq.err.exp b/tests/functional/lang/eval-fail-seq.err.exp similarity index 100% rename from tests/lang/eval-fail-seq.err.exp rename to tests/functional/lang/eval-fail-seq.err.exp diff --git a/tests/lang/eval-fail-seq.nix b/tests/functional/lang/eval-fail-seq.nix similarity index 100% rename from tests/lang/eval-fail-seq.nix rename to tests/functional/lang/eval-fail-seq.nix diff --git a/tests/lang/eval-fail-set-override.err.exp b/tests/functional/lang/eval-fail-set-override.err.exp similarity index 100% rename from tests/lang/eval-fail-set-override.err.exp rename to tests/functional/lang/eval-fail-set-override.err.exp diff --git a/tests/lang/eval-fail-set-override.nix b/tests/functional/lang/eval-fail-set-override.nix similarity index 100% rename from tests/lang/eval-fail-set-override.nix rename to tests/functional/lang/eval-fail-set-override.nix diff --git a/tests/lang/eval-fail-set.err.exp b/tests/functional/lang/eval-fail-set.err.exp similarity index 100% rename from tests/lang/eval-fail-set.err.exp rename to tests/functional/lang/eval-fail-set.err.exp diff --git a/tests/lang/eval-fail-set.nix b/tests/functional/lang/eval-fail-set.nix similarity index 100% rename from tests/lang/eval-fail-set.nix rename to tests/functional/lang/eval-fail-set.nix diff --git a/tests/lang/eval-fail-substring.err.exp b/tests/functional/lang/eval-fail-substring.err.exp similarity index 100% rename from tests/lang/eval-fail-substring.err.exp rename to tests/functional/lang/eval-fail-substring.err.exp diff --git a/tests/lang/eval-fail-substring.nix b/tests/functional/lang/eval-fail-substring.nix similarity index 100% rename from tests/lang/eval-fail-substring.nix rename to tests/functional/lang/eval-fail-substring.nix diff --git a/tests/lang/eval-fail-to-path.err.exp b/tests/functional/lang/eval-fail-to-path.err.exp similarity index 100% rename from tests/lang/eval-fail-to-path.err.exp rename to tests/functional/lang/eval-fail-to-path.err.exp diff --git a/tests/lang/eval-fail-to-path.nix b/tests/functional/lang/eval-fail-to-path.nix similarity index 100% rename from tests/lang/eval-fail-to-path.nix rename to tests/functional/lang/eval-fail-to-path.nix diff --git a/tests/lang/eval-fail-toJSON.err.exp b/tests/functional/lang/eval-fail-toJSON.err.exp similarity index 100% rename from tests/lang/eval-fail-toJSON.err.exp rename to tests/functional/lang/eval-fail-toJSON.err.exp diff --git a/tests/lang/eval-fail-toJSON.nix b/tests/functional/lang/eval-fail-toJSON.nix similarity index 100% rename from tests/lang/eval-fail-toJSON.nix rename to tests/functional/lang/eval-fail-toJSON.nix diff --git a/tests/lang/eval-fail-undeclared-arg.err.exp b/tests/functional/lang/eval-fail-undeclared-arg.err.exp similarity index 100% rename from tests/lang/eval-fail-undeclared-arg.err.exp rename to tests/functional/lang/eval-fail-undeclared-arg.err.exp diff --git a/tests/lang/eval-fail-undeclared-arg.nix b/tests/functional/lang/eval-fail-undeclared-arg.nix similarity index 100% rename from tests/lang/eval-fail-undeclared-arg.nix rename to tests/functional/lang/eval-fail-undeclared-arg.nix diff --git a/tests/lang/eval-okay-any-all.exp b/tests/functional/lang/eval-okay-any-all.exp similarity index 100% rename from tests/lang/eval-okay-any-all.exp rename to tests/functional/lang/eval-okay-any-all.exp diff --git a/tests/lang/eval-okay-any-all.nix b/tests/functional/lang/eval-okay-any-all.nix similarity index 100% rename from tests/lang/eval-okay-any-all.nix rename to tests/functional/lang/eval-okay-any-all.nix diff --git a/tests/lang/eval-okay-arithmetic.exp b/tests/functional/lang/eval-okay-arithmetic.exp similarity index 100% rename from tests/lang/eval-okay-arithmetic.exp rename to tests/functional/lang/eval-okay-arithmetic.exp diff --git a/tests/lang/eval-okay-arithmetic.nix b/tests/functional/lang/eval-okay-arithmetic.nix similarity index 100% rename from tests/lang/eval-okay-arithmetic.nix rename to tests/functional/lang/eval-okay-arithmetic.nix diff --git a/tests/lang/eval-okay-attrnames.exp b/tests/functional/lang/eval-okay-attrnames.exp similarity index 100% rename from tests/lang/eval-okay-attrnames.exp rename to tests/functional/lang/eval-okay-attrnames.exp diff --git a/tests/lang/eval-okay-attrnames.nix b/tests/functional/lang/eval-okay-attrnames.nix similarity index 100% rename from tests/lang/eval-okay-attrnames.nix rename to tests/functional/lang/eval-okay-attrnames.nix diff --git a/tests/lang/eval-okay-attrs.exp b/tests/functional/lang/eval-okay-attrs.exp similarity index 100% rename from tests/lang/eval-okay-attrs.exp rename to tests/functional/lang/eval-okay-attrs.exp diff --git a/tests/lang/eval-okay-attrs.nix b/tests/functional/lang/eval-okay-attrs.nix similarity index 100% rename from tests/lang/eval-okay-attrs.nix rename to tests/functional/lang/eval-okay-attrs.nix diff --git a/tests/lang/eval-okay-attrs2.exp b/tests/functional/lang/eval-okay-attrs2.exp similarity index 100% rename from tests/lang/eval-okay-attrs2.exp rename to tests/functional/lang/eval-okay-attrs2.exp diff --git a/tests/lang/eval-okay-attrs2.nix b/tests/functional/lang/eval-okay-attrs2.nix similarity index 100% rename from tests/lang/eval-okay-attrs2.nix rename to tests/functional/lang/eval-okay-attrs2.nix diff --git a/tests/lang/eval-okay-attrs3.exp b/tests/functional/lang/eval-okay-attrs3.exp similarity index 100% rename from tests/lang/eval-okay-attrs3.exp rename to tests/functional/lang/eval-okay-attrs3.exp diff --git a/tests/lang/eval-okay-attrs3.nix b/tests/functional/lang/eval-okay-attrs3.nix similarity index 100% rename from tests/lang/eval-okay-attrs3.nix rename to tests/functional/lang/eval-okay-attrs3.nix diff --git a/tests/lang/eval-okay-attrs4.exp b/tests/functional/lang/eval-okay-attrs4.exp similarity index 100% rename from tests/lang/eval-okay-attrs4.exp rename to tests/functional/lang/eval-okay-attrs4.exp diff --git a/tests/lang/eval-okay-attrs4.nix b/tests/functional/lang/eval-okay-attrs4.nix similarity index 100% rename from tests/lang/eval-okay-attrs4.nix rename to tests/functional/lang/eval-okay-attrs4.nix diff --git a/tests/lang/eval-okay-attrs5.exp b/tests/functional/lang/eval-okay-attrs5.exp similarity index 100% rename from tests/lang/eval-okay-attrs5.exp rename to tests/functional/lang/eval-okay-attrs5.exp diff --git a/tests/lang/eval-okay-attrs5.nix b/tests/functional/lang/eval-okay-attrs5.nix similarity index 100% rename from tests/lang/eval-okay-attrs5.nix rename to tests/functional/lang/eval-okay-attrs5.nix diff --git a/tests/lang/eval-okay-attrs6.exp b/tests/functional/lang/eval-okay-attrs6.exp similarity index 100% rename from tests/lang/eval-okay-attrs6.exp rename to tests/functional/lang/eval-okay-attrs6.exp diff --git a/tests/lang/eval-okay-attrs6.nix b/tests/functional/lang/eval-okay-attrs6.nix similarity index 100% rename from tests/lang/eval-okay-attrs6.nix rename to tests/functional/lang/eval-okay-attrs6.nix diff --git a/tests/lang/eval-okay-autoargs.exp b/tests/functional/lang/eval-okay-autoargs.exp similarity index 100% rename from tests/lang/eval-okay-autoargs.exp rename to tests/functional/lang/eval-okay-autoargs.exp diff --git a/tests/lang/eval-okay-autoargs.flags b/tests/functional/lang/eval-okay-autoargs.flags similarity index 100% rename from tests/lang/eval-okay-autoargs.flags rename to tests/functional/lang/eval-okay-autoargs.flags diff --git a/tests/lang/eval-okay-autoargs.nix b/tests/functional/lang/eval-okay-autoargs.nix similarity index 100% rename from tests/lang/eval-okay-autoargs.nix rename to tests/functional/lang/eval-okay-autoargs.nix diff --git a/tests/lang/eval-okay-backslash-newline-1.exp b/tests/functional/lang/eval-okay-backslash-newline-1.exp similarity index 100% rename from tests/lang/eval-okay-backslash-newline-1.exp rename to tests/functional/lang/eval-okay-backslash-newline-1.exp diff --git a/tests/lang/eval-okay-backslash-newline-1.nix b/tests/functional/lang/eval-okay-backslash-newline-1.nix similarity index 100% rename from tests/lang/eval-okay-backslash-newline-1.nix rename to tests/functional/lang/eval-okay-backslash-newline-1.nix diff --git a/tests/lang/eval-okay-backslash-newline-2.exp b/tests/functional/lang/eval-okay-backslash-newline-2.exp similarity index 100% rename from tests/lang/eval-okay-backslash-newline-2.exp rename to tests/functional/lang/eval-okay-backslash-newline-2.exp diff --git a/tests/lang/eval-okay-backslash-newline-2.nix b/tests/functional/lang/eval-okay-backslash-newline-2.nix similarity index 100% rename from tests/lang/eval-okay-backslash-newline-2.nix rename to tests/functional/lang/eval-okay-backslash-newline-2.nix diff --git a/tests/lang/eval-okay-builtins-add.exp b/tests/functional/lang/eval-okay-builtins-add.exp similarity index 100% rename from tests/lang/eval-okay-builtins-add.exp rename to tests/functional/lang/eval-okay-builtins-add.exp diff --git a/tests/lang/eval-okay-builtins-add.nix b/tests/functional/lang/eval-okay-builtins-add.nix similarity index 100% rename from tests/lang/eval-okay-builtins-add.nix rename to tests/functional/lang/eval-okay-builtins-add.nix diff --git a/tests/lang/eval-okay-builtins.exp b/tests/functional/lang/eval-okay-builtins.exp similarity index 100% rename from tests/lang/eval-okay-builtins.exp rename to tests/functional/lang/eval-okay-builtins.exp diff --git a/tests/lang/eval-okay-builtins.nix b/tests/functional/lang/eval-okay-builtins.nix similarity index 100% rename from tests/lang/eval-okay-builtins.nix rename to tests/functional/lang/eval-okay-builtins.nix diff --git a/tests/lang/eval-okay-callable-attrs.exp b/tests/functional/lang/eval-okay-callable-attrs.exp similarity index 100% rename from tests/lang/eval-okay-callable-attrs.exp rename to tests/functional/lang/eval-okay-callable-attrs.exp diff --git a/tests/lang/eval-okay-callable-attrs.nix b/tests/functional/lang/eval-okay-callable-attrs.nix similarity index 100% rename from tests/lang/eval-okay-callable-attrs.nix rename to tests/functional/lang/eval-okay-callable-attrs.nix diff --git a/tests/lang/eval-okay-catattrs.exp b/tests/functional/lang/eval-okay-catattrs.exp similarity index 100% rename from tests/lang/eval-okay-catattrs.exp rename to tests/functional/lang/eval-okay-catattrs.exp diff --git a/tests/lang/eval-okay-catattrs.nix b/tests/functional/lang/eval-okay-catattrs.nix similarity index 100% rename from tests/lang/eval-okay-catattrs.nix rename to tests/functional/lang/eval-okay-catattrs.nix diff --git a/tests/lang/eval-okay-closure.exp b/tests/functional/lang/eval-okay-closure.exp similarity index 100% rename from tests/lang/eval-okay-closure.exp rename to tests/functional/lang/eval-okay-closure.exp diff --git a/tests/lang/eval-okay-closure.exp.xml b/tests/functional/lang/eval-okay-closure.exp.xml similarity index 100% rename from tests/lang/eval-okay-closure.exp.xml rename to tests/functional/lang/eval-okay-closure.exp.xml diff --git a/tests/lang/eval-okay-closure.nix b/tests/functional/lang/eval-okay-closure.nix similarity index 100% rename from tests/lang/eval-okay-closure.nix rename to tests/functional/lang/eval-okay-closure.nix diff --git a/tests/lang/eval-okay-comments.exp b/tests/functional/lang/eval-okay-comments.exp similarity index 100% rename from tests/lang/eval-okay-comments.exp rename to tests/functional/lang/eval-okay-comments.exp diff --git a/tests/lang/eval-okay-comments.nix b/tests/functional/lang/eval-okay-comments.nix similarity index 100% rename from tests/lang/eval-okay-comments.nix rename to tests/functional/lang/eval-okay-comments.nix diff --git a/tests/lang/eval-okay-concat.exp b/tests/functional/lang/eval-okay-concat.exp similarity index 100% rename from tests/lang/eval-okay-concat.exp rename to tests/functional/lang/eval-okay-concat.exp diff --git a/tests/lang/eval-okay-concat.nix b/tests/functional/lang/eval-okay-concat.nix similarity index 100% rename from tests/lang/eval-okay-concat.nix rename to tests/functional/lang/eval-okay-concat.nix diff --git a/tests/lang/eval-okay-concatmap.exp b/tests/functional/lang/eval-okay-concatmap.exp similarity index 100% rename from tests/lang/eval-okay-concatmap.exp rename to tests/functional/lang/eval-okay-concatmap.exp diff --git a/tests/lang/eval-okay-concatmap.nix b/tests/functional/lang/eval-okay-concatmap.nix similarity index 100% rename from tests/lang/eval-okay-concatmap.nix rename to tests/functional/lang/eval-okay-concatmap.nix diff --git a/tests/lang/eval-okay-concatstringssep.exp b/tests/functional/lang/eval-okay-concatstringssep.exp similarity index 100% rename from tests/lang/eval-okay-concatstringssep.exp rename to tests/functional/lang/eval-okay-concatstringssep.exp diff --git a/tests/lang/eval-okay-concatstringssep.nix b/tests/functional/lang/eval-okay-concatstringssep.nix similarity index 100% rename from tests/lang/eval-okay-concatstringssep.nix rename to tests/functional/lang/eval-okay-concatstringssep.nix diff --git a/tests/lang/eval-okay-context-introspection.exp b/tests/functional/lang/eval-okay-context-introspection.exp similarity index 100% rename from tests/lang/eval-okay-context-introspection.exp rename to tests/functional/lang/eval-okay-context-introspection.exp diff --git a/tests/lang/eval-okay-context-introspection.nix b/tests/functional/lang/eval-okay-context-introspection.nix similarity index 100% rename from tests/lang/eval-okay-context-introspection.nix rename to tests/functional/lang/eval-okay-context-introspection.nix diff --git a/tests/lang/eval-okay-context.exp b/tests/functional/lang/eval-okay-context.exp similarity index 100% rename from tests/lang/eval-okay-context.exp rename to tests/functional/lang/eval-okay-context.exp diff --git a/tests/lang/eval-okay-context.nix b/tests/functional/lang/eval-okay-context.nix similarity index 100% rename from tests/lang/eval-okay-context.nix rename to tests/functional/lang/eval-okay-context.nix diff --git a/tests/lang/eval-okay-curpos.exp b/tests/functional/lang/eval-okay-curpos.exp similarity index 100% rename from tests/lang/eval-okay-curpos.exp rename to tests/functional/lang/eval-okay-curpos.exp diff --git a/tests/lang/eval-okay-curpos.nix b/tests/functional/lang/eval-okay-curpos.nix similarity index 100% rename from tests/lang/eval-okay-curpos.nix rename to tests/functional/lang/eval-okay-curpos.nix diff --git a/tests/lang/eval-okay-deepseq.exp b/tests/functional/lang/eval-okay-deepseq.exp similarity index 100% rename from tests/lang/eval-okay-deepseq.exp rename to tests/functional/lang/eval-okay-deepseq.exp diff --git a/tests/lang/eval-okay-deepseq.nix b/tests/functional/lang/eval-okay-deepseq.nix similarity index 100% rename from tests/lang/eval-okay-deepseq.nix rename to tests/functional/lang/eval-okay-deepseq.nix diff --git a/tests/lang/eval-okay-delayed-with-inherit.exp b/tests/functional/lang/eval-okay-delayed-with-inherit.exp similarity index 100% rename from tests/lang/eval-okay-delayed-with-inherit.exp rename to tests/functional/lang/eval-okay-delayed-with-inherit.exp diff --git a/tests/lang/eval-okay-delayed-with-inherit.nix b/tests/functional/lang/eval-okay-delayed-with-inherit.nix similarity index 100% rename from tests/lang/eval-okay-delayed-with-inherit.nix rename to tests/functional/lang/eval-okay-delayed-with-inherit.nix diff --git a/tests/lang/eval-okay-delayed-with.exp b/tests/functional/lang/eval-okay-delayed-with.exp similarity index 100% rename from tests/lang/eval-okay-delayed-with.exp rename to tests/functional/lang/eval-okay-delayed-with.exp diff --git a/tests/lang/eval-okay-delayed-with.nix b/tests/functional/lang/eval-okay-delayed-with.nix similarity index 100% rename from tests/lang/eval-okay-delayed-with.nix rename to tests/functional/lang/eval-okay-delayed-with.nix diff --git a/tests/lang/eval-okay-dynamic-attrs-2.exp b/tests/functional/lang/eval-okay-dynamic-attrs-2.exp similarity index 100% rename from tests/lang/eval-okay-dynamic-attrs-2.exp rename to tests/functional/lang/eval-okay-dynamic-attrs-2.exp diff --git a/tests/lang/eval-okay-dynamic-attrs-2.nix b/tests/functional/lang/eval-okay-dynamic-attrs-2.nix similarity index 100% rename from tests/lang/eval-okay-dynamic-attrs-2.nix rename to tests/functional/lang/eval-okay-dynamic-attrs-2.nix diff --git a/tests/lang/eval-okay-dynamic-attrs-bare.exp b/tests/functional/lang/eval-okay-dynamic-attrs-bare.exp similarity index 100% rename from tests/lang/eval-okay-dynamic-attrs-bare.exp rename to tests/functional/lang/eval-okay-dynamic-attrs-bare.exp diff --git a/tests/lang/eval-okay-dynamic-attrs-bare.nix b/tests/functional/lang/eval-okay-dynamic-attrs-bare.nix similarity index 100% rename from tests/lang/eval-okay-dynamic-attrs-bare.nix rename to tests/functional/lang/eval-okay-dynamic-attrs-bare.nix diff --git a/tests/lang/eval-okay-dynamic-attrs.exp b/tests/functional/lang/eval-okay-dynamic-attrs.exp similarity index 100% rename from tests/lang/eval-okay-dynamic-attrs.exp rename to tests/functional/lang/eval-okay-dynamic-attrs.exp diff --git a/tests/lang/eval-okay-dynamic-attrs.nix b/tests/functional/lang/eval-okay-dynamic-attrs.nix similarity index 100% rename from tests/lang/eval-okay-dynamic-attrs.nix rename to tests/functional/lang/eval-okay-dynamic-attrs.nix diff --git a/tests/lang/eval-okay-elem.exp b/tests/functional/lang/eval-okay-elem.exp similarity index 100% rename from tests/lang/eval-okay-elem.exp rename to tests/functional/lang/eval-okay-elem.exp diff --git a/tests/lang/eval-okay-elem.nix b/tests/functional/lang/eval-okay-elem.nix similarity index 100% rename from tests/lang/eval-okay-elem.nix rename to tests/functional/lang/eval-okay-elem.nix diff --git a/tests/lang/eval-okay-empty-args.exp b/tests/functional/lang/eval-okay-empty-args.exp similarity index 100% rename from tests/lang/eval-okay-empty-args.exp rename to tests/functional/lang/eval-okay-empty-args.exp diff --git a/tests/lang/eval-okay-empty-args.nix b/tests/functional/lang/eval-okay-empty-args.nix similarity index 100% rename from tests/lang/eval-okay-empty-args.nix rename to tests/functional/lang/eval-okay-empty-args.nix diff --git a/tests/lang/eval-okay-eq-derivations.exp b/tests/functional/lang/eval-okay-eq-derivations.exp similarity index 100% rename from tests/lang/eval-okay-eq-derivations.exp rename to tests/functional/lang/eval-okay-eq-derivations.exp diff --git a/tests/lang/eval-okay-eq-derivations.nix b/tests/functional/lang/eval-okay-eq-derivations.nix similarity index 100% rename from tests/lang/eval-okay-eq-derivations.nix rename to tests/functional/lang/eval-okay-eq-derivations.nix diff --git a/tests/lang/eval-okay-eq.exp b/tests/functional/lang/eval-okay-eq.exp similarity index 100% rename from tests/lang/eval-okay-eq.exp rename to tests/functional/lang/eval-okay-eq.exp diff --git a/tests/lang/eval-okay-eq.nix b/tests/functional/lang/eval-okay-eq.nix similarity index 100% rename from tests/lang/eval-okay-eq.nix rename to tests/functional/lang/eval-okay-eq.nix diff --git a/tests/lang/eval-okay-filter.exp b/tests/functional/lang/eval-okay-filter.exp similarity index 100% rename from tests/lang/eval-okay-filter.exp rename to tests/functional/lang/eval-okay-filter.exp diff --git a/tests/lang/eval-okay-filter.nix b/tests/functional/lang/eval-okay-filter.nix similarity index 100% rename from tests/lang/eval-okay-filter.nix rename to tests/functional/lang/eval-okay-filter.nix diff --git a/tests/lang/eval-okay-flake-ref-to-string.exp b/tests/functional/lang/eval-okay-flake-ref-to-string.exp similarity index 100% rename from tests/lang/eval-okay-flake-ref-to-string.exp rename to tests/functional/lang/eval-okay-flake-ref-to-string.exp diff --git a/tests/lang/eval-okay-flake-ref-to-string.nix b/tests/functional/lang/eval-okay-flake-ref-to-string.nix similarity index 100% rename from tests/lang/eval-okay-flake-ref-to-string.nix rename to tests/functional/lang/eval-okay-flake-ref-to-string.nix diff --git a/tests/lang/eval-okay-flatten.exp b/tests/functional/lang/eval-okay-flatten.exp similarity index 100% rename from tests/lang/eval-okay-flatten.exp rename to tests/functional/lang/eval-okay-flatten.exp diff --git a/tests/lang/eval-okay-flatten.nix b/tests/functional/lang/eval-okay-flatten.nix similarity index 100% rename from tests/lang/eval-okay-flatten.nix rename to tests/functional/lang/eval-okay-flatten.nix diff --git a/tests/lang/eval-okay-float.exp b/tests/functional/lang/eval-okay-float.exp similarity index 100% rename from tests/lang/eval-okay-float.exp rename to tests/functional/lang/eval-okay-float.exp diff --git a/tests/lang/eval-okay-float.nix b/tests/functional/lang/eval-okay-float.nix similarity index 100% rename from tests/lang/eval-okay-float.nix rename to tests/functional/lang/eval-okay-float.nix diff --git a/tests/lang/eval-okay-floor-ceil.exp b/tests/functional/lang/eval-okay-floor-ceil.exp similarity index 100% rename from tests/lang/eval-okay-floor-ceil.exp rename to tests/functional/lang/eval-okay-floor-ceil.exp diff --git a/tests/lang/eval-okay-floor-ceil.nix b/tests/functional/lang/eval-okay-floor-ceil.nix similarity index 100% rename from tests/lang/eval-okay-floor-ceil.nix rename to tests/functional/lang/eval-okay-floor-ceil.nix diff --git a/tests/lang/eval-okay-foldlStrict-lazy-elements.exp b/tests/functional/lang/eval-okay-foldlStrict-lazy-elements.exp similarity index 100% rename from tests/lang/eval-okay-foldlStrict-lazy-elements.exp rename to tests/functional/lang/eval-okay-foldlStrict-lazy-elements.exp diff --git a/tests/lang/eval-okay-foldlStrict-lazy-elements.nix b/tests/functional/lang/eval-okay-foldlStrict-lazy-elements.nix similarity index 100% rename from tests/lang/eval-okay-foldlStrict-lazy-elements.nix rename to tests/functional/lang/eval-okay-foldlStrict-lazy-elements.nix diff --git a/tests/lang/eval-okay-foldlStrict-lazy-initial-accumulator.exp b/tests/functional/lang/eval-okay-foldlStrict-lazy-initial-accumulator.exp similarity index 100% rename from tests/lang/eval-okay-foldlStrict-lazy-initial-accumulator.exp rename to tests/functional/lang/eval-okay-foldlStrict-lazy-initial-accumulator.exp diff --git a/tests/lang/eval-okay-foldlStrict-lazy-initial-accumulator.nix b/tests/functional/lang/eval-okay-foldlStrict-lazy-initial-accumulator.nix similarity index 100% rename from tests/lang/eval-okay-foldlStrict-lazy-initial-accumulator.nix rename to tests/functional/lang/eval-okay-foldlStrict-lazy-initial-accumulator.nix diff --git a/tests/lang/eval-okay-foldlStrict.exp b/tests/functional/lang/eval-okay-foldlStrict.exp similarity index 100% rename from tests/lang/eval-okay-foldlStrict.exp rename to tests/functional/lang/eval-okay-foldlStrict.exp diff --git a/tests/lang/eval-okay-foldlStrict.nix b/tests/functional/lang/eval-okay-foldlStrict.nix similarity index 100% rename from tests/lang/eval-okay-foldlStrict.nix rename to tests/functional/lang/eval-okay-foldlStrict.nix diff --git a/tests/lang/eval-okay-fromTOML-timestamps.exp b/tests/functional/lang/eval-okay-fromTOML-timestamps.exp similarity index 100% rename from tests/lang/eval-okay-fromTOML-timestamps.exp rename to tests/functional/lang/eval-okay-fromTOML-timestamps.exp diff --git a/tests/lang/eval-okay-fromTOML-timestamps.flags b/tests/functional/lang/eval-okay-fromTOML-timestamps.flags similarity index 100% rename from tests/lang/eval-okay-fromTOML-timestamps.flags rename to tests/functional/lang/eval-okay-fromTOML-timestamps.flags diff --git a/tests/lang/eval-okay-fromTOML-timestamps.nix b/tests/functional/lang/eval-okay-fromTOML-timestamps.nix similarity index 100% rename from tests/lang/eval-okay-fromTOML-timestamps.nix rename to tests/functional/lang/eval-okay-fromTOML-timestamps.nix diff --git a/tests/lang/eval-okay-fromTOML.exp b/tests/functional/lang/eval-okay-fromTOML.exp similarity index 100% rename from tests/lang/eval-okay-fromTOML.exp rename to tests/functional/lang/eval-okay-fromTOML.exp diff --git a/tests/lang/eval-okay-fromTOML.nix b/tests/functional/lang/eval-okay-fromTOML.nix similarity index 100% rename from tests/lang/eval-okay-fromTOML.nix rename to tests/functional/lang/eval-okay-fromTOML.nix diff --git a/tests/lang/eval-okay-fromjson-escapes.exp b/tests/functional/lang/eval-okay-fromjson-escapes.exp similarity index 100% rename from tests/lang/eval-okay-fromjson-escapes.exp rename to tests/functional/lang/eval-okay-fromjson-escapes.exp diff --git a/tests/lang/eval-okay-fromjson-escapes.nix b/tests/functional/lang/eval-okay-fromjson-escapes.nix similarity index 100% rename from tests/lang/eval-okay-fromjson-escapes.nix rename to tests/functional/lang/eval-okay-fromjson-escapes.nix diff --git a/tests/lang/eval-okay-fromjson.exp b/tests/functional/lang/eval-okay-fromjson.exp similarity index 100% rename from tests/lang/eval-okay-fromjson.exp rename to tests/functional/lang/eval-okay-fromjson.exp diff --git a/tests/lang/eval-okay-fromjson.nix b/tests/functional/lang/eval-okay-fromjson.nix similarity index 100% rename from tests/lang/eval-okay-fromjson.nix rename to tests/functional/lang/eval-okay-fromjson.nix diff --git a/tests/lang/eval-okay-functionargs.exp b/tests/functional/lang/eval-okay-functionargs.exp similarity index 100% rename from tests/lang/eval-okay-functionargs.exp rename to tests/functional/lang/eval-okay-functionargs.exp diff --git a/tests/lang/eval-okay-functionargs.exp.xml b/tests/functional/lang/eval-okay-functionargs.exp.xml similarity index 100% rename from tests/lang/eval-okay-functionargs.exp.xml rename to tests/functional/lang/eval-okay-functionargs.exp.xml diff --git a/tests/lang/eval-okay-functionargs.nix b/tests/functional/lang/eval-okay-functionargs.nix similarity index 100% rename from tests/lang/eval-okay-functionargs.nix rename to tests/functional/lang/eval-okay-functionargs.nix diff --git a/tests/lang/eval-okay-getattrpos-functionargs.exp b/tests/functional/lang/eval-okay-getattrpos-functionargs.exp similarity index 100% rename from tests/lang/eval-okay-getattrpos-functionargs.exp rename to tests/functional/lang/eval-okay-getattrpos-functionargs.exp diff --git a/tests/lang/eval-okay-getattrpos-functionargs.nix b/tests/functional/lang/eval-okay-getattrpos-functionargs.nix similarity index 100% rename from tests/lang/eval-okay-getattrpos-functionargs.nix rename to tests/functional/lang/eval-okay-getattrpos-functionargs.nix diff --git a/tests/lang/eval-okay-getattrpos-undefined.exp b/tests/functional/lang/eval-okay-getattrpos-undefined.exp similarity index 100% rename from tests/lang/eval-okay-getattrpos-undefined.exp rename to tests/functional/lang/eval-okay-getattrpos-undefined.exp diff --git a/tests/lang/eval-okay-getattrpos-undefined.nix b/tests/functional/lang/eval-okay-getattrpos-undefined.nix similarity index 100% rename from tests/lang/eval-okay-getattrpos-undefined.nix rename to tests/functional/lang/eval-okay-getattrpos-undefined.nix diff --git a/tests/lang/eval-okay-getattrpos.exp b/tests/functional/lang/eval-okay-getattrpos.exp similarity index 100% rename from tests/lang/eval-okay-getattrpos.exp rename to tests/functional/lang/eval-okay-getattrpos.exp diff --git a/tests/lang/eval-okay-getattrpos.nix b/tests/functional/lang/eval-okay-getattrpos.nix similarity index 100% rename from tests/lang/eval-okay-getattrpos.nix rename to tests/functional/lang/eval-okay-getattrpos.nix diff --git a/tests/lang/eval-okay-getenv.exp b/tests/functional/lang/eval-okay-getenv.exp similarity index 100% rename from tests/lang/eval-okay-getenv.exp rename to tests/functional/lang/eval-okay-getenv.exp diff --git a/tests/lang/eval-okay-getenv.nix b/tests/functional/lang/eval-okay-getenv.nix similarity index 100% rename from tests/lang/eval-okay-getenv.nix rename to tests/functional/lang/eval-okay-getenv.nix diff --git a/tests/lang/eval-okay-groupBy.exp b/tests/functional/lang/eval-okay-groupBy.exp similarity index 100% rename from tests/lang/eval-okay-groupBy.exp rename to tests/functional/lang/eval-okay-groupBy.exp diff --git a/tests/lang/eval-okay-groupBy.nix b/tests/functional/lang/eval-okay-groupBy.nix similarity index 100% rename from tests/lang/eval-okay-groupBy.nix rename to tests/functional/lang/eval-okay-groupBy.nix diff --git a/tests/lang/eval-okay-hash.exp b/tests/functional/lang/eval-okay-hash.exp similarity index 100% rename from tests/lang/eval-okay-hash.exp rename to tests/functional/lang/eval-okay-hash.exp diff --git a/tests/lang/eval-okay-hashfile.exp b/tests/functional/lang/eval-okay-hashfile.exp similarity index 100% rename from tests/lang/eval-okay-hashfile.exp rename to tests/functional/lang/eval-okay-hashfile.exp diff --git a/tests/lang/eval-okay-hashfile.nix b/tests/functional/lang/eval-okay-hashfile.nix similarity index 100% rename from tests/lang/eval-okay-hashfile.nix rename to tests/functional/lang/eval-okay-hashfile.nix diff --git a/tests/lang/eval-okay-hashstring.exp b/tests/functional/lang/eval-okay-hashstring.exp similarity index 100% rename from tests/lang/eval-okay-hashstring.exp rename to tests/functional/lang/eval-okay-hashstring.exp diff --git a/tests/lang/eval-okay-hashstring.nix b/tests/functional/lang/eval-okay-hashstring.nix similarity index 100% rename from tests/lang/eval-okay-hashstring.nix rename to tests/functional/lang/eval-okay-hashstring.nix diff --git a/tests/lang/eval-okay-if.exp b/tests/functional/lang/eval-okay-if.exp similarity index 100% rename from tests/lang/eval-okay-if.exp rename to tests/functional/lang/eval-okay-if.exp diff --git a/tests/lang/eval-okay-if.nix b/tests/functional/lang/eval-okay-if.nix similarity index 100% rename from tests/lang/eval-okay-if.nix rename to tests/functional/lang/eval-okay-if.nix diff --git a/tests/lang/eval-okay-import.exp b/tests/functional/lang/eval-okay-import.exp similarity index 100% rename from tests/lang/eval-okay-import.exp rename to tests/functional/lang/eval-okay-import.exp diff --git a/tests/lang/eval-okay-import.nix b/tests/functional/lang/eval-okay-import.nix similarity index 100% rename from tests/lang/eval-okay-import.nix rename to tests/functional/lang/eval-okay-import.nix diff --git a/tests/lang/eval-okay-ind-string.exp b/tests/functional/lang/eval-okay-ind-string.exp similarity index 100% rename from tests/lang/eval-okay-ind-string.exp rename to tests/functional/lang/eval-okay-ind-string.exp diff --git a/tests/lang/eval-okay-ind-string.nix b/tests/functional/lang/eval-okay-ind-string.nix similarity index 100% rename from tests/lang/eval-okay-ind-string.nix rename to tests/functional/lang/eval-okay-ind-string.nix diff --git a/tests/lang/eval-okay-intersectAttrs.exp b/tests/functional/lang/eval-okay-intersectAttrs.exp similarity index 100% rename from tests/lang/eval-okay-intersectAttrs.exp rename to tests/functional/lang/eval-okay-intersectAttrs.exp diff --git a/tests/lang/eval-okay-intersectAttrs.nix b/tests/functional/lang/eval-okay-intersectAttrs.nix similarity index 100% rename from tests/lang/eval-okay-intersectAttrs.nix rename to tests/functional/lang/eval-okay-intersectAttrs.nix diff --git a/tests/lang/eval-okay-let.exp b/tests/functional/lang/eval-okay-let.exp similarity index 100% rename from tests/lang/eval-okay-let.exp rename to tests/functional/lang/eval-okay-let.exp diff --git a/tests/lang/eval-okay-let.nix b/tests/functional/lang/eval-okay-let.nix similarity index 100% rename from tests/lang/eval-okay-let.nix rename to tests/functional/lang/eval-okay-let.nix diff --git a/tests/lang/eval-okay-list.exp b/tests/functional/lang/eval-okay-list.exp similarity index 100% rename from tests/lang/eval-okay-list.exp rename to tests/functional/lang/eval-okay-list.exp diff --git a/tests/lang/eval-okay-list.nix b/tests/functional/lang/eval-okay-list.nix similarity index 100% rename from tests/lang/eval-okay-list.nix rename to tests/functional/lang/eval-okay-list.nix diff --git a/tests/lang/eval-okay-listtoattrs.exp b/tests/functional/lang/eval-okay-listtoattrs.exp similarity index 100% rename from tests/lang/eval-okay-listtoattrs.exp rename to tests/functional/lang/eval-okay-listtoattrs.exp diff --git a/tests/lang/eval-okay-listtoattrs.nix b/tests/functional/lang/eval-okay-listtoattrs.nix similarity index 100% rename from tests/lang/eval-okay-listtoattrs.nix rename to tests/functional/lang/eval-okay-listtoattrs.nix diff --git a/tests/lang/eval-okay-logic.exp b/tests/functional/lang/eval-okay-logic.exp similarity index 100% rename from tests/lang/eval-okay-logic.exp rename to tests/functional/lang/eval-okay-logic.exp diff --git a/tests/lang/eval-okay-logic.nix b/tests/functional/lang/eval-okay-logic.nix similarity index 100% rename from tests/lang/eval-okay-logic.nix rename to tests/functional/lang/eval-okay-logic.nix diff --git a/tests/lang/eval-okay-map.exp b/tests/functional/lang/eval-okay-map.exp similarity index 100% rename from tests/lang/eval-okay-map.exp rename to tests/functional/lang/eval-okay-map.exp diff --git a/tests/lang/eval-okay-map.nix b/tests/functional/lang/eval-okay-map.nix similarity index 100% rename from tests/lang/eval-okay-map.nix rename to tests/functional/lang/eval-okay-map.nix diff --git a/tests/lang/eval-okay-mapattrs.exp b/tests/functional/lang/eval-okay-mapattrs.exp similarity index 100% rename from tests/lang/eval-okay-mapattrs.exp rename to tests/functional/lang/eval-okay-mapattrs.exp diff --git a/tests/lang/eval-okay-mapattrs.nix b/tests/functional/lang/eval-okay-mapattrs.nix similarity index 100% rename from tests/lang/eval-okay-mapattrs.nix rename to tests/functional/lang/eval-okay-mapattrs.nix diff --git a/tests/lang/eval-okay-merge-dynamic-attrs.exp b/tests/functional/lang/eval-okay-merge-dynamic-attrs.exp similarity index 100% rename from tests/lang/eval-okay-merge-dynamic-attrs.exp rename to tests/functional/lang/eval-okay-merge-dynamic-attrs.exp diff --git a/tests/lang/eval-okay-merge-dynamic-attrs.nix b/tests/functional/lang/eval-okay-merge-dynamic-attrs.nix similarity index 100% rename from tests/lang/eval-okay-merge-dynamic-attrs.nix rename to tests/functional/lang/eval-okay-merge-dynamic-attrs.nix diff --git a/tests/lang/eval-okay-nested-with.exp b/tests/functional/lang/eval-okay-nested-with.exp similarity index 100% rename from tests/lang/eval-okay-nested-with.exp rename to tests/functional/lang/eval-okay-nested-with.exp diff --git a/tests/lang/eval-okay-nested-with.nix b/tests/functional/lang/eval-okay-nested-with.nix similarity index 100% rename from tests/lang/eval-okay-nested-with.nix rename to tests/functional/lang/eval-okay-nested-with.nix diff --git a/tests/lang/eval-okay-new-let.exp b/tests/functional/lang/eval-okay-new-let.exp similarity index 100% rename from tests/lang/eval-okay-new-let.exp rename to tests/functional/lang/eval-okay-new-let.exp diff --git a/tests/lang/eval-okay-new-let.nix b/tests/functional/lang/eval-okay-new-let.nix similarity index 100% rename from tests/lang/eval-okay-new-let.nix rename to tests/functional/lang/eval-okay-new-let.nix diff --git a/tests/lang/eval-okay-null-dynamic-attrs.exp b/tests/functional/lang/eval-okay-null-dynamic-attrs.exp similarity index 100% rename from tests/lang/eval-okay-null-dynamic-attrs.exp rename to tests/functional/lang/eval-okay-null-dynamic-attrs.exp diff --git a/tests/lang/eval-okay-null-dynamic-attrs.nix b/tests/functional/lang/eval-okay-null-dynamic-attrs.nix similarity index 100% rename from tests/lang/eval-okay-null-dynamic-attrs.nix rename to tests/functional/lang/eval-okay-null-dynamic-attrs.nix diff --git a/tests/lang/eval-okay-overrides.exp b/tests/functional/lang/eval-okay-overrides.exp similarity index 100% rename from tests/lang/eval-okay-overrides.exp rename to tests/functional/lang/eval-okay-overrides.exp diff --git a/tests/lang/eval-okay-overrides.nix b/tests/functional/lang/eval-okay-overrides.nix similarity index 100% rename from tests/lang/eval-okay-overrides.nix rename to tests/functional/lang/eval-okay-overrides.nix diff --git a/tests/lang/eval-okay-parse-flake-ref.exp b/tests/functional/lang/eval-okay-parse-flake-ref.exp similarity index 100% rename from tests/lang/eval-okay-parse-flake-ref.exp rename to tests/functional/lang/eval-okay-parse-flake-ref.exp diff --git a/tests/lang/eval-okay-parse-flake-ref.nix b/tests/functional/lang/eval-okay-parse-flake-ref.nix similarity index 100% rename from tests/lang/eval-okay-parse-flake-ref.nix rename to tests/functional/lang/eval-okay-parse-flake-ref.nix diff --git a/tests/lang/eval-okay-partition.exp b/tests/functional/lang/eval-okay-partition.exp similarity index 100% rename from tests/lang/eval-okay-partition.exp rename to tests/functional/lang/eval-okay-partition.exp diff --git a/tests/lang/eval-okay-partition.nix b/tests/functional/lang/eval-okay-partition.nix similarity index 100% rename from tests/lang/eval-okay-partition.nix rename to tests/functional/lang/eval-okay-partition.nix diff --git a/tests/lang/eval-okay-path-string-interpolation.exp b/tests/functional/lang/eval-okay-path-string-interpolation.exp similarity index 100% rename from tests/lang/eval-okay-path-string-interpolation.exp rename to tests/functional/lang/eval-okay-path-string-interpolation.exp diff --git a/tests/lang/eval-okay-path-string-interpolation.nix b/tests/functional/lang/eval-okay-path-string-interpolation.nix similarity index 100% rename from tests/lang/eval-okay-path-string-interpolation.nix rename to tests/functional/lang/eval-okay-path-string-interpolation.nix diff --git a/tests/lang/eval-okay-path.exp b/tests/functional/lang/eval-okay-path.exp similarity index 100% rename from tests/lang/eval-okay-path.exp rename to tests/functional/lang/eval-okay-path.exp diff --git a/tests/lang/eval-okay-path.nix b/tests/functional/lang/eval-okay-path.nix similarity index 100% rename from tests/lang/eval-okay-path.nix rename to tests/functional/lang/eval-okay-path.nix diff --git a/tests/lang/eval-okay-pathexists.exp b/tests/functional/lang/eval-okay-pathexists.exp similarity index 100% rename from tests/lang/eval-okay-pathexists.exp rename to tests/functional/lang/eval-okay-pathexists.exp diff --git a/tests/lang/eval-okay-pathexists.nix b/tests/functional/lang/eval-okay-pathexists.nix similarity index 100% rename from tests/lang/eval-okay-pathexists.nix rename to tests/functional/lang/eval-okay-pathexists.nix diff --git a/tests/lang/eval-okay-patterns.exp b/tests/functional/lang/eval-okay-patterns.exp similarity index 100% rename from tests/lang/eval-okay-patterns.exp rename to tests/functional/lang/eval-okay-patterns.exp diff --git a/tests/lang/eval-okay-patterns.nix b/tests/functional/lang/eval-okay-patterns.nix similarity index 100% rename from tests/lang/eval-okay-patterns.nix rename to tests/functional/lang/eval-okay-patterns.nix diff --git a/tests/lang/eval-okay-print.err.exp b/tests/functional/lang/eval-okay-print.err.exp similarity index 100% rename from tests/lang/eval-okay-print.err.exp rename to tests/functional/lang/eval-okay-print.err.exp diff --git a/tests/lang/eval-okay-print.exp b/tests/functional/lang/eval-okay-print.exp similarity index 100% rename from tests/lang/eval-okay-print.exp rename to tests/functional/lang/eval-okay-print.exp diff --git a/tests/lang/eval-okay-print.nix b/tests/functional/lang/eval-okay-print.nix similarity index 100% rename from tests/lang/eval-okay-print.nix rename to tests/functional/lang/eval-okay-print.nix diff --git a/tests/lang/eval-okay-readDir.exp b/tests/functional/lang/eval-okay-readDir.exp similarity index 100% rename from tests/lang/eval-okay-readDir.exp rename to tests/functional/lang/eval-okay-readDir.exp diff --git a/tests/lang/eval-okay-readDir.nix b/tests/functional/lang/eval-okay-readDir.nix similarity index 100% rename from tests/lang/eval-okay-readDir.nix rename to tests/functional/lang/eval-okay-readDir.nix diff --git a/tests/lang/eval-okay-readFileType.exp b/tests/functional/lang/eval-okay-readFileType.exp similarity index 100% rename from tests/lang/eval-okay-readFileType.exp rename to tests/functional/lang/eval-okay-readFileType.exp diff --git a/tests/lang/eval-okay-readFileType.nix b/tests/functional/lang/eval-okay-readFileType.nix similarity index 100% rename from tests/lang/eval-okay-readFileType.nix rename to tests/functional/lang/eval-okay-readFileType.nix diff --git a/tests/lang/eval-okay-readfile.exp b/tests/functional/lang/eval-okay-readfile.exp similarity index 100% rename from tests/lang/eval-okay-readfile.exp rename to tests/functional/lang/eval-okay-readfile.exp diff --git a/tests/lang/eval-okay-readfile.nix b/tests/functional/lang/eval-okay-readfile.nix similarity index 100% rename from tests/lang/eval-okay-readfile.nix rename to tests/functional/lang/eval-okay-readfile.nix diff --git a/tests/lang/eval-okay-redefine-builtin.exp b/tests/functional/lang/eval-okay-redefine-builtin.exp similarity index 100% rename from tests/lang/eval-okay-redefine-builtin.exp rename to tests/functional/lang/eval-okay-redefine-builtin.exp diff --git a/tests/lang/eval-okay-redefine-builtin.nix b/tests/functional/lang/eval-okay-redefine-builtin.nix similarity index 100% rename from tests/lang/eval-okay-redefine-builtin.nix rename to tests/functional/lang/eval-okay-redefine-builtin.nix diff --git a/tests/lang/eval-okay-regex-match.exp b/tests/functional/lang/eval-okay-regex-match.exp similarity index 100% rename from tests/lang/eval-okay-regex-match.exp rename to tests/functional/lang/eval-okay-regex-match.exp diff --git a/tests/lang/eval-okay-regex-match.nix b/tests/functional/lang/eval-okay-regex-match.nix similarity index 100% rename from tests/lang/eval-okay-regex-match.nix rename to tests/functional/lang/eval-okay-regex-match.nix diff --git a/tests/lang/eval-okay-regex-split.exp b/tests/functional/lang/eval-okay-regex-split.exp similarity index 100% rename from tests/lang/eval-okay-regex-split.exp rename to tests/functional/lang/eval-okay-regex-split.exp diff --git a/tests/lang/eval-okay-regex-split.nix b/tests/functional/lang/eval-okay-regex-split.nix similarity index 100% rename from tests/lang/eval-okay-regex-split.nix rename to tests/functional/lang/eval-okay-regex-split.nix diff --git a/tests/lang/eval-okay-regression-20220122.exp b/tests/functional/lang/eval-okay-regression-20220122.exp similarity index 100% rename from tests/lang/eval-okay-regression-20220122.exp rename to tests/functional/lang/eval-okay-regression-20220122.exp diff --git a/tests/lang/eval-okay-regression-20220122.nix b/tests/functional/lang/eval-okay-regression-20220122.nix similarity index 100% rename from tests/lang/eval-okay-regression-20220122.nix rename to tests/functional/lang/eval-okay-regression-20220122.nix diff --git a/tests/lang/eval-okay-regression-20220125.exp b/tests/functional/lang/eval-okay-regression-20220125.exp similarity index 100% rename from tests/lang/eval-okay-regression-20220125.exp rename to tests/functional/lang/eval-okay-regression-20220125.exp diff --git a/tests/lang/eval-okay-regression-20220125.nix b/tests/functional/lang/eval-okay-regression-20220125.nix similarity index 100% rename from tests/lang/eval-okay-regression-20220125.nix rename to tests/functional/lang/eval-okay-regression-20220125.nix diff --git a/tests/lang/eval-okay-remove.exp b/tests/functional/lang/eval-okay-remove.exp similarity index 100% rename from tests/lang/eval-okay-remove.exp rename to tests/functional/lang/eval-okay-remove.exp diff --git a/tests/lang/eval-okay-remove.nix b/tests/functional/lang/eval-okay-remove.nix similarity index 100% rename from tests/lang/eval-okay-remove.nix rename to tests/functional/lang/eval-okay-remove.nix diff --git a/tests/lang/eval-okay-replacestrings.exp b/tests/functional/lang/eval-okay-replacestrings.exp similarity index 100% rename from tests/lang/eval-okay-replacestrings.exp rename to tests/functional/lang/eval-okay-replacestrings.exp diff --git a/tests/lang/eval-okay-replacestrings.nix b/tests/functional/lang/eval-okay-replacestrings.nix similarity index 100% rename from tests/lang/eval-okay-replacestrings.nix rename to tests/functional/lang/eval-okay-replacestrings.nix diff --git a/tests/lang/eval-okay-scope-1.exp b/tests/functional/lang/eval-okay-scope-1.exp similarity index 100% rename from tests/lang/eval-okay-scope-1.exp rename to tests/functional/lang/eval-okay-scope-1.exp diff --git a/tests/lang/eval-okay-scope-1.nix b/tests/functional/lang/eval-okay-scope-1.nix similarity index 100% rename from tests/lang/eval-okay-scope-1.nix rename to tests/functional/lang/eval-okay-scope-1.nix diff --git a/tests/lang/eval-okay-scope-2.exp b/tests/functional/lang/eval-okay-scope-2.exp similarity index 100% rename from tests/lang/eval-okay-scope-2.exp rename to tests/functional/lang/eval-okay-scope-2.exp diff --git a/tests/lang/eval-okay-scope-2.nix b/tests/functional/lang/eval-okay-scope-2.nix similarity index 100% rename from tests/lang/eval-okay-scope-2.nix rename to tests/functional/lang/eval-okay-scope-2.nix diff --git a/tests/lang/eval-okay-scope-3.exp b/tests/functional/lang/eval-okay-scope-3.exp similarity index 100% rename from tests/lang/eval-okay-scope-3.exp rename to tests/functional/lang/eval-okay-scope-3.exp diff --git a/tests/lang/eval-okay-scope-3.nix b/tests/functional/lang/eval-okay-scope-3.nix similarity index 100% rename from tests/lang/eval-okay-scope-3.nix rename to tests/functional/lang/eval-okay-scope-3.nix diff --git a/tests/lang/eval-okay-scope-4.exp b/tests/functional/lang/eval-okay-scope-4.exp similarity index 100% rename from tests/lang/eval-okay-scope-4.exp rename to tests/functional/lang/eval-okay-scope-4.exp diff --git a/tests/lang/eval-okay-scope-4.nix b/tests/functional/lang/eval-okay-scope-4.nix similarity index 100% rename from tests/lang/eval-okay-scope-4.nix rename to tests/functional/lang/eval-okay-scope-4.nix diff --git a/tests/lang/eval-okay-scope-6.exp b/tests/functional/lang/eval-okay-scope-6.exp similarity index 100% rename from tests/lang/eval-okay-scope-6.exp rename to tests/functional/lang/eval-okay-scope-6.exp diff --git a/tests/lang/eval-okay-scope-6.nix b/tests/functional/lang/eval-okay-scope-6.nix similarity index 100% rename from tests/lang/eval-okay-scope-6.nix rename to tests/functional/lang/eval-okay-scope-6.nix diff --git a/tests/lang/eval-okay-scope-7.exp b/tests/functional/lang/eval-okay-scope-7.exp similarity index 100% rename from tests/lang/eval-okay-scope-7.exp rename to tests/functional/lang/eval-okay-scope-7.exp diff --git a/tests/lang/eval-okay-scope-7.nix b/tests/functional/lang/eval-okay-scope-7.nix similarity index 100% rename from tests/lang/eval-okay-scope-7.nix rename to tests/functional/lang/eval-okay-scope-7.nix diff --git a/tests/lang/eval-okay-search-path.exp b/tests/functional/lang/eval-okay-search-path.exp similarity index 100% rename from tests/lang/eval-okay-search-path.exp rename to tests/functional/lang/eval-okay-search-path.exp diff --git a/tests/lang/eval-okay-search-path.flags b/tests/functional/lang/eval-okay-search-path.flags similarity index 100% rename from tests/lang/eval-okay-search-path.flags rename to tests/functional/lang/eval-okay-search-path.flags diff --git a/tests/lang/eval-okay-search-path.nix b/tests/functional/lang/eval-okay-search-path.nix similarity index 100% rename from tests/lang/eval-okay-search-path.nix rename to tests/functional/lang/eval-okay-search-path.nix diff --git a/tests/lang/eval-okay-seq.exp b/tests/functional/lang/eval-okay-seq.exp similarity index 100% rename from tests/lang/eval-okay-seq.exp rename to tests/functional/lang/eval-okay-seq.exp diff --git a/tests/lang/eval-okay-seq.nix b/tests/functional/lang/eval-okay-seq.nix similarity index 100% rename from tests/lang/eval-okay-seq.nix rename to tests/functional/lang/eval-okay-seq.nix diff --git a/tests/lang/eval-okay-sort.exp b/tests/functional/lang/eval-okay-sort.exp similarity index 100% rename from tests/lang/eval-okay-sort.exp rename to tests/functional/lang/eval-okay-sort.exp diff --git a/tests/lang/eval-okay-sort.nix b/tests/functional/lang/eval-okay-sort.nix similarity index 100% rename from tests/lang/eval-okay-sort.nix rename to tests/functional/lang/eval-okay-sort.nix diff --git a/tests/lang/eval-okay-splitversion.exp b/tests/functional/lang/eval-okay-splitversion.exp similarity index 100% rename from tests/lang/eval-okay-splitversion.exp rename to tests/functional/lang/eval-okay-splitversion.exp diff --git a/tests/lang/eval-okay-splitversion.nix b/tests/functional/lang/eval-okay-splitversion.nix similarity index 100% rename from tests/lang/eval-okay-splitversion.nix rename to tests/functional/lang/eval-okay-splitversion.nix diff --git a/tests/lang/eval-okay-string.exp b/tests/functional/lang/eval-okay-string.exp similarity index 100% rename from tests/lang/eval-okay-string.exp rename to tests/functional/lang/eval-okay-string.exp diff --git a/tests/lang/eval-okay-string.nix b/tests/functional/lang/eval-okay-string.nix similarity index 100% rename from tests/lang/eval-okay-string.nix rename to tests/functional/lang/eval-okay-string.nix diff --git a/tests/lang/eval-okay-strings-as-attrs-names.exp b/tests/functional/lang/eval-okay-strings-as-attrs-names.exp similarity index 100% rename from tests/lang/eval-okay-strings-as-attrs-names.exp rename to tests/functional/lang/eval-okay-strings-as-attrs-names.exp diff --git a/tests/lang/eval-okay-strings-as-attrs-names.nix b/tests/functional/lang/eval-okay-strings-as-attrs-names.nix similarity index 100% rename from tests/lang/eval-okay-strings-as-attrs-names.nix rename to tests/functional/lang/eval-okay-strings-as-attrs-names.nix diff --git a/tests/lang/eval-okay-substring.exp b/tests/functional/lang/eval-okay-substring.exp similarity index 100% rename from tests/lang/eval-okay-substring.exp rename to tests/functional/lang/eval-okay-substring.exp diff --git a/tests/lang/eval-okay-substring.nix b/tests/functional/lang/eval-okay-substring.nix similarity index 100% rename from tests/lang/eval-okay-substring.nix rename to tests/functional/lang/eval-okay-substring.nix diff --git a/tests/lang/eval-okay-tail-call-1.exp-disabled b/tests/functional/lang/eval-okay-tail-call-1.exp-disabled similarity index 100% rename from tests/lang/eval-okay-tail-call-1.exp-disabled rename to tests/functional/lang/eval-okay-tail-call-1.exp-disabled diff --git a/tests/lang/eval-okay-tail-call-1.nix b/tests/functional/lang/eval-okay-tail-call-1.nix similarity index 100% rename from tests/lang/eval-okay-tail-call-1.nix rename to tests/functional/lang/eval-okay-tail-call-1.nix diff --git a/tests/lang/eval-okay-tojson.exp b/tests/functional/lang/eval-okay-tojson.exp similarity index 100% rename from tests/lang/eval-okay-tojson.exp rename to tests/functional/lang/eval-okay-tojson.exp diff --git a/tests/lang/eval-okay-tojson.nix b/tests/functional/lang/eval-okay-tojson.nix similarity index 100% rename from tests/lang/eval-okay-tojson.nix rename to tests/functional/lang/eval-okay-tojson.nix diff --git a/tests/lang/eval-okay-toxml.exp b/tests/functional/lang/eval-okay-toxml.exp similarity index 100% rename from tests/lang/eval-okay-toxml.exp rename to tests/functional/lang/eval-okay-toxml.exp diff --git a/tests/lang/eval-okay-toxml.nix b/tests/functional/lang/eval-okay-toxml.nix similarity index 100% rename from tests/lang/eval-okay-toxml.nix rename to tests/functional/lang/eval-okay-toxml.nix diff --git a/tests/lang/eval-okay-toxml2.exp b/tests/functional/lang/eval-okay-toxml2.exp similarity index 100% rename from tests/lang/eval-okay-toxml2.exp rename to tests/functional/lang/eval-okay-toxml2.exp diff --git a/tests/lang/eval-okay-toxml2.nix b/tests/functional/lang/eval-okay-toxml2.nix similarity index 100% rename from tests/lang/eval-okay-toxml2.nix rename to tests/functional/lang/eval-okay-toxml2.nix diff --git a/tests/lang/eval-okay-tryeval.exp b/tests/functional/lang/eval-okay-tryeval.exp similarity index 100% rename from tests/lang/eval-okay-tryeval.exp rename to tests/functional/lang/eval-okay-tryeval.exp diff --git a/tests/lang/eval-okay-tryeval.nix b/tests/functional/lang/eval-okay-tryeval.nix similarity index 100% rename from tests/lang/eval-okay-tryeval.nix rename to tests/functional/lang/eval-okay-tryeval.nix diff --git a/tests/lang/eval-okay-types.exp b/tests/functional/lang/eval-okay-types.exp similarity index 100% rename from tests/lang/eval-okay-types.exp rename to tests/functional/lang/eval-okay-types.exp diff --git a/tests/lang/eval-okay-types.nix b/tests/functional/lang/eval-okay-types.nix similarity index 100% rename from tests/lang/eval-okay-types.nix rename to tests/functional/lang/eval-okay-types.nix diff --git a/tests/lang/eval-okay-versions.exp b/tests/functional/lang/eval-okay-versions.exp similarity index 100% rename from tests/lang/eval-okay-versions.exp rename to tests/functional/lang/eval-okay-versions.exp diff --git a/tests/lang/eval-okay-versions.nix b/tests/functional/lang/eval-okay-versions.nix similarity index 100% rename from tests/lang/eval-okay-versions.nix rename to tests/functional/lang/eval-okay-versions.nix diff --git a/tests/lang/eval-okay-with.exp b/tests/functional/lang/eval-okay-with.exp similarity index 100% rename from tests/lang/eval-okay-with.exp rename to tests/functional/lang/eval-okay-with.exp diff --git a/tests/lang/eval-okay-with.nix b/tests/functional/lang/eval-okay-with.nix similarity index 100% rename from tests/lang/eval-okay-with.nix rename to tests/functional/lang/eval-okay-with.nix diff --git a/tests/lang/eval-okay-xml.exp.xml b/tests/functional/lang/eval-okay-xml.exp.xml similarity index 100% rename from tests/lang/eval-okay-xml.exp.xml rename to tests/functional/lang/eval-okay-xml.exp.xml diff --git a/tests/lang/eval-okay-xml.nix b/tests/functional/lang/eval-okay-xml.nix similarity index 100% rename from tests/lang/eval-okay-xml.nix rename to tests/functional/lang/eval-okay-xml.nix diff --git a/tests/lang/eval-okay-zipAttrsWith.exp b/tests/functional/lang/eval-okay-zipAttrsWith.exp similarity index 100% rename from tests/lang/eval-okay-zipAttrsWith.exp rename to tests/functional/lang/eval-okay-zipAttrsWith.exp diff --git a/tests/lang/eval-okay-zipAttrsWith.nix b/tests/functional/lang/eval-okay-zipAttrsWith.nix similarity index 100% rename from tests/lang/eval-okay-zipAttrsWith.nix rename to tests/functional/lang/eval-okay-zipAttrsWith.nix diff --git a/tests/lang/framework.sh b/tests/functional/lang/framework.sh similarity index 100% rename from tests/lang/framework.sh rename to tests/functional/lang/framework.sh diff --git a/tests/lang/imported.nix b/tests/functional/lang/imported.nix similarity index 100% rename from tests/lang/imported.nix rename to tests/functional/lang/imported.nix diff --git a/tests/lang/imported2.nix b/tests/functional/lang/imported2.nix similarity index 100% rename from tests/lang/imported2.nix rename to tests/functional/lang/imported2.nix diff --git a/tests/lang/lib.nix b/tests/functional/lang/lib.nix similarity index 100% rename from tests/lang/lib.nix rename to tests/functional/lang/lib.nix diff --git a/tests/lang/parse-fail-dup-attrs-1.err.exp b/tests/functional/lang/parse-fail-dup-attrs-1.err.exp similarity index 100% rename from tests/lang/parse-fail-dup-attrs-1.err.exp rename to tests/functional/lang/parse-fail-dup-attrs-1.err.exp diff --git a/tests/lang/parse-fail-dup-attrs-1.nix b/tests/functional/lang/parse-fail-dup-attrs-1.nix similarity index 100% rename from tests/lang/parse-fail-dup-attrs-1.nix rename to tests/functional/lang/parse-fail-dup-attrs-1.nix diff --git a/tests/lang/parse-fail-dup-attrs-2.err.exp b/tests/functional/lang/parse-fail-dup-attrs-2.err.exp similarity index 100% rename from tests/lang/parse-fail-dup-attrs-2.err.exp rename to tests/functional/lang/parse-fail-dup-attrs-2.err.exp diff --git a/tests/lang/parse-fail-dup-attrs-2.nix b/tests/functional/lang/parse-fail-dup-attrs-2.nix similarity index 100% rename from tests/lang/parse-fail-dup-attrs-2.nix rename to tests/functional/lang/parse-fail-dup-attrs-2.nix diff --git a/tests/lang/parse-fail-dup-attrs-3.err.exp b/tests/functional/lang/parse-fail-dup-attrs-3.err.exp similarity index 100% rename from tests/lang/parse-fail-dup-attrs-3.err.exp rename to tests/functional/lang/parse-fail-dup-attrs-3.err.exp diff --git a/tests/lang/parse-fail-dup-attrs-3.nix b/tests/functional/lang/parse-fail-dup-attrs-3.nix similarity index 100% rename from tests/lang/parse-fail-dup-attrs-3.nix rename to tests/functional/lang/parse-fail-dup-attrs-3.nix diff --git a/tests/lang/parse-fail-dup-attrs-4.err.exp b/tests/functional/lang/parse-fail-dup-attrs-4.err.exp similarity index 100% rename from tests/lang/parse-fail-dup-attrs-4.err.exp rename to tests/functional/lang/parse-fail-dup-attrs-4.err.exp diff --git a/tests/lang/parse-fail-dup-attrs-4.nix b/tests/functional/lang/parse-fail-dup-attrs-4.nix similarity index 100% rename from tests/lang/parse-fail-dup-attrs-4.nix rename to tests/functional/lang/parse-fail-dup-attrs-4.nix diff --git a/tests/lang/parse-fail-dup-attrs-6.err.exp b/tests/functional/lang/parse-fail-dup-attrs-6.err.exp similarity index 100% rename from tests/lang/parse-fail-dup-attrs-6.err.exp rename to tests/functional/lang/parse-fail-dup-attrs-6.err.exp diff --git a/tests/lang/parse-fail-dup-attrs-7.err.exp b/tests/functional/lang/parse-fail-dup-attrs-7.err.exp similarity index 100% rename from tests/lang/parse-fail-dup-attrs-7.err.exp rename to tests/functional/lang/parse-fail-dup-attrs-7.err.exp diff --git a/tests/lang/parse-fail-dup-attrs-7.nix b/tests/functional/lang/parse-fail-dup-attrs-7.nix similarity index 100% rename from tests/lang/parse-fail-dup-attrs-7.nix rename to tests/functional/lang/parse-fail-dup-attrs-7.nix diff --git a/tests/lang/parse-fail-dup-formals.err.exp b/tests/functional/lang/parse-fail-dup-formals.err.exp similarity index 100% rename from tests/lang/parse-fail-dup-formals.err.exp rename to tests/functional/lang/parse-fail-dup-formals.err.exp diff --git a/tests/lang/parse-fail-dup-formals.nix b/tests/functional/lang/parse-fail-dup-formals.nix similarity index 100% rename from tests/lang/parse-fail-dup-formals.nix rename to tests/functional/lang/parse-fail-dup-formals.nix diff --git a/tests/lang/parse-fail-eof-in-string.err.exp b/tests/functional/lang/parse-fail-eof-in-string.err.exp similarity index 100% rename from tests/lang/parse-fail-eof-in-string.err.exp rename to tests/functional/lang/parse-fail-eof-in-string.err.exp diff --git a/tests/lang/parse-fail-eof-in-string.nix b/tests/functional/lang/parse-fail-eof-in-string.nix similarity index 100% rename from tests/lang/parse-fail-eof-in-string.nix rename to tests/functional/lang/parse-fail-eof-in-string.nix diff --git a/tests/lang/parse-fail-mixed-nested-attrs1.err.exp b/tests/functional/lang/parse-fail-mixed-nested-attrs1.err.exp similarity index 100% rename from tests/lang/parse-fail-mixed-nested-attrs1.err.exp rename to tests/functional/lang/parse-fail-mixed-nested-attrs1.err.exp diff --git a/tests/lang/parse-fail-mixed-nested-attrs1.nix b/tests/functional/lang/parse-fail-mixed-nested-attrs1.nix similarity index 100% rename from tests/lang/parse-fail-mixed-nested-attrs1.nix rename to tests/functional/lang/parse-fail-mixed-nested-attrs1.nix diff --git a/tests/lang/parse-fail-mixed-nested-attrs2.err.exp b/tests/functional/lang/parse-fail-mixed-nested-attrs2.err.exp similarity index 100% rename from tests/lang/parse-fail-mixed-nested-attrs2.err.exp rename to tests/functional/lang/parse-fail-mixed-nested-attrs2.err.exp diff --git a/tests/lang/parse-fail-mixed-nested-attrs2.nix b/tests/functional/lang/parse-fail-mixed-nested-attrs2.nix similarity index 100% rename from tests/lang/parse-fail-mixed-nested-attrs2.nix rename to tests/functional/lang/parse-fail-mixed-nested-attrs2.nix diff --git a/tests/lang/parse-fail-patterns-1.err.exp b/tests/functional/lang/parse-fail-patterns-1.err.exp similarity index 100% rename from tests/lang/parse-fail-patterns-1.err.exp rename to tests/functional/lang/parse-fail-patterns-1.err.exp diff --git a/tests/lang/parse-fail-patterns-1.nix b/tests/functional/lang/parse-fail-patterns-1.nix similarity index 100% rename from tests/lang/parse-fail-patterns-1.nix rename to tests/functional/lang/parse-fail-patterns-1.nix diff --git a/tests/lang/parse-fail-regression-20060610.err.exp b/tests/functional/lang/parse-fail-regression-20060610.err.exp similarity index 100% rename from tests/lang/parse-fail-regression-20060610.err.exp rename to tests/functional/lang/parse-fail-regression-20060610.err.exp diff --git a/tests/lang/parse-fail-regression-20060610.nix b/tests/functional/lang/parse-fail-regression-20060610.nix similarity index 100% rename from tests/lang/parse-fail-regression-20060610.nix rename to tests/functional/lang/parse-fail-regression-20060610.nix diff --git a/tests/lang/parse-fail-undef-var-2.err.exp b/tests/functional/lang/parse-fail-undef-var-2.err.exp similarity index 100% rename from tests/lang/parse-fail-undef-var-2.err.exp rename to tests/functional/lang/parse-fail-undef-var-2.err.exp diff --git a/tests/lang/parse-fail-undef-var-2.nix b/tests/functional/lang/parse-fail-undef-var-2.nix similarity index 100% rename from tests/lang/parse-fail-undef-var-2.nix rename to tests/functional/lang/parse-fail-undef-var-2.nix diff --git a/tests/lang/parse-fail-undef-var.err.exp b/tests/functional/lang/parse-fail-undef-var.err.exp similarity index 100% rename from tests/lang/parse-fail-undef-var.err.exp rename to tests/functional/lang/parse-fail-undef-var.err.exp diff --git a/tests/lang/parse-fail-undef-var.nix b/tests/functional/lang/parse-fail-undef-var.nix similarity index 100% rename from tests/lang/parse-fail-undef-var.nix rename to tests/functional/lang/parse-fail-undef-var.nix diff --git a/tests/lang/parse-fail-utf8.err.exp b/tests/functional/lang/parse-fail-utf8.err.exp similarity index 100% rename from tests/lang/parse-fail-utf8.err.exp rename to tests/functional/lang/parse-fail-utf8.err.exp diff --git a/tests/lang/parse-fail-utf8.nix b/tests/functional/lang/parse-fail-utf8.nix similarity index 100% rename from tests/lang/parse-fail-utf8.nix rename to tests/functional/lang/parse-fail-utf8.nix diff --git a/tests/lang/parse-okay-1.exp b/tests/functional/lang/parse-okay-1.exp similarity index 100% rename from tests/lang/parse-okay-1.exp rename to tests/functional/lang/parse-okay-1.exp diff --git a/tests/lang/parse-okay-1.nix b/tests/functional/lang/parse-okay-1.nix similarity index 100% rename from tests/lang/parse-okay-1.nix rename to tests/functional/lang/parse-okay-1.nix diff --git a/tests/lang/parse-okay-crlf.exp b/tests/functional/lang/parse-okay-crlf.exp similarity index 100% rename from tests/lang/parse-okay-crlf.exp rename to tests/functional/lang/parse-okay-crlf.exp diff --git a/tests/lang/parse-okay-crlf.nix b/tests/functional/lang/parse-okay-crlf.nix similarity index 100% rename from tests/lang/parse-okay-crlf.nix rename to tests/functional/lang/parse-okay-crlf.nix diff --git a/tests/lang/parse-okay-dup-attrs-5.exp b/tests/functional/lang/parse-okay-dup-attrs-5.exp similarity index 100% rename from tests/lang/parse-okay-dup-attrs-5.exp rename to tests/functional/lang/parse-okay-dup-attrs-5.exp diff --git a/tests/lang/parse-okay-dup-attrs-5.nix b/tests/functional/lang/parse-okay-dup-attrs-5.nix similarity index 100% rename from tests/lang/parse-okay-dup-attrs-5.nix rename to tests/functional/lang/parse-okay-dup-attrs-5.nix diff --git a/tests/lang/parse-okay-dup-attrs-6.exp b/tests/functional/lang/parse-okay-dup-attrs-6.exp similarity index 100% rename from tests/lang/parse-okay-dup-attrs-6.exp rename to tests/functional/lang/parse-okay-dup-attrs-6.exp diff --git a/tests/lang/parse-okay-dup-attrs-6.nix b/tests/functional/lang/parse-okay-dup-attrs-6.nix similarity index 100% rename from tests/lang/parse-okay-dup-attrs-6.nix rename to tests/functional/lang/parse-okay-dup-attrs-6.nix diff --git a/tests/lang/parse-okay-mixed-nested-attrs-1.exp b/tests/functional/lang/parse-okay-mixed-nested-attrs-1.exp similarity index 100% rename from tests/lang/parse-okay-mixed-nested-attrs-1.exp rename to tests/functional/lang/parse-okay-mixed-nested-attrs-1.exp diff --git a/tests/lang/parse-okay-mixed-nested-attrs-1.nix b/tests/functional/lang/parse-okay-mixed-nested-attrs-1.nix similarity index 100% rename from tests/lang/parse-okay-mixed-nested-attrs-1.nix rename to tests/functional/lang/parse-okay-mixed-nested-attrs-1.nix diff --git a/tests/lang/parse-okay-mixed-nested-attrs-2.exp b/tests/functional/lang/parse-okay-mixed-nested-attrs-2.exp similarity index 100% rename from tests/lang/parse-okay-mixed-nested-attrs-2.exp rename to tests/functional/lang/parse-okay-mixed-nested-attrs-2.exp diff --git a/tests/lang/parse-okay-mixed-nested-attrs-2.nix b/tests/functional/lang/parse-okay-mixed-nested-attrs-2.nix similarity index 100% rename from tests/lang/parse-okay-mixed-nested-attrs-2.nix rename to tests/functional/lang/parse-okay-mixed-nested-attrs-2.nix diff --git a/tests/lang/parse-okay-mixed-nested-attrs-3.exp b/tests/functional/lang/parse-okay-mixed-nested-attrs-3.exp similarity index 100% rename from tests/lang/parse-okay-mixed-nested-attrs-3.exp rename to tests/functional/lang/parse-okay-mixed-nested-attrs-3.exp diff --git a/tests/lang/parse-okay-mixed-nested-attrs-3.nix b/tests/functional/lang/parse-okay-mixed-nested-attrs-3.nix similarity index 100% rename from tests/lang/parse-okay-mixed-nested-attrs-3.nix rename to tests/functional/lang/parse-okay-mixed-nested-attrs-3.nix diff --git a/tests/lang/parse-okay-regression-20041027.exp b/tests/functional/lang/parse-okay-regression-20041027.exp similarity index 100% rename from tests/lang/parse-okay-regression-20041027.exp rename to tests/functional/lang/parse-okay-regression-20041027.exp diff --git a/tests/lang/parse-okay-regression-20041027.nix b/tests/functional/lang/parse-okay-regression-20041027.nix similarity index 100% rename from tests/lang/parse-okay-regression-20041027.nix rename to tests/functional/lang/parse-okay-regression-20041027.nix diff --git a/tests/lang/parse-okay-regression-751.exp b/tests/functional/lang/parse-okay-regression-751.exp similarity index 100% rename from tests/lang/parse-okay-regression-751.exp rename to tests/functional/lang/parse-okay-regression-751.exp diff --git a/tests/lang/parse-okay-regression-751.nix b/tests/functional/lang/parse-okay-regression-751.nix similarity index 100% rename from tests/lang/parse-okay-regression-751.nix rename to tests/functional/lang/parse-okay-regression-751.nix diff --git a/tests/lang/parse-okay-subversion.exp b/tests/functional/lang/parse-okay-subversion.exp similarity index 100% rename from tests/lang/parse-okay-subversion.exp rename to tests/functional/lang/parse-okay-subversion.exp diff --git a/tests/lang/parse-okay-subversion.nix b/tests/functional/lang/parse-okay-subversion.nix similarity index 100% rename from tests/lang/parse-okay-subversion.nix rename to tests/functional/lang/parse-okay-subversion.nix diff --git a/tests/lang/parse-okay-url.exp b/tests/functional/lang/parse-okay-url.exp similarity index 100% rename from tests/lang/parse-okay-url.exp rename to tests/functional/lang/parse-okay-url.exp diff --git a/tests/lang/parse-okay-url.nix b/tests/functional/lang/parse-okay-url.nix similarity index 100% rename from tests/lang/parse-okay-url.nix rename to tests/functional/lang/parse-okay-url.nix diff --git a/tests/lang/readDir/bar b/tests/functional/lang/readDir/bar similarity index 100% rename from tests/lang/readDir/bar rename to tests/functional/lang/readDir/bar diff --git a/tests/lang/readDir/foo/git-hates-directories b/tests/functional/lang/readDir/foo/git-hates-directories similarity index 100% rename from tests/lang/readDir/foo/git-hates-directories rename to tests/functional/lang/readDir/foo/git-hates-directories diff --git a/tests/lang/readDir/ldir b/tests/functional/lang/readDir/ldir similarity index 100% rename from tests/lang/readDir/ldir rename to tests/functional/lang/readDir/ldir diff --git a/tests/lang/readDir/linked b/tests/functional/lang/readDir/linked similarity index 100% rename from tests/lang/readDir/linked rename to tests/functional/lang/readDir/linked diff --git a/tests/legacy-ssh-store.sh b/tests/functional/legacy-ssh-store.sh similarity index 100% rename from tests/legacy-ssh-store.sh rename to tests/functional/legacy-ssh-store.sh diff --git a/tests/linux-sandbox-cert-test.nix b/tests/functional/linux-sandbox-cert-test.nix similarity index 100% rename from tests/linux-sandbox-cert-test.nix rename to tests/functional/linux-sandbox-cert-test.nix diff --git a/tests/linux-sandbox.sh b/tests/functional/linux-sandbox.sh similarity index 100% rename from tests/linux-sandbox.sh rename to tests/functional/linux-sandbox.sh diff --git a/tests/local-store.sh b/tests/functional/local-store.sh similarity index 100% rename from tests/local-store.sh rename to tests/functional/local-store.sh diff --git a/tests/local.mk b/tests/functional/local.mk similarity index 89% rename from tests/local.mk rename to tests/functional/local.mk index 4edf31303..d60f1e08e 100644 --- a/tests/local.mk +++ b/tests/functional/local.mk @@ -103,7 +103,6 @@ nix_tests = \ case-hack.sh \ placeholders.sh \ ssh-relay.sh \ - plugins.sh \ build.sh \ build-delete.sh \ output-normalization.sh \ @@ -128,17 +127,20 @@ ifeq ($(HAVE_LIBCPUID), 1) nix_tests += compute-levels.sh endif +ifeq ($(BUILD_SHARED_LIBS), 1) + nix_tests += plugins.sh +endif + +$(d)/test-libstoreconsumer.sh.test $(d)/test-libstoreconsumer.sh.test-debug: \ + $(d)/test-libstoreconsumer/test-libstoreconsumer +$(d)/plugins.sh.test $(d)/plugins.sh.test-debug: \ + $(d)/plugins/libplugintest.$(SO_EXT) + install-tests += $(foreach x, $(nix_tests), $(d)/$(x)) -clean-files += \ +test-clean-files := \ $(d)/common/vars-and-functions.sh \ $(d)/config.nix -test-deps += \ - tests/common/vars-and-functions.sh \ - tests/config.nix \ - tests/test-libstoreconsumer/test-libstoreconsumer - -ifeq ($(BUILD_SHARED_LIBS), 1) - test-deps += tests/plugins/libplugintest.$(SO_EXT) -endif +clean-files += $(test-clean-files) +test-deps += $(test-clean-files) diff --git a/tests/logging.sh b/tests/functional/logging.sh similarity index 100% rename from tests/logging.sh rename to tests/functional/logging.sh diff --git a/tests/misc.sh b/tests/functional/misc.sh similarity index 100% rename from tests/misc.sh rename to tests/functional/misc.sh diff --git a/tests/multiple-outputs.nix b/tests/functional/multiple-outputs.nix similarity index 100% rename from tests/multiple-outputs.nix rename to tests/functional/multiple-outputs.nix diff --git a/tests/multiple-outputs.sh b/tests/functional/multiple-outputs.sh similarity index 100% rename from tests/multiple-outputs.sh rename to tests/functional/multiple-outputs.sh diff --git a/tests/nar-access.nix b/tests/functional/nar-access.nix similarity index 100% rename from tests/nar-access.nix rename to tests/functional/nar-access.nix diff --git a/tests/nar-access.sh b/tests/functional/nar-access.sh similarity index 100% rename from tests/nar-access.sh rename to tests/functional/nar-access.sh diff --git a/tests/nested-sandboxing.sh b/tests/functional/nested-sandboxing.sh similarity index 75% rename from tests/nested-sandboxing.sh rename to tests/functional/nested-sandboxing.sh index d9fa788aa..61fe043c6 100644 --- a/tests/nested-sandboxing.sh +++ b/tests/functional/nested-sandboxing.sh @@ -1,5 +1,5 @@ source common.sh -# This test is run by `tests/nested-sandboxing/runner.nix` in an extra layer of sandboxing. +# This test is run by `tests/functional/nested-sandboxing/runner.nix` in an extra layer of sandboxing. [[ -d /nix/store ]] || skipTest "running this test without Nix's deps being drawn from /nix/store is not yet supported" requireSandboxSupport diff --git a/tests/nested-sandboxing/command.sh b/tests/functional/nested-sandboxing/command.sh similarity index 100% rename from tests/nested-sandboxing/command.sh rename to tests/functional/nested-sandboxing/command.sh diff --git a/tests/nested-sandboxing/runner.nix b/tests/functional/nested-sandboxing/runner.nix similarity index 100% rename from tests/nested-sandboxing/runner.nix rename to tests/functional/nested-sandboxing/runner.nix diff --git a/tests/nix-build-examples.nix b/tests/functional/nix-build-examples.nix similarity index 100% rename from tests/nix-build-examples.nix rename to tests/functional/nix-build-examples.nix diff --git a/tests/nix-build.sh b/tests/functional/nix-build.sh similarity index 100% rename from tests/nix-build.sh rename to tests/functional/nix-build.sh diff --git a/tests/nix-channel.sh b/tests/functional/nix-channel.sh similarity index 100% rename from tests/nix-channel.sh rename to tests/functional/nix-channel.sh diff --git a/tests/nix-collect-garbage-d.sh b/tests/functional/nix-collect-garbage-d.sh similarity index 100% rename from tests/nix-collect-garbage-d.sh rename to tests/functional/nix-collect-garbage-d.sh diff --git a/tests/nix-copy-ssh-ng.sh b/tests/functional/nix-copy-ssh-ng.sh similarity index 100% rename from tests/nix-copy-ssh-ng.sh rename to tests/functional/nix-copy-ssh-ng.sh diff --git a/tests/nix-copy-ssh.sh b/tests/functional/nix-copy-ssh.sh similarity index 100% rename from tests/nix-copy-ssh.sh rename to tests/functional/nix-copy-ssh.sh diff --git a/tests/nix-daemon-untrusting.sh b/tests/functional/nix-daemon-untrusting.sh similarity index 100% rename from tests/nix-daemon-untrusting.sh rename to tests/functional/nix-daemon-untrusting.sh diff --git a/tests/nix-profile.sh b/tests/functional/nix-profile.sh similarity index 100% rename from tests/nix-profile.sh rename to tests/functional/nix-profile.sh diff --git a/tests/nix-shell.sh b/tests/functional/nix-shell.sh similarity index 100% rename from tests/nix-shell.sh rename to tests/functional/nix-shell.sh diff --git a/tests/nix_path.sh b/tests/functional/nix_path.sh similarity index 100% rename from tests/nix_path.sh rename to tests/functional/nix_path.sh diff --git a/tests/optimise-store.sh b/tests/functional/optimise-store.sh similarity index 100% rename from tests/optimise-store.sh rename to tests/functional/optimise-store.sh diff --git a/tests/output-normalization.sh b/tests/functional/output-normalization.sh similarity index 100% rename from tests/output-normalization.sh rename to tests/functional/output-normalization.sh diff --git a/tests/parallel.builder.sh b/tests/functional/parallel.builder.sh similarity index 100% rename from tests/parallel.builder.sh rename to tests/functional/parallel.builder.sh diff --git a/tests/parallel.nix b/tests/functional/parallel.nix similarity index 100% rename from tests/parallel.nix rename to tests/functional/parallel.nix diff --git a/tests/parallel.sh b/tests/functional/parallel.sh similarity index 100% rename from tests/parallel.sh rename to tests/functional/parallel.sh diff --git a/tests/pass-as-file.sh b/tests/functional/pass-as-file.sh similarity index 100% rename from tests/pass-as-file.sh rename to tests/functional/pass-as-file.sh diff --git a/tests/path-from-hash-part.sh b/tests/functional/path-from-hash-part.sh similarity index 100% rename from tests/path-from-hash-part.sh rename to tests/functional/path-from-hash-part.sh diff --git a/tests/path.nix b/tests/functional/path.nix similarity index 100% rename from tests/path.nix rename to tests/functional/path.nix diff --git a/tests/placeholders.sh b/tests/functional/placeholders.sh similarity index 100% rename from tests/placeholders.sh rename to tests/functional/placeholders.sh diff --git a/tests/plugins.sh b/tests/functional/plugins.sh similarity index 100% rename from tests/plugins.sh rename to tests/functional/plugins.sh diff --git a/tests/plugins/local.mk b/tests/functional/plugins/local.mk similarity index 100% rename from tests/plugins/local.mk rename to tests/functional/plugins/local.mk diff --git a/tests/plugins/plugintest.cc b/tests/functional/plugins/plugintest.cc similarity index 100% rename from tests/plugins/plugintest.cc rename to tests/functional/plugins/plugintest.cc diff --git a/tests/post-hook.sh b/tests/functional/post-hook.sh similarity index 100% rename from tests/post-hook.sh rename to tests/functional/post-hook.sh diff --git a/tests/pure-eval.nix b/tests/functional/pure-eval.nix similarity index 100% rename from tests/pure-eval.nix rename to tests/functional/pure-eval.nix diff --git a/tests/pure-eval.sh b/tests/functional/pure-eval.sh similarity index 100% rename from tests/pure-eval.sh rename to tests/functional/pure-eval.sh diff --git a/tests/push-to-store-old.sh b/tests/functional/push-to-store-old.sh similarity index 100% rename from tests/push-to-store-old.sh rename to tests/functional/push-to-store-old.sh diff --git a/tests/push-to-store.sh b/tests/functional/push-to-store.sh similarity index 100% rename from tests/push-to-store.sh rename to tests/functional/push-to-store.sh diff --git a/tests/read-only-store.sh b/tests/functional/read-only-store.sh similarity index 100% rename from tests/read-only-store.sh rename to tests/functional/read-only-store.sh diff --git a/tests/readfile-context.nix b/tests/functional/readfile-context.nix similarity index 100% rename from tests/readfile-context.nix rename to tests/functional/readfile-context.nix diff --git a/tests/readfile-context.sh b/tests/functional/readfile-context.sh similarity index 100% rename from tests/readfile-context.sh rename to tests/functional/readfile-context.sh diff --git a/tests/recursive.nix b/tests/functional/recursive.nix similarity index 100% rename from tests/recursive.nix rename to tests/functional/recursive.nix diff --git a/tests/recursive.sh b/tests/functional/recursive.sh similarity index 100% rename from tests/recursive.sh rename to tests/functional/recursive.sh diff --git a/tests/referrers.sh b/tests/functional/referrers.sh similarity index 100% rename from tests/referrers.sh rename to tests/functional/referrers.sh diff --git a/tests/remote-store.sh b/tests/functional/remote-store.sh similarity index 100% rename from tests/remote-store.sh rename to tests/functional/remote-store.sh diff --git a/tests/repair.sh b/tests/functional/repair.sh similarity index 100% rename from tests/repair.sh rename to tests/functional/repair.sh diff --git a/tests/repl.sh b/tests/functional/repl.sh similarity index 100% rename from tests/repl.sh rename to tests/functional/repl.sh diff --git a/tests/restricted.nix b/tests/functional/restricted.nix similarity index 100% rename from tests/restricted.nix rename to tests/functional/restricted.nix diff --git a/tests/restricted.sh b/tests/functional/restricted.sh similarity index 95% rename from tests/restricted.sh rename to tests/functional/restricted.sh index 17f310a4b..197ae7a10 100644 --- a/tests/restricted.sh +++ b/tests/functional/restricted.sh @@ -9,10 +9,10 @@ nix-instantiate --restrict-eval ./simple.nix -I src=. nix-instantiate --restrict-eval ./simple.nix -I src1=simple.nix -I src2=config.nix -I src3=./simple.builder.sh (! nix-instantiate --restrict-eval --eval -E 'builtins.readFile ./simple.nix') -nix-instantiate --restrict-eval --eval -E 'builtins.readFile ./simple.nix' -I src=.. +nix-instantiate --restrict-eval --eval -E 'builtins.readFile ./simple.nix' -I src=../.. -(! nix-instantiate --restrict-eval --eval -E 'builtins.readDir ../src/nix-channel') -nix-instantiate --restrict-eval --eval -E 'builtins.readDir ../src/nix-channel' -I src=../src +(! nix-instantiate --restrict-eval --eval -E 'builtins.readDir ../../src/nix-channel') +nix-instantiate --restrict-eval --eval -E 'builtins.readDir ../../src/nix-channel' -I src=../../src (! nix-instantiate --restrict-eval --eval -E 'let __nixPath = [ { prefix = "foo"; path = ./.; } ]; in ') nix-instantiate --restrict-eval --eval -E 'let __nixPath = [ { prefix = "foo"; path = ./.; } ]; in ' -I src=. diff --git a/tests/search.nix b/tests/functional/search.nix similarity index 100% rename from tests/search.nix rename to tests/functional/search.nix diff --git a/tests/search.sh b/tests/functional/search.sh similarity index 100% rename from tests/search.sh rename to tests/functional/search.sh diff --git a/tests/secure-drv-outputs.nix b/tests/functional/secure-drv-outputs.nix similarity index 100% rename from tests/secure-drv-outputs.nix rename to tests/functional/secure-drv-outputs.nix diff --git a/tests/secure-drv-outputs.sh b/tests/functional/secure-drv-outputs.sh similarity index 100% rename from tests/secure-drv-outputs.sh rename to tests/functional/secure-drv-outputs.sh diff --git a/tests/selfref-gc.sh b/tests/functional/selfref-gc.sh similarity index 100% rename from tests/selfref-gc.sh rename to tests/functional/selfref-gc.sh diff --git a/tests/shell-hello.nix b/tests/functional/shell-hello.nix similarity index 100% rename from tests/shell-hello.nix rename to tests/functional/shell-hello.nix diff --git a/tests/shell.nix b/tests/functional/shell.nix similarity index 100% rename from tests/shell.nix rename to tests/functional/shell.nix diff --git a/tests/shell.sh b/tests/functional/shell.sh similarity index 100% rename from tests/shell.sh rename to tests/functional/shell.sh diff --git a/tests/shell.shebang.rb b/tests/functional/shell.shebang.rb similarity index 100% rename from tests/shell.shebang.rb rename to tests/functional/shell.shebang.rb diff --git a/tests/shell.shebang.sh b/tests/functional/shell.shebang.sh similarity index 100% rename from tests/shell.shebang.sh rename to tests/functional/shell.shebang.sh diff --git a/tests/signing.sh b/tests/functional/signing.sh similarity index 100% rename from tests/signing.sh rename to tests/functional/signing.sh diff --git a/tests/simple-failing.nix b/tests/functional/simple-failing.nix similarity index 100% rename from tests/simple-failing.nix rename to tests/functional/simple-failing.nix diff --git a/tests/simple.builder.sh b/tests/functional/simple.builder.sh similarity index 100% rename from tests/simple.builder.sh rename to tests/functional/simple.builder.sh diff --git a/tests/simple.nix b/tests/functional/simple.nix similarity index 100% rename from tests/simple.nix rename to tests/functional/simple.nix diff --git a/tests/simple.sh b/tests/functional/simple.sh similarity index 100% rename from tests/simple.sh rename to tests/functional/simple.sh diff --git a/tests/ssh-relay.sh b/tests/functional/ssh-relay.sh similarity index 100% rename from tests/ssh-relay.sh rename to tests/functional/ssh-relay.sh diff --git a/tests/store-ping.sh b/tests/functional/store-ping.sh similarity index 100% rename from tests/store-ping.sh rename to tests/functional/store-ping.sh diff --git a/tests/structured-attrs-shell.nix b/tests/functional/structured-attrs-shell.nix similarity index 100% rename from tests/structured-attrs-shell.nix rename to tests/functional/structured-attrs-shell.nix diff --git a/tests/structured-attrs.nix b/tests/functional/structured-attrs.nix similarity index 100% rename from tests/structured-attrs.nix rename to tests/functional/structured-attrs.nix diff --git a/tests/structured-attrs.sh b/tests/functional/structured-attrs.sh similarity index 100% rename from tests/structured-attrs.sh rename to tests/functional/structured-attrs.sh diff --git a/tests/substitute-with-invalid-ca.sh b/tests/functional/substitute-with-invalid-ca.sh similarity index 100% rename from tests/substitute-with-invalid-ca.sh rename to tests/functional/substitute-with-invalid-ca.sh diff --git a/tests/suggestions.sh b/tests/functional/suggestions.sh similarity index 100% rename from tests/suggestions.sh rename to tests/functional/suggestions.sh diff --git a/tests/supplementary-groups.sh b/tests/functional/supplementary-groups.sh similarity index 100% rename from tests/supplementary-groups.sh rename to tests/functional/supplementary-groups.sh diff --git a/tests/tarball.sh b/tests/functional/tarball.sh similarity index 100% rename from tests/tarball.sh rename to tests/functional/tarball.sh diff --git a/tests/test-infra.sh b/tests/functional/test-infra.sh similarity index 100% rename from tests/test-infra.sh rename to tests/functional/test-infra.sh diff --git a/tests/test-libstoreconsumer.sh b/tests/functional/test-libstoreconsumer.sh similarity index 100% rename from tests/test-libstoreconsumer.sh rename to tests/functional/test-libstoreconsumer.sh diff --git a/tests/test-libstoreconsumer/README.md b/tests/functional/test-libstoreconsumer/README.md similarity index 100% rename from tests/test-libstoreconsumer/README.md rename to tests/functional/test-libstoreconsumer/README.md diff --git a/tests/test-libstoreconsumer/local.mk b/tests/functional/test-libstoreconsumer/local.mk similarity index 100% rename from tests/test-libstoreconsumer/local.mk rename to tests/functional/test-libstoreconsumer/local.mk diff --git a/tests/test-libstoreconsumer/main.cc b/tests/functional/test-libstoreconsumer/main.cc similarity index 100% rename from tests/test-libstoreconsumer/main.cc rename to tests/functional/test-libstoreconsumer/main.cc diff --git a/tests/timeout.nix b/tests/functional/timeout.nix similarity index 100% rename from tests/timeout.nix rename to tests/functional/timeout.nix diff --git a/tests/timeout.sh b/tests/functional/timeout.sh similarity index 100% rename from tests/timeout.sh rename to tests/functional/timeout.sh diff --git a/tests/toString-path.sh b/tests/functional/toString-path.sh similarity index 100% rename from tests/toString-path.sh rename to tests/functional/toString-path.sh diff --git a/tests/undefined-variable.nix b/tests/functional/undefined-variable.nix similarity index 100% rename from tests/undefined-variable.nix rename to tests/functional/undefined-variable.nix diff --git a/tests/user-envs-migration.sh b/tests/functional/user-envs-migration.sh similarity index 100% rename from tests/user-envs-migration.sh rename to tests/functional/user-envs-migration.sh diff --git a/tests/user-envs.builder.sh b/tests/functional/user-envs.builder.sh similarity index 100% rename from tests/user-envs.builder.sh rename to tests/functional/user-envs.builder.sh diff --git a/tests/user-envs.nix b/tests/functional/user-envs.nix similarity index 100% rename from tests/user-envs.nix rename to tests/functional/user-envs.nix diff --git a/tests/user-envs.sh b/tests/functional/user-envs.sh similarity index 100% rename from tests/user-envs.sh rename to tests/functional/user-envs.sh diff --git a/tests/why-depends.sh b/tests/functional/why-depends.sh similarity index 100% rename from tests/why-depends.sh rename to tests/functional/why-depends.sh diff --git a/tests/zstd.sh b/tests/functional/zstd.sh similarity index 100% rename from tests/zstd.sh rename to tests/functional/zstd.sh