forked from lix-project/lix
eldritch horrors
cae260a158
this should be done where we're actually trying to build something, not
in the main worker loop that shouldn't have to be aware of such details
Change-Id: I07276740c0e2e5591a8ce4828a4bfc705396527e
246 lines
6.1 KiB
Meson
246 lines
6.1 KiB
Meson
test_confdata = {
|
|
'bindir': bindir,
|
|
'coreutils': fs.parent(coreutils.full_path()),
|
|
'lsof': lsof.full_path(),
|
|
'dot': dot.found() ? dot.full_path() : '',
|
|
'bash': bash.full_path(),
|
|
'sandbox_shell': busybox.found() ? busybox.full_path() : '',
|
|
'PACKAGE_VERSION': meson.project_version(),
|
|
'system': host_system,
|
|
'python': python.full_path(),
|
|
'runinpty': runinpty.full_path(),
|
|
}
|
|
|
|
# Just configures `common/vars-and-functions.sh.in`.
|
|
# Done as a subdir() so Meson places it under `common` in the build directory as well.
|
|
subdir('common')
|
|
|
|
config_nix_in = configure_file(
|
|
input : 'config.nix.in',
|
|
output : 'config.nix',
|
|
configuration : test_confdata,
|
|
)
|
|
|
|
# Just configures `ca/config.nix.in`. Done as a subdir() for the same reason as above.
|
|
subdir('ca')
|
|
# Just configures `dyn-drv/config.nix.in`. Same as above.
|
|
subdir('dyn-drv')
|
|
|
|
subdir('plugins')
|
|
subdir('test-libstoreconsumer')
|
|
|
|
functional_tests_scripts = [
|
|
'init.sh',
|
|
'test-infra.sh',
|
|
'ca/build.sh',
|
|
'ca/build-cache.sh',
|
|
'ca/concurrent-builds.sh',
|
|
'ca/derivation-json.sh',
|
|
'ca/duplicate-realisation-in-closure.sh',
|
|
'ca/eval-store.sh',
|
|
'ca/gc.sh',
|
|
'ca/import-derivation.sh',
|
|
'ca/new-build-cmd.sh',
|
|
'ca/nix-copy.sh',
|
|
'ca/nix-run.sh',
|
|
'ca/nix-shell.sh',
|
|
'ca/post-hook.sh',
|
|
'ca/recursive.sh',
|
|
'ca/repl.sh',
|
|
'ca/selfref-gc.sh',
|
|
'ca/signatures.sh',
|
|
'ca/substitute.sh',
|
|
'ca/why-depends.sh',
|
|
'dyn-drv/text-hashed-output.sh',
|
|
'dyn-drv/recursive-mod-json.sh',
|
|
'dyn-drv/build-built-drv.sh',
|
|
'dyn-drv/eval-outputOf.sh',
|
|
'dyn-drv/dep-built-drv.sh',
|
|
'dyn-drv/old-daemon-error-hack.sh',
|
|
'flakes/flakes.sh',
|
|
'flakes/develop.sh',
|
|
'flakes/develop-r8854.sh',
|
|
'flakes/run.sh',
|
|
'flakes/mercurial.sh',
|
|
'flakes/circular.sh',
|
|
'flakes/init.sh',
|
|
'flakes/inputs.sh',
|
|
'flakes/follow-paths.sh',
|
|
'flakes/bundle.sh',
|
|
'flakes/check.sh',
|
|
'flakes/unlocked-override.sh',
|
|
'flakes/absolute-paths.sh',
|
|
'flakes/build-paths.sh',
|
|
'flakes/flake-in-submodule.sh',
|
|
'flakes/flake-metadata.sh',
|
|
'flakes/flake-registry.sh',
|
|
'flakes/subdir-flake.sh',
|
|
'gc.sh',
|
|
'nix-collect-garbage-d.sh',
|
|
'nix-collect-garbage-dry-run.sh',
|
|
'remote-store.sh',
|
|
'legacy-ssh-store.sh',
|
|
'lang.sh',
|
|
'lang-test-infra.sh',
|
|
'experimental-features.sh',
|
|
'fetchMercurial.sh',
|
|
'gc-auto.sh',
|
|
'user-envs.sh',
|
|
'user-envs-migration.sh',
|
|
'binary-cache.sh',
|
|
'multiple-outputs.sh',
|
|
'nix-build.sh',
|
|
'gc-concurrent.sh',
|
|
'repair.sh',
|
|
'fixed.sh',
|
|
'export-graph.sh',
|
|
'timeout.sh',
|
|
'fetchGitRefs.sh',
|
|
'gc-runtime.sh',
|
|
'tarball.sh',
|
|
'fetchers.sh',
|
|
'fetchGit.sh',
|
|
'fetchurl.sh',
|
|
'fetchPath.sh',
|
|
'fetchTree-file.sh',
|
|
'simple.sh',
|
|
'referrers.sh',
|
|
'optimise-store.sh',
|
|
'substitute-with-invalid-ca.sh',
|
|
'signing.sh',
|
|
'hash.sh',
|
|
'gc-non-blocking.sh',
|
|
'check.sh',
|
|
'nix-shell.sh',
|
|
'check-refs.sh',
|
|
'build-remote-input-addressed.sh',
|
|
'secure-drv-outputs.sh',
|
|
'restricted.sh',
|
|
'fetchGitSubmodules.sh',
|
|
'flakes/search-root.sh',
|
|
'readfile-context.sh',
|
|
'nix-channel.sh',
|
|
'recursive.sh',
|
|
'dependencies.sh',
|
|
'check-reqs.sh',
|
|
'build-remote-content-addressed-fixed.sh',
|
|
'build-remote-content-addressed-floating.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-should-fail-0.sh',
|
|
'build-jobless.sh',
|
|
'nar-access.sh',
|
|
'impure-eval.sh',
|
|
'pure-eval.sh',
|
|
'eval.sh',
|
|
'repl.sh',
|
|
'binary-cache-build-remote.sh',
|
|
'search.sh',
|
|
'logging.sh',
|
|
'export.sh',
|
|
'config.sh',
|
|
'add.sh',
|
|
'local-store.sh',
|
|
'filter-source.sh',
|
|
'misc.sh',
|
|
'dump-db.sh',
|
|
'linux-sandbox.sh',
|
|
'supplementary-groups.sh',
|
|
'build-dry.sh',
|
|
'structured-attrs.sh',
|
|
'shell.sh',
|
|
'brotli.sh',
|
|
'zstd.sh',
|
|
'compression-levels.sh',
|
|
'nix-copy-ssh.sh',
|
|
'nix-copy-ssh-ng.sh',
|
|
'post-hook.sh',
|
|
'function-trace.sh',
|
|
'flakes/config.sh',
|
|
'fmt.sh',
|
|
'eval-store.sh',
|
|
'why-depends.sh',
|
|
'derivation-json.sh',
|
|
'import-derivation.sh',
|
|
'nix_path.sh',
|
|
'case-hack.sh',
|
|
'placeholders.sh',
|
|
'ssh-relay.sh',
|
|
'build.sh',
|
|
'build-delete.sh',
|
|
'output-normalization.sh',
|
|
'selfref-gc.sh',
|
|
'db-migration.sh',
|
|
'bash-profile.sh',
|
|
'pass-as-file.sh',
|
|
'nix-profile.sh',
|
|
'suggestions.sh',
|
|
'store-ping.sh',
|
|
'fetchClosure.sh',
|
|
'completions.sh',
|
|
'flakes/show.sh',
|
|
'impure-derivations.sh',
|
|
'path-from-hash-part.sh',
|
|
'toString-path.sh',
|
|
'read-only-store.sh',
|
|
'nested-sandboxing.sh',
|
|
'debugger.sh',
|
|
'test-libstoreconsumer.sh',
|
|
'extra-sandbox-profile.sh',
|
|
'substitute-truncated-nar.sh',
|
|
]
|
|
|
|
# Plugin tests require shared libraries support.
|
|
if get_option('default_library') != 'static'
|
|
functional_tests_scripts += ['plugins.sh']
|
|
endif
|
|
|
|
# TODO(Qyriad): this will hopefully be able to be removed when we remove the autoconf+Make
|
|
# buildsystem. See the comments at the top of setup-functional-tests.py for why this is here.
|
|
meson.add_install_script(
|
|
python,
|
|
meson.project_source_root() / 'meson/setup-functional-tests.py',
|
|
)
|
|
|
|
foreach script : functional_tests_scripts
|
|
# Turns, e.g., `tests/functional/flakes/show.sh` into a Meson test target called
|
|
# `functional-flakes-show`.
|
|
name = 'functional-@0@'.format(fs.replace_suffix(script, '')).replace('/', '-')
|
|
|
|
extra_deps = []
|
|
if script == 'plugins.sh'
|
|
extra_deps += [
|
|
# Set in tests/functional/plugins/meson.build
|
|
libplugintest,
|
|
libplugintestfail,
|
|
]
|
|
elif script == 'test-libstoreconsumer.sh'
|
|
extra_deps += [
|
|
# Set in tests/functional/test-libstoreconsumer/meson.build
|
|
libstoreconsumer_tester,
|
|
]
|
|
endif
|
|
|
|
test(
|
|
name,
|
|
python,
|
|
args: [
|
|
meson.project_source_root() / 'meson/run-test.py',
|
|
script,
|
|
],
|
|
suite : 'installcheck',
|
|
env : {
|
|
'MESON_BUILD_ROOT': meson.project_build_root(),
|
|
},
|
|
# some tests take 15+ seconds even on an otherwise idle machine, on a loaded machine
|
|
# this can easily drive them to failure. give them more time, 5min rather than 30sec
|
|
timeout : 300,
|
|
# Used for target dependency/ordering tracking, not adding compiler flags or anything.
|
|
depends : extra_deps,
|
|
)
|
|
endforeach
|
|
|
|
subdir('repl_characterization')
|