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