1{
2 system,
3 pkgs,
4
5 # Projects the test configuration into a the desired value; usually
6 # the test runner: `config: config.test`.
7 callTest,
8
9}:
10# The return value of this function will be an attrset with arbitrary depth and
11# the `anything` returned by callTest at its test leaves.
12# The tests not supported by `system` will be replaced with `{}`, so that
13# `passthru.tests` can contain links to those without breaking on architectures
14# where said tests are unsupported.
15# Example callTest that just extracts the derivation from the test:
16# callTest = t: t.test;
17
18with pkgs.lib;
19
20let
21 # TODO: remove when handleTest is gone (make sure nixosTests and nixos/release.nix#tests are unaffected)
22 # TODO: when removing, also deprecate `test` attribute in ../lib/testing/run.nix
23 discoverTests =
24 val:
25 if isAttrs val then
26 if (val ? test) then
27 callTest val
28 else
29 mapAttrs (n: s: if n == "passthru" then s else discoverTests s) val
30 else if isFunction val then
31 # Tests based on make-test-python.nix will return the second lambda
32 # in that file, which are then forwarded to the test definition
33 # following the `import make-test-python.nix` expression
34 # (if it is a function).
35 discoverTests (val {
36 inherit system pkgs;
37 })
38 else
39 val;
40
41 /**
42 Evaluate a test and return a derivation that runs the test as its builder.
43
44 This function is deprecated in favor of runTest and runTestOn, which works
45 by passing a module instead of a specific set of arguments.
46 Benefits of runTest and runTestOn:
47 - Define values for any test option
48 - Use imports to compose tests
49 - Access the module arguments like hostPkgs and config.node.pkgs
50 - Portable to other VM hosts, specifically Darwin
51 - Faster evaluation, using a single `pkgs` instance
52
53 Changes required to migrate to runTest:
54 - Remove any `import ../make-test-python.nix` or similar calls, leaving only
55 the callback function.
56 - Convert the function header to make it a module.
57 Packages can be taken from the following. For VM host portability, use
58 - `config.node.pkgs.<name>` or `config.nodes.foo.nixpkgs.pkgs.<name>` to refer
59 to the Nixpkgs used on the VM guest(s).
60 - `hostPkgs.<name>` when invoking commands on the VM host (e.g. in Python
61 `os.system("foo")`)
62 - Since the runTest argument is a module instead of a function, arguments
63 must be passed as option definitions.
64 You may declare explicit `options` for the test parameter(s), or use the
65 less explicit `_module.args.<name>` to pass arguments to the module.
66
67 Example call with arguments:
68
69 runTest {
70 imports = [ ./test.nix ];
71 _module.args.getPackage = pkgs: pkgs.foo_1_2;
72 }
73
74 - If your test requires any definitions in `nixpkgs.*` options, set
75 `node.pkgsReadOnly = false` in the test configuration.
76 */
77 handleTest = path: args: discoverTests (import path ({ inherit system pkgs; } // args));
78
79 /**
80 See handleTest
81 */
82 handleTestOn =
83 systems: path: args:
84 if elem system systems then handleTest path args else { };
85
86 nixosLib = import ../lib {
87 # Experimental features need testing too, but there's no point in warning
88 # about it, so we enable the feature flag.
89 featureFlags.minimalModules = { };
90 };
91 evalMinimalConfig = module: nixosLib.evalModules { modules = [ module ]; };
92 evalSystem =
93 module:
94 import ../lib/eval-config.nix {
95 system = null;
96 modules = [
97 ../modules/misc/nixpkgs/read-only.nix
98 { nixpkgs.pkgs = pkgs; }
99 module
100 ];
101 };
102
103 inherit
104 (rec {
105 doRunTest =
106 arg:
107 ((import ../lib/testing-python.nix { inherit system pkgs; }).evalTest {
108 imports = [
109 arg
110 readOnlyPkgs
111 ];
112 }).config.result;
113 findTests =
114 tree:
115 if tree ? recurseForDerivations && tree.recurseForDerivations then
116 mapAttrs (k: findTests) (builtins.removeAttrs tree [ "recurseForDerivations" ])
117 else
118 callTest tree;
119
120 runTest =
121 arg:
122 let
123 r = doRunTest arg;
124 in
125 findTests r;
126 runTestOn = systems: arg: if elem system systems then runTest arg else { };
127 })
128 /**
129 See https://nixos.org/manual/nixos/unstable/#sec-calling-nixos-tests
130 */
131 runTest
132 /**
133 See https://nixos.org/manual/nixos/unstable/#sec-calling-nixos-tests
134 */
135 runTestOn
136 ;
137
138 # Using a single instance of nixpkgs makes test evaluation faster.
139 # To make sure we don't accidentally depend on a modified pkgs, we make the
140 # related options read-only. We need to test the right configuration.
141 #
142 # If your service depends on a nixpkgs setting, first try to avoid that, but
143 # otherwise, you can remove the readOnlyPkgs import and test your service as
144 # usual.
145 readOnlyPkgs =
146 # TODO: We currently accept this for nixosTests, so that the `pkgs` argument
147 # is consistent with `pkgs` in `pkgs.nixosTests`. Can we reinitialize
148 # it with `allowAliases = false`?
149 # warnIf pkgs.config.allowAliases "nixosTests: pkgs includes aliases."
150 {
151 _file = "${__curPos.file} readOnlyPkgs";
152 _class = "nixosTest";
153 node.pkgs = pkgs.pkgsLinux;
154 };
155
156in
157{
158
159 # Testing the test driver
160 nixos-test-driver = {
161 extra-python-packages = runTest ./nixos-test-driver/extra-python-packages.nix;
162 lib-extend = handleTestOn [ "x86_64-linux" "aarch64-linux" ] ./nixos-test-driver/lib-extend.nix { };
163 node-name = runTest ./nixos-test-driver/node-name.nix;
164 busybox = runTest ./nixos-test-driver/busybox.nix;
165 console-log = runTest ./nixos-test-driver/console-log.nix;
166 driver-timeout =
167 pkgs.runCommand "ensure-timeout-induced-failure"
168 {
169 failed = pkgs.testers.testBuildFailure (
170 (runTest ./nixos-test-driver/timeout.nix).config.rawTestDerivation
171 );
172 }
173 ''
174 grep -F "timeout reached; test terminating" $failed/testBuildFailure.log
175 # The program will always be terminated by SIGTERM (143) if it waits for the deadline thread.
176 [[ 143 = $(cat $failed/testBuildFailure.exit) ]]
177 touch $out
178 '';
179 };
180
181 # NixOS vm tests and non-vm unit tests
182
183 # keep-sorted start case=no numeric=no block=yes
184 _3proxy = runTest ./3proxy.nix;
185 aaaaxy = runTest ./aaaaxy.nix;
186 acme = import ./acme/default.nix { inherit runTest; };
187 acme-dns = runTest ./acme-dns.nix;
188 activation = pkgs.callPackage ../modules/system/activation/test.nix { };
189 activation-etc-overlay-immutable = runTest ./activation/etc-overlay-immutable.nix;
190 activation-etc-overlay-mutable = runTest ./activation/etc-overlay-mutable.nix;
191 activation-lib = pkgs.callPackage ../modules/system/activation/lib/test.nix { };
192 activation-nix-channel = runTest ./activation/nix-channel.nix;
193 activation-nixos-init = runTest ./activation/nixos-init.nix;
194 activation-perlless = runTest ./activation/perlless.nix;
195 activation-var = runTest ./activation/var.nix;
196 actual = runTest ./actual.nix;
197 adguardhome = runTest ./adguardhome.nix;
198 aesmd = runTestOn [ "x86_64-linux" ] ./aesmd.nix;
199 agate = runTest ./web-servers/agate.nix;
200 agda = runTest ./agda.nix;
201 age-plugin-tpm-decrypt = runTest ./age-plugin-tpm-decrypt.nix;
202 agnos = discoverTests (import ./agnos.nix);
203 agorakit = runTest ./web-apps/agorakit.nix;
204 airsonic = runTest ./airsonic.nix;
205 akkoma = runTestOn [ "x86_64-linux" "aarch64-linux" ] {
206 imports = [ ./akkoma.nix ];
207 _module.args.confined = false;
208 };
209 akkoma-confined = runTestOn [ "x86_64-linux" "aarch64-linux" ] {
210 imports = [ ./akkoma.nix ];
211 _module.args.confined = true;
212 };
213 alice-lg = runTest ./alice-lg.nix;
214 alloy = runTest ./alloy.nix;
215 allTerminfo = runTest ./all-terminfo.nix;
216 alps = runTest ./alps.nix;
217 amazon-cloudwatch-agent = runTest ./amazon-cloudwatch-agent.nix;
218 amazon-init-shell = runTest ./amazon-init-shell.nix;
219 amazon-ssm-agent = runTest ./amazon-ssm-agent.nix;
220 amd-sev = runTest ./amd-sev.nix;
221 android-translation-layer = runTest ./android-translation-layer.nix;
222 angie-api = runTest ./angie-api.nix;
223 angrr = runTest ./angrr.nix;
224 anki-sync-server = runTest ./anki-sync-server.nix;
225 anubis = runTest ./anubis.nix;
226 anuko-time-tracker = runTest ./anuko-time-tracker.nix;
227 apcupsd = runTest ./apcupsd.nix;
228 apfs = runTest ./apfs.nix;
229 apparmor = runTest ./apparmor;
230 appliance-repart-image = runTest ./appliance-repart-image.nix;
231 appliance-repart-image-verity-store = runTest ./appliance-repart-image-verity-store.nix;
232 archi = runTest ./archi.nix;
233 aria2 = runTest ./aria2.nix;
234 armagetronad = runTest ./armagetronad.nix;
235 artalk = runTest ./artalk.nix;
236 atd = runTest ./atd.nix;
237 atop = import ./atop.nix { inherit pkgs runTest; };
238 atticd = runTest ./atticd.nix;
239 atuin = runTest ./atuin.nix;
240 audiobookshelf = runTest ./audiobookshelf.nix;
241 audit = runTest ./audit.nix;
242 auth-mysql = runTest ./auth-mysql.nix;
243 authelia = runTest ./authelia.nix;
244 auto-cpufreq = runTest ./auto-cpufreq.nix;
245 autobrr = runTest ./autobrr.nix;
246 avahi = runTest {
247 imports = [ ./avahi.nix ];
248 _module.args.networkd = false;
249 };
250 avahi-with-resolved = runTest {
251 imports = [ ./avahi.nix ];
252 _module.args.networkd = true;
253 };
254 ax25 = runTest ./ax25.nix;
255 ayatana-indicators = runTest ./ayatana-indicators.nix;
256 babeld = runTest ./babeld.nix;
257 bazarr = runTest ./bazarr.nix;
258 bcache = runTestOn [ "x86_64-linux" "aarch64-linux" ] ./bcache.nix;
259 bcachefs = runTestOn [ "x86_64-linux" "aarch64-linux" ] ./bcachefs.nix;
260 beanstalkd = runTest ./beanstalkd.nix;
261 bees = runTest ./bees.nix;
262 benchexec = runTest ./benchexec.nix;
263 binary-cache = runTest {
264 imports = [ ./binary-cache.nix ];
265 _module.args.compression = "zstd";
266 };
267 binary-cache-no-compression = runTest {
268 imports = [ ./binary-cache.nix ];
269 _module.args.compression = "none";
270 };
271 binary-cache-xz = runTest {
272 imports = [ ./binary-cache.nix ];
273 _module.args.compression = "xz";
274 };
275 bind = runTest ./bind.nix;
276 bird2 = import ./bird.nix {
277 inherit runTest;
278 package = pkgs.bird2;
279 };
280 bird3 = import ./bird.nix {
281 inherit runTest;
282 package = pkgs.bird3;
283 };
284 birdwatcher = runTest ./birdwatcher.nix;
285 bitbox-bridge = runTest ./bitbox-bridge.nix;
286 bitcoind = runTest ./bitcoind.nix;
287 bittorrent = runTest ./bittorrent.nix;
288 blint = runTest ./blint.nix;
289 blockbook-frontend = runTest ./blockbook-frontend.nix;
290 blocky = runTest ./blocky.nix;
291 bluesky-pds = runTest ./bluesky-pds.nix;
292 bookstack = runTest ./bookstack.nix;
293 boot = handleTestOn [ "x86_64-linux" "aarch64-linux" ] ./boot.nix { };
294 boot-stage1 = runTest ./boot-stage1.nix;
295 boot-stage2 = runTest ./boot-stage2.nix;
296 bootspec = handleTestOn [ "x86_64-linux" ] ./bootspec.nix { };
297 borgbackup = runTest ./borgbackup.nix;
298 borgmatic = runTest ./borgmatic.nix;
299 botamusique = runTest ./botamusique.nix;
300 bpf = runTestOn [ "x86_64-linux" "aarch64-linux" ] ./bpf.nix;
301 bpftune = runTest ./bpftune.nix;
302 breitbandmessung = runTest ./breitbandmessung.nix;
303 broadcast-box = runTest ./broadcast-box.nix;
304 brscan5 = runTest ./brscan5.nix;
305 btrbk = runTest ./btrbk.nix;
306 btrbk-doas = runTest ./btrbk-doas.nix;
307 btrbk-no-timer = runTest ./btrbk-no-timer.nix;
308 btrbk-section-order = runTest ./btrbk-section-order.nix;
309 budgie = runTest ./budgie.nix;
310 buildbot = runTest ./buildbot.nix;
311 buildkite-agents = runTest ./buildkite-agents.nix;
312 c2fmzq = runTest ./c2fmzq.nix;
313 caddy = runTest ./caddy.nix;
314 cadvisor = runTestOn [ "x86_64-linux" ] ./cadvisor.nix;
315 cage = runTest ./cage.nix;
316 cagebreak = runTest ./cagebreak.nix;
317 calibre-server = import ./calibre-server.nix { inherit pkgs runTest; };
318 calibre-web = runTest ./calibre-web.nix;
319 canaille = runTest ./canaille.nix;
320 cassandra = runTest {
321 imports = [ ./cassandra.nix ];
322 _module.args.getPackage = pkgs: pkgs.cassandra;
323 };
324 castopod = runTest ./castopod.nix;
325 centrifugo = runTest ./centrifugo.nix;
326 ceph-multi-node = runTestOn [ "aarch64-linux" "x86_64-linux" ] ./ceph-multi-node.nix;
327 ceph-single-node = runTestOn [ "aarch64-linux" "x86_64-linux" ] ./ceph-single-node.nix;
328 ceph-single-node-bluestore = runTestOn [
329 "aarch64-linux"
330 "x86_64-linux"
331 ] ./ceph-single-node-bluestore.nix;
332 ceph-single-node-bluestore-dmcrypt = runTestOn [
333 "aarch64-linux"
334 "x86_64-linux"
335 ] ./ceph-single-node-bluestore-dmcrypt.nix;
336 certmgr = import ./certmgr.nix { inherit pkgs runTest; };
337 cfssl = runTestOn [ "aarch64-linux" "x86_64-linux" ] ./cfssl.nix;
338 cgit = runTest ./cgit.nix;
339 charliecloud = runTest ./charliecloud.nix;
340 chhoto-url = runTest ./chhoto-url.nix;
341 chromadb = runTest ./chromadb.nix;
342 chromium = (handleTestOn [ "aarch64-linux" "x86_64-linux" ] ./chromium.nix { }).stable or { };
343 chrony = runTestOn [ "aarch64-linux" "x86_64-linux" ] ./chrony.nix;
344 chrony-ptp = runTestOn [ "aarch64-linux" "x86_64-linux" ] ./chrony-ptp.nix;
345 cinnamon = runTest ./cinnamon.nix;
346 cinnamon-wayland = runTest ./cinnamon-wayland.nix;
347 cjdns = runTest ./cjdns.nix;
348 clatd = runTest ./clatd.nix;
349 clickhouse = import ./clickhouse {
350 inherit runTest;
351 package = pkgs.clickhouse;
352 };
353 clickhouse-lts = import ./clickhouse {
354 inherit runTest;
355 package = pkgs.clickhouse-lts;
356 };
357 cloud-init = runTest ./cloud-init.nix;
358 cloud-init-hostname = runTest ./cloud-init-hostname.nix;
359 cloudlog = runTest ./cloudlog.nix;
360 cntr = import ./cntr.nix {
361 inherit (pkgs) lib;
362 runTest = runTestOn [
363 "aarch64-linux"
364 "x86_64-linux"
365 ];
366 };
367 cockpit = runTest ./cockpit.nix;
368 cockroachdb = runTestOn [ "x86_64-linux" ] ./cockroachdb.nix;
369 code-server = runTest ./code-server.nix;
370 coder = runTest ./coder.nix;
371 collectd = runTest ./collectd.nix;
372 commafeed = runTest ./commafeed.nix;
373 connman = runTest ./connman.nix;
374 consul = runTest ./consul.nix;
375 consul-template = runTest ./consul-template.nix;
376 containers-bridge = runTest ./containers-bridge.nix;
377 containers-custom-pkgs.nix = runTest ./containers-custom-pkgs.nix;
378 containers-ephemeral = runTest ./containers-ephemeral.nix;
379 containers-extra_veth = runTest ./containers-extra_veth.nix;
380 containers-hosts = runTest ./containers-hosts.nix;
381 containers-imperative = runTest ./containers-imperative.nix;
382 containers-ip = runTest ./containers-ip.nix;
383 containers-macvlans = runTest ./containers-macvlans.nix;
384 containers-names = runTest ./containers-names.nix;
385 containers-nested = runTest ./containers-nested.nix;
386 containers-physical_interfaces = runTest ./containers-physical_interfaces.nix;
387 containers-portforward = runTest ./containers-portforward.nix;
388 containers-reloadable = runTest ./containers-reloadable.nix;
389 containers-require-bind-mounts = runTest ./containers-require-bind-mounts.nix;
390 containers-restart_networking = runTest ./containers-restart_networking.nix;
391 containers-tmpfs = runTest ./containers-tmpfs.nix;
392 containers-unified-hierarchy = runTest ./containers-unified-hierarchy.nix;
393 convos = runTest ./convos.nix;
394 corerad = runTest ./corerad.nix;
395 corteza = runTest ./corteza.nix;
396 cosmic = runTest {
397 imports = [ ./cosmic.nix ];
398 _module.args.testName = "cosmic";
399 _module.args.enableAutologin = false;
400 _module.args.enableXWayland = true;
401 };
402 cosmic-autologin = runTest {
403 imports = [ ./cosmic.nix ];
404 _module.args.testName = "cosmic-autologin";
405 _module.args.enableAutologin = true;
406 _module.args.enableXWayland = true;
407 };
408 cosmic-autologin-noxwayland = runTest {
409 imports = [ ./cosmic.nix ];
410 _module.args.testName = "cosmic-autologin-noxwayland";
411 _module.args.enableAutologin = true;
412 _module.args.enableXWayland = false;
413 };
414 cosmic-noxwayland = runTest {
415 imports = [ ./cosmic.nix ];
416 _module.args.testName = "cosmic-noxwayland";
417 _module.args.enableAutologin = false;
418 _module.args.enableXWayland = false;
419 };
420 coturn = runTest ./coturn.nix;
421 couchdb = runTest ./couchdb.nix;
422 crabfit = runTest ./crabfit.nix;
423 cri-o = runTestOn [ "aarch64-linux" "x86_64-linux" ] ./cri-o.nix;
424 croc = runTest ./croc.nix;
425 cross-seed = runTest ./cross-seed.nix;
426 cryptpad = runTest ./cryptpad.nix;
427 cups-pdf = runTest ./cups-pdf.nix;
428 curl-impersonate = runTest ./curl-impersonate.nix;
429 custom-ca = import ./custom-ca.nix { inherit pkgs runTest; };
430 cyrus-imap = runTest ./cyrus-imap.nix;
431 dae = runTest ./dae.nix;
432 darling-dmg = runTest ./darling-dmg.nix;
433 dashy = runTest ./web-apps/dashy.nix;
434 davis = runTest ./davis.nix;
435 db-rest = runTest ./db-rest.nix;
436 dconf = runTest ./dconf.nix;
437 ddns-updater = runTest ./ddns-updater.nix;
438 deconz = runTest ./deconz.nix;
439 deluge = runTest ./deluge.nix;
440 dendrite = runTest ./matrix/dendrite.nix;
441 dep-scan = runTest ./dep-scan.nix;
442 dependency-track = runTest ./dependency-track.nix;
443 devpi-server = runTest ./devpi-server.nix;
444 dex-oidc = runTest ./dex-oidc.nix;
445 dhparams = runTest ./dhparams.nix;
446 disable-installer-tools = runTest ./disable-installer-tools.nix;
447 discourse = runTest {
448 imports = [ ./discourse.nix ];
449 _module.args.package = pkgs.discourse;
450 };
451 discourseAllPlugins = runTest {
452 imports = [ ./discourse.nix ];
453 _module.args.package = pkgs.discourseAllPlugins;
454 };
455 dnscrypt-proxy = runTestOn [ "x86_64-linux" ] ./dnscrypt-proxy.nix;
456 dnsdist = import ./dnsdist.nix { inherit pkgs runTest; };
457 doas = runTest ./doas.nix;
458 docker = runTestOn [ "aarch64-linux" "x86_64-linux" ] ./docker.nix;
459 docker-registry = runTest ./docker-registry.nix;
460 docker-rootless = runTestOn [ "aarch64-linux" "x86_64-linux" ] ./docker-rootless.nix;
461 docker-tools = runTestOn [ "x86_64-linux" ] ./docker-tools.nix;
462 docker-tools-cross = runTestOn [ "x86_64-linux" "aarch64-linux" ] ./docker-tools-cross.nix;
463 docker-tools-nix-shell = runTest ./docker-tools-nix-shell.nix;
464 docker-tools-overlay = runTestOn [ "x86_64-linux" ] ./docker-tools-overlay.nix;
465 docling-serve = runTest ./docling-serve.nix;
466 documentation = pkgs.callPackage ../modules/misc/documentation/test.nix { inherit nixosLib; };
467 documize = runTest ./documize.nix;
468 doh-proxy-rust = runTest ./doh-proxy-rust.nix;
469 dokuwiki = runTest ./dokuwiki.nix;
470 dolibarr = runTest ./dolibarr.nix;
471 domination = runTest ./domination.nix;
472 dovecot = runTest ./dovecot.nix;
473 draupnir = runTest ./matrix/draupnir.nix;
474 drawterm = discoverTests (import ./drawterm.nix);
475 drbd = runTest ./drbd.nix;
476 drbd-driver = runTest ./drbd-driver.nix;
477 druid = handleTestOn [ "x86_64-linux" ] ./druid { };
478 drupal = runTest ./drupal.nix;
479 dublin-traceroute = runTest ./dublin-traceroute.nix;
480 dwl = runTestOn [ "x86_64-linux" "aarch64-linux" ] ./dwl.nix;
481 early-mount-options = runTest ./early-mount-options.nix;
482 earlyoom = runTestOn [ "x86_64-linux" ] ./earlyoom.nix;
483 easytier = runTest ./easytier.nix;
484 ec2-config = (handleTestOn [ "x86_64-linux" ] ./ec2.nix { }).boot-ec2-config or { };
485 ec2-nixops = (handleTestOn [ "x86_64-linux" ] ./ec2.nix { }).boot-ec2-nixops or { };
486 echoip = runTest ./echoip.nix;
487 ecryptfs = runTest ./ecryptfs.nix;
488 ejabberd = runTest ./xmpp/ejabberd.nix;
489 elk = handleTestOn [ "x86_64-linux" ] ./elk.nix { };
490 emacs-daemon = runTest ./emacs-daemon.nix;
491 endlessh = runTest ./endlessh.nix;
492 endlessh-go = runTest ./endlessh-go.nix;
493 engelsystem = runTest ./engelsystem.nix;
494 enlightenment = runTest ./enlightenment.nix;
495 ente = runTest ./ente;
496 env = runTest ./env.nix;
497 envfs = runTest ./envfs.nix;
498 envoy = runTest {
499 imports = [ ./envoy.nix ];
500 _module.args.envoyPackage = pkgs.envoy;
501 };
502 envoy-bin = runTest {
503 imports = [ ./envoy.nix ];
504 _module.args.envoyPackage = pkgs.envoy-bin;
505 };
506 ergo = runTest ./ergo.nix;
507 ergochat = runTest ./ergochat.nix;
508 esphome = runTest ./esphome.nix;
509 etc = pkgs.callPackage ../modules/system/etc/test.nix { inherit evalMinimalConfig; };
510 etcd = runTestOn [ "aarch64-linux" "x86_64-linux" ] ./etcd/etcd.nix;
511 etcd-cluster = runTestOn [ "aarch64-linux" "x86_64-linux" ] ./etcd/etcd-cluster.nix;
512 etebase-server = runTest ./etebase-server.nix;
513 etesync-dav = runTest ./etesync-dav.nix;
514 evcc = runTest ./evcc.nix;
515 fail2ban = runTest ./fail2ban.nix;
516 fakeroute = runTest ./fakeroute.nix;
517 fancontrol = runTest ./fancontrol.nix;
518 fanout = runTest ./fanout.nix;
519 fastnetmon-advanced = runTest ./fastnetmon-advanced.nix;
520 fcitx5 = runTest ./fcitx5;
521 fedimintd = runTest ./fedimintd.nix;
522 ferm = runTest ./ferm.nix;
523 ferretdb = import ./ferretdb.nix { inherit pkgs runTest; };
524 fider = runTest ./fider.nix;
525 filebrowser = runTest ./filebrowser.nix;
526 filesender = runTest ./filesender.nix;
527 filesystems-overlayfs = runTest ./filesystems-overlayfs.nix;
528 firefly-iii = runTest ./firefly-iii.nix;
529 firefly-iii-data-importer = runTest ./firefly-iii-data-importer.nix;
530 firefox = runTest {
531 imports = [ ./firefox.nix ];
532 _module.args.firefoxPackage = pkgs.firefox;
533 };
534 firefox-beta = runTest {
535 imports = [ ./firefox.nix ];
536 _module.args.firefoxPackage = pkgs.firefox-beta;
537 };
538 firefox-devedition = runTest {
539 imports = [ ./firefox.nix ];
540 _module.args.firefoxPackage = pkgs.firefox-devedition;
541 };
542 firefox-esr = runTest {
543 # used in `tested` job
544 imports = [ ./firefox.nix ];
545 _module.args.firefoxPackage = pkgs.firefox-esr;
546 };
547 firefox-esr-140 = runTest {
548 imports = [ ./firefox.nix ];
549 _module.args.firefoxPackage = pkgs.firefox-esr-140;
550 };
551 firefoxpwa = runTest ./firefoxpwa.nix;
552 firejail = runTest ./firejail.nix;
553 firewall = runTest {
554 imports = [ ./firewall.nix ];
555 _module.args.nftables = false;
556 };
557 firewall-nftables = runTest {
558 imports = [ ./firewall.nix ];
559 _module.args.nftables = true;
560 };
561 firezone = runTest ./firezone/firezone.nix;
562 fish = runTest ./fish.nix;
563 flannel = runTestOn [ "x86_64-linux" ] ./flannel.nix;
564 flaresolverr = runTest ./flaresolverr.nix;
565 flood = runTest ./flood.nix;
566 fluent-bit = runTest ./fluent-bit.nix;
567 fluentd = runTest ./fluentd.nix;
568 fluidd = runTest ./fluidd.nix;
569 fontconfig-default-fonts = runTest ./fontconfig-default-fonts.nix;
570 forgejo = import ./forgejo.nix {
571 inherit runTest;
572 forgejoPackage = pkgs.forgejo;
573 };
574 forgejo-lts = import ./forgejo.nix {
575 inherit runTest;
576 forgejoPackage = pkgs.forgejo-lts;
577 };
578 freenet = runTest ./freenet.nix;
579 freeswitch = runTest ./freeswitch.nix;
580 freetube = discoverTests (import ./freetube.nix);
581 freshrss = import ./freshrss { inherit runTest; };
582 frigate = runTest ./frigate.nix;
583 froide-govplan = runTest ./web-apps/froide-govplan.nix;
584 frp = runTest ./frp.nix;
585 frr = runTest ./frr.nix;
586 fsck = runTest {
587 imports = [ ./fsck.nix ];
588 _module.args.systemdStage1 = false;
589 };
590 fsck-systemd-stage-1 = runTest {
591 imports = [ ./fsck.nix ];
592 _module.args.systemdStage1 = true;
593 };
594 fscrypt = runTest ./fscrypt.nix;
595 ft2-clone = runTest ./ft2-clone.nix;
596 galene = discoverTests (import ./galene.nix { inherit runTest; });
597 gancio = runTest ./gancio.nix;
598 garage_1 = import ./garage {
599 inherit runTest;
600 package = pkgs.garage_1;
601 };
602 garage_2 = import ./garage {
603 inherit runTest;
604 package = pkgs.garage_2;
605 };
606 gatus = runTest ./gatus.nix;
607 gemstash = import ./gemstash.nix { inherit pkgs runTest; };
608 geoclue2 = runTest ./geoclue2.nix;
609 geoserver = runTest ./geoserver.nix;
610 gerrit = runTest ./gerrit.nix;
611 getaddrinfo = runTest ./getaddrinfo.nix;
612 geth = runTest ./geth.nix;
613 ghostunnel = runTest ./ghostunnel.nix;
614 ghostunnel-modular = runTest ./ghostunnel-modular.nix;
615 gitdaemon = runTest ./gitdaemon.nix;
616 gitea = handleTest ./gitea.nix { giteaPackage = pkgs.gitea; };
617 github-runner = runTest ./github-runner.nix;
618 gitlab = runTest ./gitlab.nix;
619 gitolite = runTest ./gitolite.nix;
620 gitolite-fcgiwrap = runTest ./gitolite-fcgiwrap.nix;
621 glance = runTest ./glance.nix;
622 glances = runTest ./glances.nix;
623 glitchtip = runTest ./glitchtip.nix;
624 glusterfs = runTest ./glusterfs.nix;
625 gnome = runTest ./gnome.nix;
626 gnome-extensions = runTest ./gnome-extensions.nix;
627 gnome-flashback = runTest ./gnome-flashback.nix;
628 gnome-xorg = runTest ./gnome-xorg.nix;
629 gns3-server = runTest ./gns3-server.nix;
630 gnupg = runTest ./gnupg.nix;
631 go-camo = runTest ./go-camo.nix;
632 go-httpbin = runTest ./go-httpbin.nix;
633 go-neb = runTest ./go-neb.nix;
634 goatcounter = runTest ./goatcounter.nix;
635 gobgpd = runTest ./gobgpd.nix;
636 gocd-agent = runTest ./gocd-agent.nix;
637 gocd-server = runTest ./gocd-server.nix;
638 gokapi = runTest ./gokapi.nix;
639 gollum = runTest ./gollum.nix;
640 gonic = runTest ./gonic.nix;
641 google-oslogin = runTest ./google-oslogin;
642 gopro-tool = runTest ./gopro-tool.nix;
643 goss = runTest ./goss.nix;
644 gotenberg = runTest ./gotenberg.nix;
645 gotify-server = runTest ./gotify-server.nix;
646 gotosocial = runTest ./web-apps/gotosocial.nix;
647 grafana = handleTest ./grafana { };
648 graphite = runTest ./graphite.nix;
649 grav = runTest ./web-apps/grav.nix;
650 graylog = runTest ./graylog.nix;
651 greetd-no-shadow = runTest ./greetd-no-shadow.nix;
652 grocy = runTest ./grocy.nix;
653 grow-partition = runTest ./grow-partition.nix;
654 grub = runTest ./grub.nix;
655 guacamole-server = runTest ./guacamole-server.nix;
656 guix = handleTest ./guix { };
657 gvisor = runTest ./gvisor.nix;
658 h2o = import ./web-servers/h2o { inherit recurseIntoAttrs runTest; };
659 hadoop = import ./hadoop {
660 inherit handleTestOn;
661 package = pkgs.hadoop;
662 };
663 hadoop2 = import ./hadoop {
664 inherit handleTestOn;
665 package = pkgs.hadoop2;
666 };
667 hadoop_3_3 = import ./hadoop {
668 inherit handleTestOn;
669 package = pkgs.hadoop_3_3;
670 };
671 haproxy = runTest ./haproxy.nix;
672 hardened = runTest ./hardened.nix;
673 harmonia = runTest ./harmonia.nix;
674 haste-server = runTest ./haste-server.nix;
675 hbase2 = runTest {
676 imports = [ ./hbase.nix ];
677 _module.args.getPackage = pkgs: pkgs.hbase2;
678 };
679 hbase3 = runTest {
680 imports = [ ./hbase.nix ];
681 _module.args.getPackage = pkgs: pkgs.hbase3;
682 };
683 hbase_2_4 = runTest {
684 imports = [ ./hbase.nix ];
685 _module.args.getPackage = pkgs: pkgs.hbase_2_4;
686 };
687 hbase_2_5 = runTest {
688 imports = [ ./hbase.nix ];
689 _module.args.getPackage = pkgs: pkgs.hbase_2_5;
690 };
691 headscale = runTest ./headscale.nix;
692 healthchecks = runTest ./web-apps/healthchecks.nix;
693 hedgedoc = runTest ./hedgedoc.nix;
694 herbstluftwm = runTest ./herbstluftwm.nix;
695 # 9pnet_virtio used to mount /nix partition doesn't support
696 # hibernation. This test happens to work on x86_64-linux but
697 # not on other platforms.
698 hibernate = handleTestOn [ "x86_64-linux" ] ./hibernate.nix { };
699 hibernate-systemd-stage-1 = handleTestOn [ "x86_64-linux" ] ./hibernate.nix {
700 systemdStage1 = true;
701 };
702 hitch = handleTest ./hitch { };
703 hledger-web = runTest ./hledger-web.nix;
704 hockeypuck = runTest ./hockeypuck.nix;
705 home-assistant = runTest ./home-assistant.nix;
706 homebox = runTest ./homebox.nix;
707 homebridge = runTest ./homebridge.nix;
708 homepage-dashboard = runTest ./homepage-dashboard.nix;
709 homer = handleTest ./homer { };
710 honk = runTest ./honk.nix;
711 hostname = handleTest ./hostname.nix { };
712 hound = runTest ./hound.nix;
713 hub = runTest ./git/hub.nix;
714 hydra = runTest ./hydra;
715 i18n = runTest ./i18n.nix;
716 i3wm = runTest ./i3wm.nix;
717 icingaweb2 = runTest ./icingaweb2.nix;
718 ifm = runTest ./ifm.nix;
719 ifstate = import ./ifstate { inherit runTest; };
720 iftop = runTest ./iftop.nix;
721 image-contents = handleTest ./image-contents.nix { };
722 immich = runTest ./web-apps/immich.nix;
723 immich-public-proxy = runTest ./web-apps/immich-public-proxy.nix;
724 immich-vectorchord-migration = runTest ./web-apps/immich-vectorchord-migration.nix;
725 incron = runTest ./incron.nix;
726 incus = pkgs.recurseIntoAttrs (
727 handleTest ./incus {
728 lts = false;
729 inherit system pkgs;
730 }
731 );
732 incus-lts = pkgs.recurseIntoAttrs (handleTest ./incus { inherit system pkgs; });
733 influxdb = runTest ./influxdb.nix;
734 influxdb2 = runTest ./influxdb2.nix;
735 initrd-luks-empty-passphrase = runTest ./initrd-luks-empty-passphrase.nix;
736 initrd-network-openvpn = handleTestOn [ "x86_64-linux" "i686-linux" ] ./initrd-network-openvpn { };
737 initrd-network-ssh = handleTest ./initrd-network-ssh { };
738 initrd-secrets = handleTest ./initrd-secrets.nix { };
739 initrd-secrets-changing = handleTest ./initrd-secrets-changing.nix { };
740 initrdNetwork = runTest ./initrd-network.nix;
741 input-remapper = runTest ./input-remapper.nix;
742 inspircd = runTest ./inspircd.nix;
743 installed-tests = pkgs.recurseIntoAttrs (handleTest ./installed-tests { });
744 installer = handleTest ./installer.nix { };
745 installer-systemd-stage-1 = handleTest ./installer-systemd-stage-1.nix { };
746 intune = runTest ./intune.nix;
747 invidious = runTest ./invidious.nix;
748 invoiceplane = runTest ./invoiceplane.nix;
749 iodine = runTest ./iodine.nix;
750 iosched = runTest ./iosched.nix;
751 ipget = runTest ./ipget.nix;
752 ipv6 = runTest ./ipv6.nix;
753 iscsi-multipath-root = runTest ./iscsi-multipath-root.nix;
754 iscsi-root = runTest ./iscsi-root.nix;
755 isolate = runTest ./isolate.nix;
756 isso = runTest ./isso.nix;
757 jackett = runTest ./jackett.nix;
758 jellyfin = runTest ./jellyfin.nix;
759 jellyseerr = runTest ./jellyseerr.nix;
760 jenkins = runTest ./jenkins.nix;
761 jenkins-cli = runTest ./jenkins-cli.nix;
762 jibri = runTest ./jibri.nix;
763 jirafeau = runTest ./jirafeau.nix;
764 jitsi-meet = runTest ./jitsi-meet.nix;
765 jool = import ./jool.nix { inherit pkgs runTest; };
766 jotta-cli = runTest ./jotta-cli.nix;
767 k3s = handleTest ./k3s { };
768 kafka = handleTest ./kafka { };
769 kanboard = runTest ./web-apps/kanboard.nix;
770 kanidm = runTest ./kanidm.nix;
771 kanidm-provisioning = runTest ./kanidm-provisioning.nix;
772 karma = runTest ./karma.nix;
773 kavita = runTest ./kavita.nix;
774 kbd-setfont-decompress = runTest ./kbd-setfont-decompress.nix;
775 kbd-update-search-paths-patch = runTest ./kbd-update-search-paths-patch.nix;
776 kea = runTest ./kea.nix;
777 keepalived = runTest ./keepalived.nix;
778 keepassxc = runTest ./keepassxc.nix;
779 kerberos = handleTest ./kerberos/default.nix { };
780 kernel-generic = handleTest ./kernel-generic.nix { };
781 kernel-latest-ath-user-regd = runTest ./kernel-latest-ath-user-regd.nix;
782 kernel-rust = handleTest ./kernel-rust.nix { };
783 keter = runTest ./keter.nix;
784 kexec = runTest ./kexec.nix;
785 keycloak = discoverTests (import ./keycloak.nix);
786 keyd = handleTest ./keyd.nix { };
787 keymap = handleTest ./keymap.nix { };
788 kimai = runTest ./kimai.nix;
789 kismet = runTest ./kismet.nix;
790 kmonad = runTest ./kmonad.nix;
791 knot = runTest ./knot.nix;
792 komga = runTest ./komga.nix;
793 krb5 = discoverTests (import ./krb5);
794 ksm = runTest ./ksm.nix;
795 kthxbye = runTest ./kthxbye.nix;
796 kubernetes = handleTestOn [ "x86_64-linux" ] ./kubernetes { };
797 kubo = import ./kubo { inherit recurseIntoAttrs runTest; };
798 lact = runTest ./lact.nix;
799 ladybird = runTest ./ladybird.nix;
800 languagetool = runTest ./languagetool.nix;
801 lanraragi = runTest ./lanraragi.nix;
802 lasuite-docs = runTest ./web-apps/lasuite-docs.nix;
803 lasuite-meet = runTest ./web-apps/lasuite-meet.nix;
804 latestKernel.login = runTest {
805 imports = [ ./login.nix ];
806 _module.args.latestKernel = true;
807 };
808 lauti = runTest ./lauti.nix;
809 lavalink = runTest ./lavalink.nix;
810 leaps = runTest ./leaps.nix;
811 legit = runTest ./legit.nix;
812 lemmy = runTest ./lemmy.nix;
813 lemurs = runTest ./lemurs/lemurs.nix;
814 lemurs-wayland = runTest ./lemurs/lemurs-wayland.nix;
815 lemurs-wayland-script = runTest ./lemurs/lemurs-wayland-script.nix;
816 lemurs-xorg = runTest ./lemurs/lemurs-xorg.nix;
817 lemurs-xorg-script = runTest ./lemurs/lemurs-xorg-script.nix;
818 libinput = runTest ./libinput.nix;
819 librenms = runTest ./librenms.nix;
820 libresprite = runTest ./libresprite.nix;
821 libreswan = runTest ./libreswan.nix;
822 libreswan-nat = runTest ./libreswan-nat.nix;
823 librewolf = runTest {
824 imports = [ ./firefox.nix ];
825 _module.args.firefoxPackage = pkgs.librewolf;
826 };
827 libuiohook = runTest ./libuiohook.nix;
828 libvirtd = runTest ./libvirtd.nix;
829 lidarr = runTest ./lidarr.nix;
830 lightdm = runTest ./lightdm.nix;
831 lighttpd = runTest ./lighttpd.nix;
832 limesurvey = runTest ./limesurvey.nix;
833 limine = import ./limine { inherit runTest; };
834 listmonk = handleTestOn [ "x86_64-linux" "aarch64-linux" ] ./listmonk.nix { };
835 litellm = runTest ./litellm.nix;
836 litestream = runTest ./litestream.nix;
837 livebook-service = runTest ./livebook-service.nix;
838 livekit = runTest ./networking/livekit.nix;
839 lk-jwt-service = runTest ./matrix/lk-jwt-service.nix;
840 llama-swap = runTest ./web-servers/llama-swap.nix;
841 lldap = runTest ./lldap.nix;
842 localsend = runTest ./localsend.nix;
843 locate = runTest ./locate.nix;
844 login = runTest ./login.nix;
845 logrotate = runTest ./logrotate.nix;
846 loki = runTest ./loki.nix;
847 #logstash = handleTest ./logstash.nix {};
848 lomiri = discoverTests (import ./lomiri.nix);
849 lomiri-calculator-app = runTest ./lomiri-calculator-app.nix;
850 lomiri-calendar-app = runTest ./lomiri-calendar-app.nix;
851 lomiri-camera-app = discoverTests (import ./lomiri-camera-app.nix);
852 lomiri-clock-app = runTest ./lomiri-clock-app.nix;
853 lomiri-docviewer-app = runTest ./lomiri-docviewer-app.nix;
854 lomiri-filemanager-app = runTest ./lomiri-filemanager-app.nix;
855 lomiri-gallery-app = discoverTests (import ./lomiri-gallery-app.nix);
856 lomiri-mediaplayer-app = runTest ./lomiri-mediaplayer-app.nix;
857 lomiri-music-app = runTest ./lomiri-music-app.nix;
858 lomiri-system-settings = runTest ./lomiri-system-settings.nix;
859 lorri = handleTest ./lorri/default.nix { };
860 luks = runTest ./luks.nix;
861 lvm2 = handleTest ./lvm2 { };
862 lxc = handleTest ./lxc { };
863 lxd-image-server = runTest ./lxd-image-server.nix;
864 lxqt = runTest ./lxqt.nix;
865 ly = runTest ./ly.nix;
866 maddy = discoverTests (import ./maddy { inherit handleTest; });
867 maestral = runTest ./maestral.nix;
868 magic-wormhole-mailbox-server = runTest ./magic-wormhole-mailbox-server.nix;
869 magnetico = runTest ./magnetico.nix;
870 mailcatcher = runTest ./mailcatcher.nix;
871 mailhog = runTest ./mailhog.nix;
872 mailman = runTest ./mailman.nix;
873 mailpit = runTest ./mailpit.nix;
874 man = runTest ./man.nix;
875 mariadb-galera = handleTest ./mysql/mariadb-galera.nix { };
876 marytts = runTest ./marytts.nix;
877 mastodon = pkgs.recurseIntoAttrs (handleTest ./web-apps/mastodon { inherit handleTestOn; });
878 mate = runTest ./mate.nix;
879 mate-wayland = runTest ./mate-wayland.nix;
880 matomo = runTest ./matomo.nix;
881 matrix-alertmanager = runTest ./matrix/matrix-alertmanager.nix;
882 matrix-appservice-irc = runTest ./matrix/appservice-irc.nix;
883 matrix-conduit = runTest ./matrix/conduit.nix;
884 matrix-continuwuity = runTest ./matrix/continuwuity.nix;
885 matrix-synapse = runTest ./matrix/synapse.nix;
886 matrix-synapse-workers = runTest ./matrix/synapse-workers.nix;
887 matrix-tuwunel = runTest ./matrix/tuwunel.nix;
888 matter-server = runTest ./matter-server.nix;
889 mattermost = handleTest ./mattermost { };
890 mautrix-discord = runTest ./matrix/mautrix-discord.nix;
891 mautrix-meta-postgres = runTest ./matrix/mautrix-meta-postgres.nix;
892 mautrix-meta-sqlite = runTest ./matrix/mautrix-meta-sqlite.nix;
893 mealie = runTest ./mealie.nix;
894 mediamtx = runTest ./mediamtx.nix;
895 mediatomb = runTest ./mediatomb.nix;
896 mediawiki = handleTest ./mediawiki.nix { };
897 meilisearch = runTest ./meilisearch.nix;
898 memcached = runTest ./memcached.nix;
899 merecat = runTest ./merecat.nix;
900 metabase = runTest ./metabase.nix;
901 mihomo = runTest ./mihomo.nix;
902 mimir = runTest ./mimir.nix;
903 mindustry = runTest ./mindustry.nix;
904 minecraft-server = runTest ./minecraft-server.nix;
905 minidlna = runTest ./minidlna.nix;
906 miniflux = runTest ./miniflux.nix;
907 minio = runTest ./minio.nix;
908 miracle-wm = runTest ./miracle-wm.nix;
909 miriway = runTest ./miriway.nix;
910 misc = runTest ./misc.nix;
911 misskey = runTest ./misskey.nix;
912 mitmproxy = runTest ./mitmproxy.nix;
913 mjolnir = runTest ./matrix/mjolnir.nix;
914 mobilizon = runTest ./mobilizon.nix;
915 mod_perl = runTest ./mod_perl.nix;
916 modular-service-etc = runTest ./modular-service-etc/test.nix;
917 modularService = pkgs.callPackage ../modules/system/service/systemd/test.nix {
918 inherit evalSystem;
919 };
920 molly-brown = runTest ./molly-brown.nix;
921 mollysocket = runTest ./mollysocket.nix;
922 monado = runTest ./monado.nix;
923 monetdb = runTest ./monetdb.nix;
924 mongodb = runTest ./mongodb.nix;
925 mongodb-ce = runTest (
926 { config, ... }:
927 {
928 imports = [ ./mongodb.nix ];
929 defaults.services.mongodb.package = config.node.pkgs.mongodb-ce;
930 }
931 );
932 monica = runTest ./web-apps/monica.nix;
933 moodle = runTest ./moodle.nix;
934 moonraker = runTest ./moonraker.nix;
935 moosefs = runTest ./moosefs.nix;
936 mopidy = runTest ./mopidy.nix;
937 morph-browser = runTest ./morph-browser.nix;
938 mosquitto = runTest ./mosquitto.nix;
939 movim = import ./web-apps/movim { inherit recurseIntoAttrs runTest; };
940 mpd = runTest ./mpd.nix;
941 mpv = runTest ./mpv.nix;
942 mtp = runTest ./mtp.nix;
943 multipass = runTest ./multipass.nix;
944 mumble = runTest ./mumble.nix;
945 munin = runTest ./munin.nix;
946 # Fails on aarch64-linux at the PDF creation step - need to debug this on an
947 # aarch64 machine..
948 musescore = runTestOn [ "x86_64-linux" ] ./musescore.nix;
949 music-assistant = runTest ./music-assistant.nix;
950 mutableUsers = runTest ./mutable-users.nix;
951 mycelium = runTest ./mycelium;
952 mympd = runTest ./mympd.nix;
953 mysql = handleTest ./mysql/mysql.nix { };
954 mysql-autobackup = handleTest ./mysql/mysql-autobackup.nix { };
955 mysql-backup = handleTest ./mysql/mysql-backup.nix { };
956 mysql-replication = handleTest ./mysql/mysql-replication.nix { };
957 n8n = runTest ./n8n.nix;
958 nagios = runTestOn [ "x86_64-linux" "aarch64-linux" ] ./nagios.nix;
959 nar-serve = runTest ./nar-serve.nix;
960 nat.firewall = handleTest ./nat.nix { withFirewall = true; };
961 nat.nftables.firewall = handleTest ./nat.nix {
962 withFirewall = true;
963 nftables = true;
964 };
965 nat.nftables.standalone = handleTest ./nat.nix {
966 withFirewall = false;
967 nftables = true;
968 };
969 nat.standalone = handleTest ./nat.nix { withFirewall = false; };
970 nats = runTest ./nats.nix;
971 navidrome = runTest ./navidrome.nix;
972 nbd = runTest ./nbd.nix;
973 ncdns = runTest ./ncdns.nix;
974 ncps = runTest ./ncps.nix;
975 ncps-custom-cache-datapath = runTest {
976 imports = [ ./ncps.nix ];
977 defaults.services.ncps.cache.dataPath = "/path/to/ncps";
978 };
979 ndppd = runTest ./ndppd.nix;
980 nebula = runTest ./nebula.nix;
981 neo4j = runTest ./neo4j.nix;
982 netbird = runTest ./netbird.nix;
983 netbox-upgrade = runTest ./web-apps/netbox-upgrade.nix;
984 netbox_4_1 = handleTest ./web-apps/netbox/default.nix { netbox = pkgs.netbox_4_1; };
985 netbox_4_2 = handleTest ./web-apps/netbox/default.nix { netbox = pkgs.netbox_4_2; };
986 netbox_4_3 = handleTest ./web-apps/netbox/default.nix { netbox = pkgs.netbox_4_3; };
987 netdata = runTest ./netdata.nix;
988 networking.networkd = handleTest ./networking/networkd-and-scripted.nix { networkd = true; };
989 networking.networkmanager = handleTest ./networking/networkmanager.nix { };
990 networking.scripted = handleTest ./networking/networkd-and-scripted.nix { networkd = false; };
991 # TODO: put in networking.nix after the test becomes more complete
992 networkingProxy = runTest ./networking-proxy.nix;
993 nextcloud = handleTest ./nextcloud { };
994 nextflow = runTestOn [ "x86_64-linux" ] ./nextflow.nix;
995 nextjs-ollama-llm-ui = runTest ./web-apps/nextjs-ollama-llm-ui.nix;
996 nexus = runTest ./nexus.nix;
997 # TODO: Test nfsv3 + Kerberos
998 nfs3 = handleTest ./nfs { version = 3; };
999 nfs4 = handleTest ./nfs { version = 4; };
1000 nghttpx = runTest ./nghttpx.nix;
1001 nginx = runTest ./nginx.nix;
1002 nginx-auth = runTest ./nginx-auth.nix;
1003 nginx-etag = runTest ./nginx-etag.nix;
1004 nginx-etag-compression = runTest ./nginx-etag-compression.nix;
1005 nginx-globalredirect = runTest ./nginx-globalredirect.nix;
1006 nginx-http3 = import ./nginx-http3.nix { inherit pkgs runTest; };
1007 nginx-mime = runTest ./nginx-mime.nix;
1008 nginx-modsecurity = runTest ./nginx-modsecurity.nix;
1009 nginx-moreheaders = runTest ./nginx-moreheaders.nix;
1010 nginx-njs = runTest ./nginx-njs.nix;
1011 nginx-proxyprotocol = runTest ./nginx-proxyprotocol/default.nix;
1012 nginx-pubhtml = runTest ./nginx-pubhtml.nix;
1013 nginx-redirectcode = runTest ./nginx-redirectcode.nix;
1014 nginx-sso = runTest ./nginx-sso.nix;
1015 nginx-status-page = runTest ./nginx-status-page.nix;
1016 nginx-tmpdir = runTest ./nginx-tmpdir.nix;
1017 nginx-unix-socket = runTest ./nginx-unix-socket.nix;
1018 nginx-variants = import ./nginx-variants.nix { inherit pkgs runTest; };
1019 nifi = runTestOn [ "x86_64-linux" ] ./web-apps/nifi.nix;
1020 nimdow = runTest ./nimdow.nix;
1021 nipap = runTest ./web-apps/nipap.nix;
1022 nitter = runTest ./nitter.nix;
1023 nix-channel = pkgs.callPackage ../modules/config/nix-channel/test.nix { };
1024 nix-config = runTest ./nix-config.nix;
1025 nix-ld = runTest ./nix-ld.nix;
1026 nix-misc = handleTest ./nix/misc.nix { };
1027 nix-required-mounts = runTest ./nix-required-mounts;
1028 nix-serve = runTest ./nix-serve.nix;
1029 nix-serve-ssh = runTest ./nix-serve-ssh.nix;
1030 nix-store-veritysetup = runTest ./nix-store-veritysetup.nix;
1031 nix-upgrade = handleTest ./nix/upgrade.nix {
1032 inherit (pkgs) nixVersions;
1033 inherit system;
1034 };
1035 nixops = handleTest ./nixops/default.nix { };
1036 nixos-generate-config = runTest ./nixos-generate-config.nix;
1037 nixos-rebuild-install-bootloader = handleTestOn [
1038 "x86_64-linux"
1039 ] ./nixos-rebuild-install-bootloader.nix { withNg = false; };
1040 nixos-rebuild-install-bootloader-ng = handleTestOn [
1041 "x86_64-linux"
1042 ] ./nixos-rebuild-install-bootloader.nix { withNg = true; };
1043 nixos-rebuild-specialisations = runTestOn [ "x86_64-linux" ] {
1044 imports = [ ./nixos-rebuild-specialisations.nix ];
1045 _module.args.withNg = false;
1046 };
1047 nixos-rebuild-specialisations-ng = runTestOn [ "x86_64-linux" ] {
1048 imports = [ ./nixos-rebuild-specialisations.nix ];
1049 _module.args.withNg = true;
1050 };
1051 nixos-rebuild-target-host = runTest {
1052 imports = [ ./nixos-rebuild-target-host.nix ];
1053 _module.args.withNg = false;
1054 };
1055 nixos-rebuild-target-host-ng = runTest {
1056 imports = [ ./nixos-rebuild-target-host.nix ];
1057 _module.args.withNg = true;
1058 };
1059 nixpkgs = pkgs.callPackage ../modules/misc/nixpkgs/test.nix { inherit evalMinimalConfig; };
1060 nixseparatedebuginfod = runTest ./nixseparatedebuginfod.nix;
1061 nixseparatedebuginfod2 = runTest ./nixseparatedebuginfod2.nix;
1062 node-red = runTest ./node-red.nix;
1063 nomad = runTest ./nomad.nix;
1064 nominatim = runTest ./nominatim.nix;
1065 non-default-filesystems = handleTest ./non-default-filesystems.nix { };
1066 non-switchable-system = runTest ./non-switchable-system.nix;
1067 noto-fonts = runTest ./noto-fonts.nix;
1068 noto-fonts-cjk-qt-default-weight = runTest ./noto-fonts-cjk-qt-default-weight.nix;
1069 novacomd = handleTestOn [ "x86_64-linux" ] ./novacomd.nix { };
1070 npmrc = runTest ./npmrc.nix;
1071 nscd = runTest ./nscd.nix;
1072 nsd = runTest ./nsd.nix;
1073 ntfy-sh = handleTest ./ntfy-sh.nix { };
1074 ntfy-sh-migration = handleTest ./ntfy-sh-migration.nix { };
1075 ntpd = runTest ./ntpd.nix;
1076 ntpd-rs = runTest ./ntpd-rs.nix;
1077 nvidia-container-toolkit = runTest ./nvidia-container-toolkit.nix;
1078 nvme-rs = runTest ./nvme-rs.nix;
1079 nvmetcfg = runTest ./nvmetcfg.nix;
1080 nyxt = runTest ./nyxt.nix;
1081 nzbget = runTest ./nzbget.nix;
1082 nzbhydra2 = runTest ./nzbhydra2.nix;
1083 obs-studio = runTest ./obs-studio.nix;
1084 oci-containers = handleTestOn [ "aarch64-linux" "x86_64-linux" ] ./oci-containers.nix { };
1085 ocis = runTest ./ocis.nix;
1086 ocsinventory-agent = handleTestOn [ "x86_64-linux" "aarch64-linux" ] ./ocsinventory-agent.nix { };
1087 octoprint = runTest ./octoprint.nix;
1088 oddjobd = handleTestOn [ "x86_64-linux" "aarch64-linux" ] ./oddjobd.nix { };
1089 odoo = runTest ./odoo.nix;
1090 odoo16 = runTest {
1091 imports = [ ./odoo.nix ];
1092 _module.args.package = pkgs.odoo16;
1093 };
1094 odoo17 = runTest {
1095 imports = [ ./odoo.nix ];
1096 _module.args.package = pkgs.odoo17;
1097 };
1098 oh-my-zsh = runTest ./oh-my-zsh.nix;
1099 oku = runTest ./oku.nix;
1100 olivetin = runTest ./olivetin.nix;
1101 ollama = runTest ./ollama.nix;
1102 ollama-cuda = runTestOn [ "x86_64-linux" "aarch64-linux" ] ./ollama-cuda.nix;
1103 ollama-rocm = runTestOn [ "x86_64-linux" "aarch64-linux" ] ./ollama-rocm.nix;
1104 ombi = runTest ./ombi.nix;
1105 omnom = runTest ./omnom;
1106 oncall = runTest ./web-apps/oncall.nix;
1107 open-web-calendar = runTest ./web-apps/open-web-calendar.nix;
1108 open-webui = runTest ./open-webui.nix;
1109 openarena = runTest ./openarena.nix;
1110 openbao = runTest ./openbao.nix;
1111 opencloud = runTest ./opencloud.nix;
1112 openldap = runTest ./openldap.nix;
1113 openresty-lua = runTest ./openresty-lua.nix;
1114 opensearch = discoverTests (import ./opensearch.nix);
1115 opensmtpd = handleTest ./opensmtpd.nix { };
1116 opensmtpd-rspamd = handleTest ./opensmtpd-rspamd.nix { };
1117 opensnitch = runTest ./opensnitch.nix;
1118 openssh = runTest ./openssh.nix;
1119 openstack-image-metadata =
1120 (handleTestOn [ "x86_64-linux" ] ./openstack-image.nix { }).metadata or { };
1121 openstack-image-userdata =
1122 (handleTestOn [ "x86_64-linux" ] ./openstack-image.nix { }).userdata or { };
1123 opentabletdriver = runTest ./opentabletdriver.nix;
1124 opentelemetry-collector = runTest ./opentelemetry-collector.nix;
1125 openvscode-server = runTest ./openvscode-server.nix;
1126 openvswitch = runTest ./openvswitch.nix;
1127 optee = handleTestOn [ "aarch64-linux" ] ./optee.nix { };
1128 orangefs = runTest ./orangefs.nix;
1129 orthanc = runTest ./orthanc.nix;
1130 os-prober = handleTestOn [ "x86_64-linux" ] ./os-prober.nix { };
1131 osquery = handleTestOn [ "x86_64-linux" ] ./osquery.nix { };
1132 osrm-backend = runTest ./osrm-backend.nix;
1133 outline = runTest ./outline.nix;
1134 overlayfs = runTest ./overlayfs.nix;
1135 overseerr = runTest ./overseerr.nix;
1136 owi = runTest ./owi.nix;
1137 owncast = runTest ./owncast.nix;
1138 oxidized = handleTest ./oxidized.nix { };
1139 pacemaker = runTest ./pacemaker.nix;
1140 packagekit = runTest ./packagekit.nix;
1141 paisa = runTest ./paisa.nix;
1142 pam-file-contents = runTest ./pam/pam-file-contents.nix;
1143 pam-lastlog = runTest ./pam/pam-lastlog.nix;
1144 pam-oath-login = runTest ./pam/pam-oath-login.nix;
1145 pam-u2f = runTest ./pam/pam-u2f.nix;
1146 pam-ussh = runTest ./pam/pam-ussh.nix;
1147 pam-zfs-key = runTest ./pam/zfs-key.nix;
1148 pangolin = runTest ./pangolin.nix;
1149 pantalaimon = runTest ./matrix/pantalaimon.nix;
1150 pantheon = runTest ./pantheon.nix;
1151 paperless = runTest ./paperless.nix;
1152 paretosecurity = runTest ./paretosecurity.nix;
1153 parsedmarc = handleTest ./parsedmarc { };
1154 pass-secret-service = runTest ./pass-secret-service.nix;
1155 password-option-override-ordering = runTest ./password-option-override-ordering.nix;
1156 patroni = handleTestOn [ "x86_64-linux" ] ./patroni.nix { };
1157 pdns-recursor = runTest ./pdns-recursor.nix;
1158 peerflix = runTest ./peerflix.nix;
1159 peering-manager = runTest ./web-apps/peering-manager.nix;
1160 peertube = handleTestOn [ "x86_64-linux" ] ./web-apps/peertube.nix { };
1161 peroxide = runTest ./peroxide.nix;
1162 pgadmin4 = runTest ./pgadmin4.nix;
1163 pgbackrest = import ./pgbackrest { inherit runTest; };
1164 pgbouncer = runTest ./pgbouncer.nix;
1165 pghero = runTest ./pghero.nix;
1166 pgmanage = runTest ./pgmanage.nix;
1167 pgweb = runTest ./pgweb.nix;
1168 phosh = runTest ./phosh.nix;
1169 photonvision = runTest ./photonvision.nix;
1170 photoprism = runTest ./photoprism.nix;
1171 php = import ./php/default.nix {
1172 inherit runTest;
1173 php = pkgs.php;
1174 };
1175 php81 = import ./php/default.nix {
1176 inherit runTest;
1177 php = pkgs.php81;
1178 };
1179 php82 = import ./php/default.nix {
1180 inherit runTest;
1181 php = pkgs.php82;
1182 };
1183 php83 = import ./php/default.nix {
1184 inherit runTest;
1185 php = pkgs.php83;
1186 };
1187 php84 = import ./php/default.nix {
1188 inherit runTest;
1189 php = pkgs.php84;
1190 };
1191 phylactery = runTest ./web-apps/phylactery.nix;
1192 pict-rs = runTest ./pict-rs.nix;
1193 pihole-ftl = import ./pihole-ftl { inherit runTest; };
1194 pingvin-share = runTest ./pingvin-share.nix;
1195 pinnwand = runTest ./pinnwand.nix;
1196 pixelfed = import ./web-apps/pixelfed { inherit runTestOn; };
1197 plantuml-server = runTest ./plantuml-server.nix;
1198 plasma6 = runTest ./plasma6.nix;
1199 plausible = runTest ./plausible.nix;
1200 playwright-python = runTest ./playwright-python.nix;
1201 please = runTest ./please.nix;
1202 pleroma = handleTestOn [ "x86_64-linux" "aarch64-linux" ] ./pleroma.nix { };
1203 plikd = runTest ./plikd.nix;
1204 plotinus = runTest ./plotinus.nix;
1205 pocket-id = runTest ./pocket-id.nix;
1206 podgrab = runTest ./podgrab.nix;
1207 podman = handleTestOn [ "aarch64-linux" "x86_64-linux" ] ./podman/default.nix { };
1208 podman-tls-ghostunnel = handleTestOn [
1209 "aarch64-linux"
1210 "x86_64-linux"
1211 ] ./podman/tls-ghostunnel.nix { };
1212 polaris = runTest ./polaris.nix;
1213 pomerium = handleTestOn [ "x86_64-linux" ] ./pomerium.nix { };
1214 portunus = runTest ./portunus.nix;
1215 postfix = handleTest ./postfix.nix { };
1216 postfix-raise-smtpd-tls-security-level =
1217 handleTest ./postfix-raise-smtpd-tls-security-level.nix
1218 { };
1219 postfix-tlspol = runTest ./postfix-tlspol.nix;
1220 postfixadmin = runTest ./postfixadmin.nix;
1221 postgres-websockets = runTest ./postgres-websockets.nix;
1222 postgresql = handleTest ./postgresql { };
1223 postgrest = runTest ./postgrest.nix;
1224 power-profiles-daemon = runTest ./power-profiles-daemon.nix;
1225 powerdns = runTest ./powerdns.nix;
1226 powerdns-admin = handleTest ./powerdns-admin.nix { };
1227 pppd = runTest ./pppd.nix;
1228 predictable-interface-names = handleTest ./predictable-interface-names.nix { };
1229 prefect = runTest ./prefect.nix;
1230 pretalx = runTest ./web-apps/pretalx.nix;
1231 pretix = runTest ./web-apps/pretix.nix;
1232 printing-service = runTest {
1233 imports = [ ./printing.nix ];
1234 _module.args.socket = false;
1235 _module.args.listenTcp = true;
1236 };
1237 printing-service-notcp = runTest {
1238 imports = [ ./printing.nix ];
1239 _module.args.socket = false;
1240 _module.args.listenTcp = false;
1241 };
1242 printing-socket = runTest {
1243 imports = [ ./printing.nix ];
1244 _module.args.socket = true;
1245 _module.args.listenTcp = true;
1246 };
1247 printing-socket-notcp = runTest {
1248 imports = [ ./printing.nix ];
1249 _module.args.socket = true;
1250 _module.args.listenTcp = false;
1251 };
1252 privatebin = runTest ./privatebin.nix;
1253 privoxy = runTest ./privoxy.nix;
1254 prometheus = import ./prometheus { inherit runTest; };
1255 prometheus-exporters = handleTest ./prometheus-exporters.nix { };
1256 prosody = runTest ./xmpp/prosody.nix;
1257 prosody-mysql = handleTest ./xmpp/prosody-mysql.nix { };
1258 prowlarr = runTest ./prowlarr.nix;
1259 proxy = runTest ./proxy.nix;
1260 pt2-clone = runTest ./pt2-clone.nix;
1261 public-inbox = runTest ./public-inbox.nix;
1262 pufferpanel = runTest ./pufferpanel.nix;
1263 pulseaudio = discoverTests (import ./pulseaudio.nix);
1264 pykms = runTest ./pykms.nix;
1265 pyload = runTest ./pyload.nix;
1266 qbittorrent = runTest ./qbittorrent.nix;
1267 qboot = handleTestOn [ "x86_64-linux" "i686-linux" ] ./qboot.nix { };
1268 qemu-vm-external-disk-image = runTest ./qemu-vm-external-disk-image.nix;
1269 qemu-vm-restrictnetwork = handleTest ./qemu-vm-restrictnetwork.nix { };
1270 qemu-vm-store = runTest ./qemu-vm-store.nix;
1271 qemu-vm-volatile-root = runTest ./qemu-vm-volatile-root.nix;
1272 qgis = handleTest ./qgis.nix { package = pkgs.qgis; };
1273 qgis-ltr = handleTest ./qgis.nix { package = pkgs.qgis-ltr; };
1274 qownnotes = runTest ./qownnotes.nix;
1275 qtile = runTestOn [ "x86_64-linux" "aarch64-linux" ] ./qtile/default.nix;
1276 qtile-extras = runTestOn [ "x86_64-linux" "aarch64-linux" ] ./qtile-extras/default.nix;
1277 quake3 = runTest ./quake3.nix;
1278 quicktun = runTest ./quicktun.nix;
1279 quickwit = runTest ./quickwit.nix;
1280 quorum = runTest ./quorum.nix;
1281 rabbitmq = runTest ./rabbitmq.nix;
1282 radarr = runTest ./radarr.nix;
1283 radicale = runTest ./radicale.nix;
1284 radicle = runTest ./radicle.nix;
1285 ragnarwm = runTestOn [ "x86_64-linux" "aarch64-linux" ] ./ragnarwm.nix;
1286 rasdaemon = runTest ./rasdaemon.nix;
1287 rathole = runTest ./rathole.nix;
1288 readarr = runTest ./readarr.nix;
1289 readeck = runTest ./readeck.nix;
1290 realm = runTest ./realm.nix;
1291 rebuilderd = runTest ./rebuilderd.nix;
1292 redis = handleTest ./redis.nix { };
1293 redlib = runTest ./redlib.nix;
1294 redmine = handleTestOn [ "x86_64-linux" "aarch64-linux" ] ./redmine.nix { };
1295 refind = runTest ./refind.nix;
1296 renovate = runTest ./renovate.nix;
1297 replace-dependencies = handleTest ./replace-dependencies { };
1298 reposilite = runTest ./reposilite.nix;
1299 restartByActivationScript = runTest ./restart-by-activation-script.nix;
1300 restic = runTest ./restic.nix;
1301 restic-rest-server = runTest ./restic-rest-server.nix;
1302 retroarch = runTest ./retroarch.nix;
1303 ringboard = runTest ./ringboard.nix;
1304 rke2 = handleTestOn [ "aarch64-linux" "x86_64-linux" ] ./rke2 { };
1305 rkvm = handleTest ./rkvm { };
1306 rmfakecloud = runTest ./rmfakecloud.nix;
1307 robustirc-bridge = runTest ./robustirc-bridge.nix;
1308 rosenpass = runTest ./rosenpass.nix;
1309 roundcube = runTest ./roundcube.nix;
1310 routinator = handleTest ./routinator.nix { };
1311 rshim = handleTest ./rshim.nix { };
1312 rspamd = handleTest ./rspamd.nix { };
1313 rspamd-trainer = runTest ./rspamd-trainer.nix;
1314 rss-bridge = handleTest ./web-apps/rss-bridge { };
1315 rss2email = handleTest ./rss2email.nix { };
1316 rstudio-server = runTest ./rstudio-server.nix;
1317 rsyncd = runTest ./rsyncd.nix;
1318 rsyslogd = handleTest ./rsyslogd.nix { };
1319 rtkit = runTest ./rtkit.nix;
1320 rtorrent = runTest ./rtorrent.nix;
1321 rush = runTest ./rush.nix;
1322 rustls-libssl = runTest ./rustls-libssl.nix;
1323 rxe = runTest ./rxe.nix;
1324 sabnzbd = runTest ./sabnzbd.nix;
1325 samba = runTest ./samba.nix;
1326 samba-wsdd = runTest ./samba-wsdd.nix;
1327 sane = runTest ./sane.nix;
1328 sanoid = runTest ./sanoid.nix;
1329 saunafs = runTest ./saunafs.nix;
1330 scaphandre = runTest ./scaphandre.nix;
1331 schleuder = runTest ./schleuder.nix;
1332 scion-freestanding-deployment = runTest ./scion/freestanding-deployment;
1333 scrutiny = runTest ./scrutiny.nix;
1334 scx = runTest ./scx/default.nix;
1335 sddm = import ./sddm.nix { inherit runTest; };
1336 sdl3 = runTest ./sdl3.nix;
1337 searx = runTest ./searx.nix;
1338 seatd = runTest ./seatd.nix;
1339 send = runTest ./send.nix;
1340 service-runner = runTest ./service-runner.nix;
1341 servo = runTest ./servo.nix;
1342 sftpgo = runTest ./sftpgo.nix;
1343 sfxr-qt = runTest ./sfxr-qt.nix;
1344 sgt-puzzles = runTest ./sgt-puzzles.nix;
1345 shadow = runTest ./shadow.nix;
1346 shadowsocks = handleTest ./shadowsocks { };
1347 shadps4 = runTest ./shadps4.nix;
1348 sharkey = runTest ./web-apps/sharkey.nix;
1349 shattered-pixel-dungeon = runTest ./shattered-pixel-dungeon.nix;
1350 shiori = runTest ./shiori.nix;
1351 signal-desktop = runTest ./signal-desktop.nix;
1352 silverbullet = runTest ./silverbullet.nix;
1353 simple = runTest ./simple.nix;
1354 sing-box = runTest ./sing-box.nix;
1355 slimserver = runTest ./slimserver.nix;
1356 slipshow = runTest ./slipshow.nix;
1357 slurm = runTest ./slurm.nix;
1358 smokeping = runTest ./smokeping.nix;
1359 snapcast = runTest ./snapcast.nix;
1360 snapper = runTest ./snapper.nix;
1361 snipe-it = runTest ./web-apps/snipe-it.nix;
1362 snips-sh = runTest ./snips-sh.nix;
1363 snmpd = runTest ./snmpd.nix;
1364 soapui = runTest ./soapui.nix;
1365 soft-serve = runTest ./soft-serve.nix;
1366 sogo = runTest ./sogo.nix;
1367 soju = runTest ./soju.nix;
1368 solanum = runTest ./solanum.nix;
1369 sonarr = runTest ./sonarr.nix;
1370 sonic-server = runTest ./sonic-server.nix;
1371 spacecookie = runTest ./spacecookie.nix;
1372 spark = handleTestOn [ "x86_64-linux" "aarch64-linux" ] ./spark { };
1373 spiped = runTest ./spiped.nix;
1374 sqlite3-to-mysql = runTest ./sqlite3-to-mysql.nix;
1375 squid = runTest ./squid.nix;
1376 ssh-agent-auth = runTest ./ssh-agent-auth.nix;
1377 ssh-audit = runTest ./ssh-audit.nix;
1378 sshwifty = runTest ./web-apps/sshwifty/default.nix;
1379 sslh = handleTest ./sslh.nix { };
1380 sssd = handleTestOn [ "x86_64-linux" "aarch64-linux" ] ./sssd.nix { };
1381 sssd-ldap = handleTestOn [ "x86_64-linux" "aarch64-linux" ] ./sssd-ldap.nix { };
1382 stalwart-mail = runTest ./stalwart/stalwart-mail.nix;
1383 stargazer = runTest ./web-servers/stargazer.nix;
1384 starship = runTest ./starship.nix;
1385 startx = import ./startx.nix { inherit pkgs runTest; };
1386 stash = handleTestOn [ "x86_64-linux" "aarch64-linux" ] ./stash.nix { };
1387 static-web-server = runTest ./web-servers/static-web-server.nix;
1388 step-ca = handleTestOn [ "x86_64-linux" ] ./step-ca.nix { };
1389 stratis = handleTest ./stratis { };
1390 strongswan-swanctl = runTest ./strongswan-swanctl.nix;
1391 stub-ld = handleTestOn [ "x86_64-linux" "aarch64-linux" ] ./stub-ld.nix { };
1392 stunnel = import ./stunnel.nix { inherit runTest; };
1393 sudo = runTest ./sudo.nix;
1394 sudo-rs = runTest ./sudo-rs.nix;
1395 sunshine = runTest ./sunshine.nix;
1396 suricata = runTest ./suricata.nix;
1397 suwayomi-server = import ./suwayomi-server.nix {
1398 inherit runTest;
1399 lib = pkgs.lib;
1400 };
1401 swap-file-btrfs = runTest ./swap-file-btrfs.nix;
1402 swap-partition = runTest ./swap-partition.nix;
1403 swap-random-encryption = runTest ./swap-random-encryption.nix;
1404 swapspace = handleTestOn [ "aarch64-linux" "x86_64-linux" ] ./swapspace.nix { };
1405 sway = runTest ./sway.nix;
1406 swayfx = runTest ./swayfx.nix;
1407 switchTest = runTest ./switch-test.nix;
1408 sx = runTest ./sx.nix;
1409 sympa = runTest ./sympa.nix;
1410 syncthing = runTest ./syncthing.nix;
1411 syncthing-folders = runTest ./syncthing-folders.nix;
1412 syncthing-init = runTest ./syncthing-init.nix;
1413 syncthing-many-devices = runTest ./syncthing-many-devices.nix;
1414 syncthing-no-settings = runTest ./syncthing-no-settings.nix;
1415 syncthing-relay = runTest ./syncthing-relay.nix;
1416 sysfs = runTest ./sysfs.nix;
1417 sysinit-reactivation = runTest ./sysinit-reactivation.nix;
1418 systemd = runTest ./systemd.nix;
1419 systemd-analyze = runTest ./systemd-analyze.nix;
1420 systemd-binfmt = handleTestOn [ "x86_64-linux" ] ./systemd-binfmt.nix { };
1421 systemd-boot = import ./systemd-boot.nix { inherit runTest runTestOn; };
1422 systemd-bpf = runTest ./systemd-bpf.nix;
1423 systemd-capsules = runTest ./systemd-capsules.nix;
1424 systemd-confinement = handleTest ./systemd-confinement { };
1425 systemd-coredump = runTest ./systemd-coredump.nix;
1426 systemd-credentials-tpm2 = runTest ./systemd-credentials-tpm2.nix;
1427 systemd-cryptenroll = runTest ./systemd-cryptenroll.nix;
1428 systemd-escaping = runTest ./systemd-escaping.nix;
1429 systemd-homed = runTest ./systemd-homed.nix;
1430 systemd-initrd-bridge = runTest ./systemd-initrd-bridge.nix;
1431 systemd-initrd-btrfs-raid = runTest ./systemd-initrd-btrfs-raid.nix;
1432 systemd-initrd-credentials = runTest ./systemd-initrd-credentials.nix;
1433 systemd-initrd-luks-empty-passphrase = runTest {
1434 imports = [ ./initrd-luks-empty-passphrase.nix ];
1435 _module.args.systemdStage1 = true;
1436 };
1437 systemd-initrd-luks-fido2 = runTest ./systemd-initrd-luks-fido2.nix;
1438 systemd-initrd-luks-keyfile = runTest ./systemd-initrd-luks-keyfile.nix;
1439 systemd-initrd-luks-password = runTest ./systemd-initrd-luks-password.nix;
1440 systemd-initrd-luks-tpm2 = runTest ./systemd-initrd-luks-tpm2.nix;
1441 systemd-initrd-luks-unl0kr = runTest ./systemd-initrd-luks-unl0kr.nix;
1442 systemd-initrd-modprobe = runTest ./systemd-initrd-modprobe.nix;
1443 systemd-initrd-networkd = import ./systemd-initrd-networkd.nix { inherit runTest; };
1444 systemd-initrd-networkd-openvpn = handleTestOn [
1445 "x86_64-linux"
1446 "i686-linux"
1447 ] ./initrd-network-openvpn { systemdStage1 = true; };
1448 systemd-initrd-networkd-ssh = runTest ./systemd-initrd-networkd-ssh.nix;
1449 systemd-initrd-shutdown = runTest {
1450 imports = [ ./systemd-shutdown.nix ];
1451 _module.args.systemdStage1 = true;
1452 };
1453 systemd-initrd-simple = runTest ./systemd-initrd-simple.nix;
1454 systemd-initrd-swraid = runTest ./systemd-initrd-swraid.nix;
1455 systemd-initrd-vconsole = runTest ./systemd-initrd-vconsole.nix;
1456 systemd-initrd-vlan = runTest ./systemd-initrd-vlan.nix;
1457 systemd-journal = runTest ./systemd-journal.nix;
1458 systemd-journal-gateway = runTest ./systemd-journal-gateway.nix;
1459 systemd-journal-upload = runTest ./systemd-journal-upload.nix;
1460 systemd-lock-handler = runTestOn [ "aarch64-linux" "x86_64-linux" ] ./systemd-lock-handler.nix;
1461 systemd-machinectl = runTest ./systemd-machinectl.nix;
1462 systemd-misc = runTest ./systemd-misc.nix;
1463 systemd-networkd = runTest ./systemd-networkd.nix;
1464 systemd-networkd-bridge = runTest ./systemd-networkd-bridge.nix;
1465 systemd-networkd-dhcpserver = runTest ./systemd-networkd-dhcpserver.nix;
1466 systemd-networkd-dhcpserver-static-leases = runTest ./systemd-networkd-dhcpserver-static-leases.nix;
1467 systemd-networkd-ipv6-prefix-delegation =
1468 handleTest ./systemd-networkd-ipv6-prefix-delegation.nix
1469 { };
1470 systemd-networkd-vrf = runTest ./systemd-networkd-vrf.nix;
1471 systemd-no-tainted = runTest ./systemd-no-tainted.nix;
1472 systemd-nspawn = runTest ./systemd-nspawn.nix;
1473 systemd-nspawn-configfile = runTest ./systemd-nspawn-configfile.nix;
1474 systemd-oomd = runTest ./systemd-oomd.nix;
1475 systemd-portabled = runTest ./systemd-portabled.nix;
1476 systemd-pstore = runTest ./systemd-pstore.nix;
1477 systemd-repart = handleTest ./systemd-repart.nix { };
1478 systemd-resolved = runTest ./systemd-resolved.nix;
1479 systemd-shutdown = runTest ./systemd-shutdown.nix;
1480 systemd-ssh-proxy = runTest ./systemd-ssh-proxy.nix;
1481 systemd-sysupdate = runTest ./systemd-sysupdate.nix;
1482 systemd-sysusers-immutable = runTest ./systemd-sysusers-immutable.nix;
1483 systemd-sysusers-mutable = runTest ./systemd-sysusers-mutable.nix;
1484 systemd-sysusers-password-option-override-ordering = runTest ./systemd-sysusers-password-option-override-ordering.nix;
1485 systemd-timesyncd = runTest ./systemd-timesyncd.nix;
1486 systemd-timesyncd-nscd-dnssec = runTest ./systemd-timesyncd-nscd-dnssec.nix;
1487 systemd-user-linger = runTest ./systemd-user-linger.nix;
1488 systemd-user-tmpfiles-rules = runTest ./systemd-user-tmpfiles-rules.nix;
1489 systemd-userdbd = runTest ./systemd-userdbd.nix;
1490 systemtap = handleTest ./systemtap.nix { };
1491 szurubooru = handleTest ./szurubooru.nix { };
1492 taler = handleTest ./taler { };
1493 tandoor-recipes = runTest ./tandoor-recipes.nix;
1494 tandoor-recipes-script-name = runTest ./tandoor-recipes-script-name.nix;
1495 tang = runTest ./tang.nix;
1496 taskchampion-sync-server = runTest ./taskchampion-sync-server.nix;
1497 taskserver = runTest ./taskserver.nix;
1498 tayga = runTest ./tayga.nix;
1499 technitium-dns-server = runTest ./technitium-dns-server.nix;
1500 teeworlds = runTest ./teeworlds.nix;
1501 telegraf = runTest ./telegraf.nix;
1502 teleport = handleTest ./teleport.nix { };
1503 teleports = runTest ./teleports.nix;
1504 temporal = runTest ./temporal.nix;
1505 terminal-emulators = handleTest ./terminal-emulators.nix { };
1506 thanos = runTest ./thanos.nix;
1507 thelounge = handleTest ./thelounge.nix { };
1508 tiddlywiki = runTest ./tiddlywiki.nix;
1509 tigervnc = handleTest ./tigervnc.nix { };
1510 tika = runTest ./tika.nix;
1511 timezone = runTest ./timezone.nix;
1512 timidity = handleTestOn [ "aarch64-linux" "x86_64-linux" ] ./timidity { };
1513 tinc = handleTest ./tinc { };
1514 tinydns = runTest ./tinydns.nix;
1515 tinyproxy = runTest ./tinyproxy.nix;
1516 tinywl = runTest ./tinywl.nix;
1517 tlsrpt = runTest ./tlsrpt.nix;
1518 tmate-ssh-server = runTest ./tmate-ssh-server.nix;
1519 tomcat = runTest ./tomcat.nix;
1520 tor = runTest ./tor.nix;
1521 tpm-ek = handleTest ./tpm-ek { };
1522 # tracee requires bpf
1523 tracee = handleTestOn [ "x86_64-linux" ] ./tracee.nix { };
1524 traefik = runTestOn [ "aarch64-linux" "x86_64-linux" ] ./traefik.nix;
1525 trafficserver = runTest ./trafficserver.nix;
1526 transfer-sh = runTest ./transfer-sh.nix;
1527 transmission_3 = handleTest ./transmission.nix { transmission = pkgs.transmission_3; };
1528 transmission_4 = handleTest ./transmission.nix { transmission = pkgs.transmission_4; };
1529 trezord = runTest ./trezord.nix;
1530 trickster = runTest ./trickster.nix;
1531 trilium-server = runTestOn [ "x86_64-linux" ] ./trilium-server.nix;
1532 tsm-client-gui = runTest ./tsm-client-gui.nix;
1533 tt-rss = runTest ./web-apps/tt-rss.nix;
1534 ttyd = runTest ./web-servers/ttyd.nix;
1535 tuned = runTest ./tuned.nix;
1536 tuptime = runTest ./tuptime.nix;
1537 turbovnc-headless-server = runTest ./turbovnc-headless-server.nix;
1538 turn-rs = runTest ./turn-rs.nix;
1539 tusd = runTest ./tusd/default.nix;
1540 tuxguitar = runTest ./tuxguitar.nix;
1541 twingate = runTest ./twingate.nix;
1542 txredisapi = runTest ./txredisapi.nix;
1543 typesense = runTest ./typesense.nix;
1544 tzupdate = runTest ./tzupdate.nix;
1545 ucarp = runTest ./ucarp.nix;
1546 udisks2 = runTest ./udisks2.nix;
1547 ulogd = runTest ./ulogd/ulogd.nix;
1548 umami = runTest ./web-apps/umami.nix;
1549 umurmur = runTest ./umurmur.nix;
1550 unbound = runTest ./unbound.nix;
1551 unifi = runTest ./unifi.nix;
1552 unit-perl = runTest ./web-servers/unit-perl.nix;
1553 unit-php = runTest ./web-servers/unit-php.nix;
1554 upnp.iptables = handleTest ./upnp.nix { useNftables = false; };
1555 upnp.nftables = handleTest ./upnp.nix { useNftables = true; };
1556 uptermd = runTest ./uptermd.nix;
1557 uptime-kuma = runTest ./uptime-kuma.nix;
1558 urn-timer = runTest ./urn-timer.nix;
1559 usbguard = runTest ./usbguard.nix;
1560 user-activation-scripts = runTest ./user-activation-scripts.nix;
1561 user-enable-option = runTest ./user-enable-option.nix;
1562 user-expiry = runTest ./user-expiry.nix;
1563 user-home-mode = runTest ./user-home-mode.nix;
1564 userborn = runTest ./userborn.nix;
1565 userborn-immutable-etc = runTest ./userborn-immutable-etc.nix;
1566 userborn-immutable-users = runTest ./userborn-immutable-users.nix;
1567 userborn-mutable-etc = runTest ./userborn-mutable-etc.nix;
1568 userborn-mutable-users = runTest ./userborn-mutable-users.nix;
1569 ustreamer = runTest ./ustreamer.nix;
1570 uwsgi = runTest ./uwsgi.nix;
1571 v2ray = runTest ./v2ray.nix;
1572 varnish60 = runTest {
1573 imports = [ ./varnish.nix ];
1574 _module.args.package = pkgs.varnish60;
1575 };
1576 varnish77 = runTest {
1577 imports = [ ./varnish.nix ];
1578 _module.args.package = pkgs.varnish77;
1579 };
1580 vault = runTest ./vault.nix;
1581 vault-agent = runTest ./vault-agent.nix;
1582 vault-dev = runTest ./vault-dev.nix;
1583 vault-postgresql = runTest ./vault-postgresql.nix;
1584 vaultwarden = discoverTests (import ./vaultwarden.nix);
1585 vdirsyncer = runTest ./vdirsyncer.nix;
1586 vector = import ./vector { inherit runTest; };
1587 velocity = runTest ./velocity.nix;
1588 vengi-tools = runTest ./vengi-tools.nix;
1589 victorialogs = import ./victorialogs { inherit runTest; };
1590 victoriametrics = import ./victoriametrics { inherit runTest; };
1591 victoriatraces = import ./victoriatraces { inherit runTest; };
1592 vikunja = runTest ./vikunja.nix;
1593 virtualbox = handleTestOn [ "x86_64-linux" ] ./virtualbox.nix { };
1594 vm-variant = handleTest ./vm-variant.nix { };
1595 vscode-remote-ssh = handleTestOn [ "x86_64-linux" ] ./vscode-remote-ssh.nix { };
1596 vscodium = import ./vscodium.nix { inherit runTest; };
1597 vsftpd = runTest ./vsftpd.nix;
1598 waagent = runTest ./waagent.nix;
1599 wakapi = runTest ./wakapi.nix;
1600 warzone2100 = runTest ./warzone2100.nix;
1601 wasabibackend = runTest ./wasabibackend.nix;
1602 wastebin = runTest ./wastebin.nix;
1603 watchdogd = runTest ./watchdogd.nix;
1604 webhook = runTest ./webhook.nix;
1605 weblate = runTest ./web-apps/weblate.nix;
1606 wg-access-server = runTest ./wg-access-server.nix;
1607 whisparr = runTest ./whisparr.nix;
1608 whoami = runTest ./whoami.nix;
1609 whoogle-search = runTest ./whoogle-search.nix;
1610 wiki-js = runTest ./wiki-js.nix;
1611 wine = handleTest ./wine.nix { };
1612 wireguard = import ./wireguard {
1613 inherit pkgs runTest;
1614 inherit (pkgs) lib;
1615 };
1616 without-nix = runTest ./without-nix.nix;
1617 wmderland = runTest ./wmderland.nix;
1618 wordpress = runTest ./wordpress.nix;
1619 workout-tracker = runTest ./workout-tracker.nix;
1620 wpa_supplicant = import ./wpa_supplicant.nix { inherit pkgs runTest; };
1621 wrappers = runTest ./wrappers.nix;
1622 writefreely = import ./web-apps/writefreely.nix { inherit pkgs runTest; };
1623 wstunnel = runTest ./wstunnel.nix;
1624 xandikos = runTest ./xandikos.nix;
1625 xautolock = runTest ./xautolock.nix;
1626 xfce = runTest ./xfce.nix;
1627 xfce-wayland = runTest ./xfce-wayland.nix;
1628 xmonad = runTest ./xmonad.nix;
1629 xmonad-xdg-autostart = runTest ./xmonad-xdg-autostart.nix;
1630 xpadneo = runTest ./xpadneo.nix;
1631 xrdp = runTest ./xrdp.nix;
1632 xrdp-with-audio-pulseaudio = runTest ./xrdp-with-audio-pulseaudio.nix;
1633 xscreensaver = runTest ./xscreensaver.nix;
1634 xss-lock = runTest ./xss-lock.nix;
1635 xterm = runTest ./xterm.nix;
1636 xxh = runTest ./xxh.nix;
1637 yarr = runTest ./yarr.nix;
1638 ydotool = import ./ydotool.nix {
1639 inherit (pkgs) lib;
1640 inherit runTest;
1641 };
1642 yggdrasil = runTest ./yggdrasil.nix;
1643 your_spotify = runTest ./your_spotify.nix;
1644 zammad = runTest ./zammad.nix;
1645 zenohd = runTest ./zenohd.nix;
1646 zeronet-conservancy = runTest ./zeronet-conservancy.nix;
1647 zfs = handleTest ./zfs.nix { };
1648 zigbee2mqtt = runTest ./zigbee2mqtt.nix;
1649 zipline = runTest ./zipline.nix;
1650 zoneminder = runTest ./zoneminder.nix;
1651 zookeeper = runTest ./zookeeper.nix;
1652 zoom-us = runTest ./zoom-us.nix;
1653 zram-generator = runTest ./zram-generator.nix;
1654 zrepl = runTest ./zrepl.nix;
1655 zwave-js = runTest ./zwave-js.nix;
1656 zwave-js-ui = runTest ./zwave-js-ui.nix;
1657 # keep-sorted end
1658}