Commit Graph
14 Commits
Author SHA1 Message Date
Commentator2.0 eca222c7ca tests/functional2: migrate dump-db.sh
Change-Id: Ife8ff62add37f50867f55a5eaa26f7a68fad1c78
2026-01-20 10:08:36 +00:00
Commentator2.0 455724d9dc tests/functional2: rename binary cache directory for easier debugging which (cache) cache is being used
Change-Id: Id5a446422a8e1535ada723115bb2d8a10b0f2b8a
2026-01-15 11:37:02 +00:00
Raito Bezarius b730fab286 f2/testlib/env: build initial path via build_env
`build_env` is assumed to be a certain trivial environment, e.g. a
singleton search path.

An environment in general is either empty, contain one or more search
paths separated by a colon.

It seems that the intent was to set the `build_shell` first as a
prepended path in the managed environment then extend via the
`build_env` parts.

This fixes a usecase when the `BUILD_TEST_ENV` is non-trivial.

Change-Id: If5b8ab976d867a57ce0b8d29255f64695e30a8b2
Signed-off-by: Raito Bezarius <raito@lix.systems>
2026-01-06 10:13:01 +00:00
Raito Bezarius f981162bf3 f2/testlib/fixtures/env: test_root cannot be None
`test_root` can never be `None`.

Change-Id: I9ed344b55a733ad92ffa79e6799e44d97285109f
Signed-off-by: Raito Bezarius <raito@lix.systems>
2026-01-04 22:09:33 +00:00
Raito Bezarius 8b5c085aca f2/testlib/fixtures/env: home cannot be None
Is there a situation where `home` can be None? This hinders the ability
to use it quickly without type gating in the test code itself.

Change-Id: Idd739ddad67e10d6f7a6aad283c0e3b7cd08106a
Signed-off-by: Raito Bezarius <raito@lix.systems>
2026-01-04 20:40:18 +00:00
Commentator2.0 1c42640347 tests/functional2: fix build-shell not working properly on darwin when running tests outside of meson
Change-Id: If5068ad5460d08de69f64f924c4e86e56ac0559c
2025-12-29 21:06:28 +01:00
Maximilian Bosch 8d21057d49 tests/functional2: use bash as builder
...and add both a static bash and busybox into the sandbox for building:

    $ /nix/store/fz43jxs5qfg5vldzk38y2hmrcl58qk18-busybox-1.36.1/bin/sh -c 'declare -A foo'
    /nix/store/fz43jxs5qfg5vldzk38y2hmrcl58qk18-busybox-1.36.1/bin/sh: declare: not found

The reason is that busybox's `sh` doesn't know about `declare` which
means it cannot build derivations with `__structuredAttrs = true;`.

Change-Id: Ie3ca431f862fd3e59dc649582704ae739ee5834a
2025-12-27 11:11:55 +01:00
eldritch horrors 1546ea0d5f tests/f2: make ManagedPath searchable
Change-Id: Idccf83a4471d76362153535125a269abbbb03c62
2025-12-26 20:56:51 +00:00
eldritch horrors 9ebe5acf39 tests/f2: don't set NIX_STORE_DIR unconditionally
this is only needed on macos, and only for tests that build anything. on
linux it can actually *break* stuff due to unfortunate interactions with
store url parsing, which is required to work for any remote build tests.

Change-Id: Ic6f7e090f15e129fc365d7edc56cdbc1a5686047
2025-12-26 20:14:39 +00:00
Commentator2.0 c1debca36b tests/functional2: migrate tarball.sh
Change-Id: I8fb889a5723e34453597fbce2e027fb49a859319
2025-12-19 20:44:25 +01:00
Qyriad b92c85848f functional2: fix on macOS if user has PATH elems that don't exist
This change brought to you by my uninstalling go but forgetting to
remove ~/.local/opt/go/bin from my PATH.

Change-Id: I937675bab11ac7e0678c896cba78204b6a6a6964
2025-11-27 10:51:08 +00:00
Alois Wohlschlager 0e0853cc70 functional2: handle unset or empty BUILD_TEST_SHELL properly
If BUILD_TEST_SHELL is not set or empty, None or the empty string respectively
should not make it into the PATH. Ensure this property.

Change-Id: I4ce9b0c06c407b465308b63b9cb64e7d6a6a6964
2025-10-22 07:41:46 +02:00
Jade LovelaceandCommentator2.0 556012e409 functional2: forbid chdir and setting environment
These are a footgun and are not acceptable in functional2 due to thread
safety, effects on other tests, etc.

Co-authored-by: Commentator2.0 <lix@crystal-cavern.systems>

Change-Id: I8d7285061eaa9bab27edd52f3646024c8cf605e5
2025-10-13 18:30:51 +02:00
Commentator2.0andRutile 7869385b98 tests/functional2: Make Command Environment actually declarative
So far, the environment used by `command` was completely leaky and the
one used by `nix` was very leaky despite it trying to be a "hermetic"
environment.
This commit moves the hermaticity to `command` and changes its
implementation to be not leak anything.

To achieve this, the following changes were also nessecary:
- the `files` and `snapshot` fixture now use the folder `test-home`
within the tmp_path directory by default, as the `HOME` environment
variable is set to there. (extraction not possible due to dependencies
of command etc also using this directory)

Fixes: #847, #848

Change-Id: I55f86ee0e1615e73fcf442ee2f28f3b89893bbb4
2025-08-15 06:56:07 +00:00