lix/tests/functional
Artemis Tosini c03de0df62 gc: Find roots using libproc on Darwin
Previously, the garbage collector found runtime roots on Darwin by
shelling out to `lsof -n -w -F n` then parsing the result.
However, this requires an lsof binary and can be extremely slow.

The official Apple lsof returns in a reasonable amount of time,
about 250ms in my tests, but the lsof packaged in nixpkgs is quite slow,
taking about 40 seconds to run the command.

Using libproc directly is about the same speed as Apple lsof,
and allows us to reënable several tests that were disabled on Darwin.

Change-Id: Ifa0adda7984e13c15535693baba835aae79a3577
2024-04-25 23:24:21 -04:00
..
ca
common
config
dyn-drv
flakes
lang
nested-sandboxing
plugins
repl_characterization
test-libstoreconsumer
add.sh
bad.tar.xz
bash-profile.sh
big-derivation-attr.nix
binary-cache-build-remote.sh
binary-cache.sh
brotli.sh
build-delete.sh
build-dry.sh
build-hook-ca-fixed.nix
build-hook-ca-floating.nix
build-hook.nix
build-remote-content-addressed-fixed.sh
build-remote-content-addressed-floating.sh
build-remote-input-addressed.sh
build-remote-trustless-after.sh
build-remote-trustless-should-fail-0.sh
build-remote-trustless-should-pass-0.sh
build-remote-trustless-should-pass-1.sh
build-remote-trustless-should-pass-2.sh
build-remote-trustless-should-pass-3.sh
build-remote-trustless.sh
build-remote.sh
build.sh
ca-shell.nix
case-hack.sh
case.nar
check-refs.nix
check-refs.sh
check-reqs.nix
check-reqs.sh
check.nix
check.sh
common.sh
completions.sh
compression-levels.sh
compute-levels.sh
config.nix.in
config.sh
db-migration.sh
debugger.sh
dependencies.builder0.sh
dependencies.nix
dependencies.sh
derivation-json.sh
dummy
dump-db.sh
eval-store.sh
eval.nix
eval.sh
experimental-features.sh
export-graph.nix
export-graph.sh
export.sh
failing.nix
fetchClosure.sh
fetchGit.sh
fetchGitRefs.sh
fetchGitSubmodules.sh
fetchMercurial.sh
fetchPath.sh
fetchTree-file.sh
fetchurl.sh
filter-source.nix
filter-source.sh
fixed.builder1.sh
fixed.builder2.sh
fixed.nix
fixed.sh
fmt.sh
fmt.simple.sh
function-trace.sh
gc-auto.sh
gc-concurrent.builder.sh
gc-concurrent.nix
gc-concurrent.sh
gc-concurrent2.builder.sh
gc-non-blocking.sh
gc-runtime.nix
gc-runtime.sh
gc.sh
hash-check.nix
hash.sh
hermetic.nix
ifd.nix
import-derivation.nix
import-derivation.sh
impure-derivations.nix
impure-derivations.sh
impure-eval.sh
init.sh
install-darwin.sh
lang-test-infra.sh
lang.sh
legacy-ssh-store.sh
linux-sandbox-cert-test.nix
linux-sandbox.sh
local-store.sh
local.mk
logging.sh
meson.build
misc.sh
multiple-outputs.nix
multiple-outputs.sh
nar-access.nix
nar-access.sh
nested-sandboxing.sh
nix-build-examples.nix
nix-build.sh
nix-channel.sh
nix-collect-garbage-d.sh
nix-copy-ssh-common.sh
nix-copy-ssh-ng.sh
nix-copy-ssh.sh
nix-daemon-untrusting.sh
nix-profile.sh
nix-shell.sh
nix_path.sh
optimise-store.sh
output-normalization.sh
parallel.builder.sh
parallel.nix
parallel.sh
pass-as-file.sh
path-from-hash-part.sh
path.nix
placeholders.sh
plugins.sh
post-hook.sh
pure-eval.nix
pure-eval.sh
push-to-store-old.sh
push-to-store.sh
read-only-store.sh
readfile-context.nix
readfile-context.sh
recursive.nix
recursive.sh
referrers.sh
remote-store.sh
repair.sh
repl.sh
restricted.nix
restricted.sh
search.nix
search.sh
secure-drv-outputs.nix
secure-drv-outputs.sh
selfref-gc.sh
shell-hello.nix
shell.nix
shell.sh
shell.shebang.nix
shell.shebang.rb
shell.shebang.sh
signing.sh
simple-failing.nix
simple.builder.sh
simple.nix
simple.sh
ssh-relay.sh
store-ping.sh
structured-attrs-shell.nix
structured-attrs.nix
structured-attrs.sh
substitute-with-invalid-ca.sh
suggestions.sh
supplementary-groups.sh
symlink-derivation.nix
tarball.sh
test-infra.sh
test-libstoreconsumer.sh
test-repl-characterization.sh
timeout.nix
timeout.sh
toString-path.sh
undefined-variable.nix
user-envs-migration.sh
user-envs.builder.sh
user-envs.nix
user-envs.sh
why-depends.sh
zstd.sh