Nix, the purely functional package manager
Go to file
Valentin Gagarin 33ca905cdb tests: simplify initialisation and wiring
pararameterisation is not actually needed the way things are currently
set up, and it confused me when trying to understand what the code does.

all but one test sources vars-and-functions.sh, which nominally only
defines variables, but in practice is always coupled with the actual
initialisation. while the cleaner way of making this more legible would
be to source variables and initialisation separately, this would produce
a huge diff.

the change requires a few small fixes to keep the tests working:

- only create test home directory during initialisation

  that vars-and-functions.sh wrote to the file system seems not write

- fix creation of the test directory

  due to statefulness, the test home directory was implicitly creating
  the test root, too. decoupling that made it apparent that this was
  probably not intentional, and certainly confusing.

- only source vars-and-functions.sh if init.sh is not needed

  there is one test case that only needs a helper function but no
  initialisation side effects

- remove some unnecessary cleanups and split parts of re-used test code

  there were confusing bits in how initialisation code was repurposed,
  which break if trying to refactor the outer layers naively...
2024-05-13 15:19:49 +02:00
.github Auto label C API PRs 2024-04-17 16:20:37 +02:00
config Remove and gitignore the autoreconf generated files 2024-03-02 10:18:47 +01:00
contrib function-trace: always show the trace 2019-09-18 23:23:21 +02:00
dep-patches Move dependency patches from top level into subdir 2024-01-17 13:13:54 -05:00
doc tests: simplify initialisation and wiring 2024-05-13 15:19:49 +02:00
m4 Build a minimized Nix with MinGW 2024-04-17 12:26:10 -04:00
maintainers Build the local store on Windows 2024-05-10 13:05:23 -04:00
misc Remove custom lowdown 2023-12-13 16:25:18 -05:00
mk tests: simplify initialisation and wiring 2024-05-13 15:19:49 +02:00
perl Fix perl build 2024-05-06 20:00:44 +02:00
scripts Honor the same set of proxy environment variables (#10611) 2024-05-06 15:39:22 -04:00
src Merge pull request #10685 from siddhantk232/fs-cleanup 2024-05-13 14:12:10 +02:00
tests tests: simplify initialisation and wiring 2024-05-13 15:19:49 +02:00
.clang-format Have clang-format indent conditional CPP 2024-04-15 08:33:45 -04:00
.clang-tidy Add .clang-tidy 2024-02-01 01:01:39 +01:00
.dir-locals.el .dir-locals.el: Set c-block-comment-prefix 2020-07-10 11:21:06 +02:00
.editorconfig .editorconfig: Also affect Perl FFI xs file 2023-11-09 23:11:52 -05:00
.gitignore Add pre-commit hook and make format target 2024-04-21 13:54:34 +02:00
.version Bump version 2024-04-23 14:14:13 +02:00
configure.ac Use std::filesystem functions in more places 2024-05-07 00:16:54 -04:00
CONTRIBUTING.md add a recommendation for first-time contributors (#10605) 2024-04-25 13:34:15 +02:00
COPYING * Change this to LGPL to keep the government happy. 2006-04-25 16:41:06 +00:00
default.nix add flake-compat to flake.nix and use sha256 in default.nix 2023-03-06 21:11:24 +01:00
docker.nix fix "add an option to include flake-registry..." 2023-05-16 14:35:31 +02:00
flake.lock Add pre-commit hook and make format target 2024-04-21 13:54:34 +02:00
flake.nix Move libseccomp source override outside package.nix 2024-04-25 16:38:35 -04:00
local.mk local.mk: Solve warnings 2024-04-17 15:37:14 +02:00
Makefile Add pre-commit hook and make format target 2024-04-21 13:54:34 +02:00
Makefile.config.in C API: fix docs build after rebase 2024-03-28 10:51:59 +01:00
package.nix Move libseccomp source override outside package.nix 2024-04-25 16:38:35 -04:00
precompiled-headers.h Build a minimized Nix with MinGW 2024-04-17 12:26:10 -04:00
README.md fix: Remove extra to from README.md (#9213) 2023-10-23 19:20:23 +02:00
shell.nix Remove url literals 2022-01-24 13:28:21 +01:00

Nix

Open Collective supporters Test

Nix is a powerful package manager for Linux and other Unix systems that makes package management reliable and reproducible. Please refer to the Nix manual for more details.

Installation and first steps

Visit nix.dev for installation instructions and beginner tutorials.

Full reference documentation can be found in the Nix manual.

Building And Developing

See our Hacking guide in our manual for instruction on how to set up a development environment and build Nix from source.

Contributing

Check the contributing guide if you want to get involved with developing Nix.

Additional Resources

License

Nix is released under the LGPL v2.1.