1{ system,
2 pkgs,
3
4 # Projects the test configuration into a the desired value; usually
5 # the test runner: `config: config.test`.
6 callTest,
7
8}:
9# The return value of this function will be an attrset with arbitrary depth and
10# the `anything` returned by callTest at its test leafs.
11# The tests not supported by `system` will be replaced with `{}`, so that
12# `passthru.tests` can contain links to those without breaking on architectures
13# where said tests are unsupported.
14# Example callTest that just extracts the derivation from the test:
15# callTest = t: t.test;
16
17with pkgs.lib;
18
19let
20 discoverTests = val:
21 if isAttrs val
22 then
23 if hasAttr "test" val then callTest val
24 else mapAttrs (n: s: discoverTests s) val
25 else if isFunction val
26 then
27 # Tests based on make-test-python.nix will return the second lambda
28 # in that file, which are then forwarded to the test definition
29 # following the `import make-test-python.nix` expression
30 # (if it is a function).
31 discoverTests (val { inherit system pkgs; })
32 else val;
33 handleTest = path: args:
34 discoverTests (import path ({ inherit system pkgs; } // args));
35 handleTestOn = systems: path: args:
36 if elem system systems then handleTest path args
37 else {};
38
39 nixosLib = import ../lib {
40 # Experimental features need testing too, but there's no point in warning
41 # about it, so we enable the feature flag.
42 featureFlags.minimalModules = {};
43 };
44 evalMinimalConfig = module: nixosLib.evalModules { modules = [ module ]; };
45
46 inherit
47 (rec {
48 doRunTest = arg: ((import ../lib/testing-python.nix { inherit system pkgs; }).evalTest {
49 imports = [ arg readOnlyPkgs ];
50 }).config.result;
51 findTests = tree:
52 if tree?recurseForDerivations && tree.recurseForDerivations
53 then
54 mapAttrs
55 (k: findTests)
56 (builtins.removeAttrs tree ["recurseForDerivations"])
57 else callTest tree;
58
59 runTest = arg: let r = doRunTest arg; in findTests r;
60 runTestOn = systems: arg:
61 if elem system systems then runTest arg
62 else {};
63 })
64 runTest
65 runTestOn
66 ;
67
68 # Using a single instance of nixpkgs makes test evaluation faster.
69 # To make sure we don't accidentally depend on a modified pkgs, we make the
70 # related options read-only. We need to test the right configuration.
71 #
72 # If your service depends on a nixpkgs setting, first try to avoid that, but
73 # otherwise, you can remove the readOnlyPkgs import and test your service as
74 # usual.
75 readOnlyPkgs =
76 # TODO: We currently accept this for nixosTests, so that the `pkgs` argument
77 # is consistent with `pkgs` in `pkgs.nixosTests`. Can we reinitialize
78 # it with `allowAliases = false`?
79 # warnIf pkgs.config.allowAliases "nixosTests: pkgs includes aliases."
80 {
81 _class = "nixosTest";
82 node.pkgs = pkgs;
83 };
84
85in {
86
87 # Testing the test driver
88 nixos-test-driver = {
89 extra-python-packages = handleTest ./nixos-test-driver/extra-python-packages.nix {};
90 node-name = runTest ./nixos-test-driver/node-name.nix;
91 };
92
93 # NixOS vm tests and non-vm unit tests
94
95 _3proxy = runTest ./3proxy.nix;
96 aaaaxy = runTest ./aaaaxy.nix;
97 acme = runTest ./acme.nix;
98 adguardhome = runTest ./adguardhome.nix;
99 aesmd = runTestOn ["x86_64-linux"] ./aesmd.nix;
100 agate = runTest ./web-servers/agate.nix;
101 agda = handleTest ./agda.nix {};
102 airsonic = handleTest ./airsonic.nix {};
103 akkoma = handleTestOn [ "x86_64-linux" "aarch64-linux" ] ./akkoma.nix {};
104 akkoma-confined = handleTestOn [ "x86_64-linux" "aarch64-linux" ] ./akkoma.nix { confined = true; };
105 alice-lg = handleTest ./alice-lg.nix {};
106 allTerminfo = handleTest ./all-terminfo.nix {};
107 alps = handleTest ./alps.nix {};
108 amazon-init-shell = handleTest ./amazon-init-shell.nix {};
109 apcupsd = handleTest ./apcupsd.nix {};
110 apfs = handleTest ./apfs.nix {};
111 apparmor = handleTest ./apparmor.nix {};
112 atd = handleTest ./atd.nix {};
113 atop = handleTest ./atop.nix {};
114 atuin = handleTest ./atuin.nix {};
115 auth-mysql = handleTest ./auth-mysql.nix {};
116 authelia = handleTest ./authelia.nix {};
117 avahi = handleTest ./avahi.nix {};
118 avahi-with-resolved = handleTest ./avahi.nix { networkd = true; };
119 babeld = handleTest ./babeld.nix {};
120 bazarr = handleTest ./bazarr.nix {};
121 bcachefs = handleTestOn ["x86_64-linux" "aarch64-linux"] ./bcachefs.nix {};
122 beanstalkd = handleTest ./beanstalkd.nix {};
123 bees = handleTest ./bees.nix {};
124 binary-cache = handleTest ./binary-cache.nix {};
125 bind = handleTest ./bind.nix {};
126 bird = handleTest ./bird.nix {};
127 birdwatcher = handleTest ./birdwatcher.nix {};
128 bitcoind = handleTest ./bitcoind.nix {};
129 bittorrent = handleTest ./bittorrent.nix {};
130 blockbook-frontend = handleTest ./blockbook-frontend.nix {};
131 blocky = handleTest ./blocky.nix {};
132 boot = handleTestOn ["x86_64-linux" "aarch64-linux"] ./boot.nix {};
133 bootspec = handleTestOn ["x86_64-linux"] ./bootspec.nix {};
134 boot-stage1 = handleTest ./boot-stage1.nix {};
135 borgbackup = handleTest ./borgbackup.nix {};
136 botamusique = handleTest ./botamusique.nix {};
137 bpf = handleTestOn ["x86_64-linux" "aarch64-linux"] ./bpf.nix {};
138 breitbandmessung = handleTest ./breitbandmessung.nix {};
139 brscan5 = handleTest ./brscan5.nix {};
140 btrbk = handleTest ./btrbk.nix {};
141 btrbk-doas = handleTest ./btrbk-doas.nix {};
142 btrbk-no-timer = handleTest ./btrbk-no-timer.nix {};
143 btrbk-section-order = handleTest ./btrbk-section-order.nix {};
144 budgie = handleTest ./budgie.nix {};
145 buildbot = handleTest ./buildbot.nix {};
146 buildkite-agents = handleTest ./buildkite-agents.nix {};
147 caddy = handleTest ./caddy.nix {};
148 cadvisor = handleTestOn ["x86_64-linux"] ./cadvisor.nix {};
149 cage = handleTest ./cage.nix {};
150 cagebreak = handleTest ./cagebreak.nix {};
151 calibre-web = handleTest ./calibre-web.nix {};
152 cassandra_3_0 = handleTest ./cassandra.nix { testPackage = pkgs.cassandra_3_0; };
153 cassandra_3_11 = handleTest ./cassandra.nix { testPackage = pkgs.cassandra_3_11; };
154 cassandra_4 = handleTest ./cassandra.nix { testPackage = pkgs.cassandra_4; };
155 ceph-multi-node = handleTestOn [ "aarch64-linux" "x86_64-linux" ] ./ceph-multi-node.nix {};
156 ceph-single-node = handleTestOn [ "aarch64-linux" "x86_64-linux" ] ./ceph-single-node.nix {};
157 ceph-single-node-bluestore = handleTestOn [ "aarch64-linux" "x86_64-linux" ] ./ceph-single-node-bluestore.nix {};
158 certmgr = handleTest ./certmgr.nix {};
159 cfssl = handleTestOn ["aarch64-linux" "x86_64-linux"] ./cfssl.nix {};
160 cgit = handleTest ./cgit.nix {};
161 charliecloud = handleTest ./charliecloud.nix {};
162 chromium = (handleTestOn ["aarch64-linux" "x86_64-linux"] ./chromium.nix {}).stable or {};
163 chrony-ptp = handleTestOn ["aarch64-linux" "x86_64-linux"] ./chrony-ptp.nix {};
164 cinnamon = handleTest ./cinnamon.nix {};
165 cjdns = handleTest ./cjdns.nix {};
166 clickhouse = handleTest ./clickhouse.nix {};
167 cloud-init = handleTest ./cloud-init.nix {};
168 cloud-init-hostname = handleTest ./cloud-init-hostname.nix {};
169 cloudlog = handleTest ./cloudlog.nix {};
170 cntr = handleTestOn ["aarch64-linux" "x86_64-linux"] ./cntr.nix {};
171 cockpit = handleTest ./cockpit.nix {};
172 cockroachdb = handleTestOn ["x86_64-linux"] ./cockroachdb.nix {};
173 coder = handleTest ./coder.nix {};
174 collectd = handleTest ./collectd.nix {};
175 connman = handleTest ./connman.nix {};
176 consul = handleTest ./consul.nix {};
177 consul-template = handleTest ./consul-template.nix {};
178 containers-bridge = handleTest ./containers-bridge.nix {};
179 containers-custom-pkgs.nix = handleTest ./containers-custom-pkgs.nix {};
180 containers-ephemeral = handleTest ./containers-ephemeral.nix {};
181 containers-extra_veth = handleTest ./containers-extra_veth.nix {};
182 containers-hosts = handleTest ./containers-hosts.nix {};
183 containers-imperative = handleTest ./containers-imperative.nix {};
184 containers-ip = handleTest ./containers-ip.nix {};
185 containers-macvlans = handleTest ./containers-macvlans.nix {};
186 containers-names = handleTest ./containers-names.nix {};
187 containers-nested = handleTest ./containers-nested.nix {};
188 containers-physical_interfaces = handleTest ./containers-physical_interfaces.nix {};
189 containers-portforward = handleTest ./containers-portforward.nix {};
190 containers-reloadable = handleTest ./containers-reloadable.nix {};
191 containers-restart_networking = handleTest ./containers-restart_networking.nix {};
192 containers-tmpfs = handleTest ./containers-tmpfs.nix {};
193 containers-unified-hierarchy = handleTest ./containers-unified-hierarchy.nix {};
194 convos = handleTest ./convos.nix {};
195 corerad = handleTest ./corerad.nix {};
196 coturn = handleTest ./coturn.nix {};
197 couchdb = handleTest ./couchdb.nix {};
198 cri-o = handleTestOn ["aarch64-linux" "x86_64-linux"] ./cri-o.nix {};
199 cups-pdf = handleTest ./cups-pdf.nix {};
200 custom-ca = handleTest ./custom-ca.nix {};
201 croc = handleTest ./croc.nix {};
202 darling = handleTest ./darling.nix {};
203 deepin = handleTest ./deepin.nix {};
204 deluge = handleTest ./deluge.nix {};
205 dendrite = handleTest ./matrix/dendrite.nix {};
206 dex-oidc = handleTest ./dex-oidc.nix {};
207 dhparams = handleTest ./dhparams.nix {};
208 disable-installer-tools = handleTest ./disable-installer-tools.nix {};
209 discourse = handleTest ./discourse.nix {};
210 dnscrypt-proxy2 = handleTestOn ["x86_64-linux"] ./dnscrypt-proxy2.nix {};
211 dnscrypt-wrapper = handleTestOn ["x86_64-linux"] ./dnscrypt-wrapper {};
212 dnsdist = handleTest ./dnsdist.nix {};
213 doas = handleTest ./doas.nix {};
214 docker = handleTestOn ["aarch64-linux" "x86_64-linux"] ./docker.nix {};
215 docker-rootless = handleTestOn ["aarch64-linux" "x86_64-linux"] ./docker-rootless.nix {};
216 docker-registry = handleTest ./docker-registry.nix {};
217 docker-tools = handleTestOn ["x86_64-linux"] ./docker-tools.nix {};
218 docker-tools-cross = handleTestOn ["x86_64-linux" "aarch64-linux"] ./docker-tools-cross.nix {};
219 docker-tools-overlay = handleTestOn ["x86_64-linux"] ./docker-tools-overlay.nix {};
220 documize = handleTest ./documize.nix {};
221 documentation = pkgs.callPackage ../modules/misc/documentation/test.nix { inherit nixosLib; };
222 doh-proxy-rust = handleTest ./doh-proxy-rust.nix {};
223 dokuwiki = handleTest ./dokuwiki.nix {};
224 dolibarr = handleTest ./dolibarr.nix {};
225 domination = handleTest ./domination.nix {};
226 dovecot = handleTest ./dovecot.nix {};
227 drbd = handleTest ./drbd.nix {};
228 earlyoom = handleTestOn ["x86_64-linux"] ./earlyoom.nix {};
229 early-mount-options = handleTest ./early-mount-options.nix {};
230 ec2-config = (handleTestOn ["x86_64-linux"] ./ec2.nix {}).boot-ec2-config or {};
231 ec2-nixops = (handleTestOn ["x86_64-linux"] ./ec2.nix {}).boot-ec2-nixops or {};
232 ecryptfs = handleTest ./ecryptfs.nix {};
233 fscrypt = handleTest ./fscrypt.nix {};
234 ejabberd = handleTest ./xmpp/ejabberd.nix {};
235 elk = handleTestOn ["x86_64-linux"] ./elk.nix {};
236 emacs-daemon = handleTest ./emacs-daemon.nix {};
237 endlessh = handleTest ./endlessh.nix {};
238 endlessh-go = handleTest ./endlessh-go.nix {};
239 engelsystem = handleTest ./engelsystem.nix {};
240 enlightenment = handleTest ./enlightenment.nix {};
241 env = handleTest ./env.nix {};
242 envfs = handleTest ./envfs.nix {};
243 envoy = handleTest ./envoy.nix {};
244 ergo = handleTest ./ergo.nix {};
245 ergochat = handleTest ./ergochat.nix {};
246 esphome = handleTest ./esphome.nix {};
247 etc = pkgs.callPackage ../modules/system/etc/test.nix { inherit evalMinimalConfig; };
248 activation = pkgs.callPackage ../modules/system/activation/test.nix { };
249 etcd = handleTestOn ["x86_64-linux"] ./etcd.nix {};
250 etcd-cluster = handleTestOn ["x86_64-linux"] ./etcd-cluster.nix {};
251 etebase-server = handleTest ./etebase-server.nix {};
252 etesync-dav = handleTest ./etesync-dav.nix {};
253 evcc = handleTest ./evcc.nix {};
254 fancontrol = handleTest ./fancontrol.nix {};
255 fcitx5 = handleTest ./fcitx5 {};
256 fenics = handleTest ./fenics.nix {};
257 ferm = handleTest ./ferm.nix {};
258 firefox = handleTest ./firefox.nix { firefoxPackage = pkgs.firefox; };
259 firefox-beta = handleTest ./firefox.nix { firefoxPackage = pkgs.firefox-beta; };
260 firefox-devedition = handleTest ./firefox.nix { firefoxPackage = pkgs.firefox-devedition; };
261 firefox-esr = handleTest ./firefox.nix { firefoxPackage = pkgs.firefox-esr; }; # used in `tested` job
262 firefox-esr-102 = handleTest ./firefox.nix { firefoxPackage = pkgs.firefox-esr-102; };
263 firejail = handleTest ./firejail.nix {};
264 firewall = handleTest ./firewall.nix { nftables = false; };
265 firewall-nftables = handleTest ./firewall.nix { nftables = true; };
266 fish = handleTest ./fish.nix {};
267 flannel = handleTestOn ["x86_64-linux"] ./flannel.nix {};
268 fluentd = handleTest ./fluentd.nix {};
269 fluidd = handleTest ./fluidd.nix {};
270 fontconfig-default-fonts = handleTest ./fontconfig-default-fonts.nix {};
271 forgejo = handleTest ./gitea.nix { giteaPackage = pkgs.forgejo; };
272 freenet = handleTest ./freenet.nix {};
273 freeswitch = handleTest ./freeswitch.nix {};
274 freshrss-sqlite = handleTest ./freshrss-sqlite.nix {};
275 freshrss-pgsql = handleTest ./freshrss-pgsql.nix {};
276 frigate = handleTest ./frigate.nix {};
277 frr = handleTest ./frr.nix {};
278 fsck = handleTest ./fsck.nix {};
279 fsck-systemd-stage-1 = handleTest ./fsck.nix { systemdStage1 = true; };
280 ft2-clone = handleTest ./ft2-clone.nix {};
281 mimir = handleTest ./mimir.nix {};
282 garage = handleTest ./garage {};
283 gemstash = handleTest ./gemstash.nix {};
284 gerrit = handleTest ./gerrit.nix {};
285 geth = handleTest ./geth.nix {};
286 ghostunnel = handleTest ./ghostunnel.nix {};
287 gitdaemon = handleTest ./gitdaemon.nix {};
288 gitea = handleTest ./gitea.nix { giteaPackage = pkgs.gitea; };
289 github-runner = handleTest ./github-runner.nix {};
290 gitlab = runTest ./gitlab.nix;
291 gitolite = handleTest ./gitolite.nix {};
292 gitolite-fcgiwrap = handleTest ./gitolite-fcgiwrap.nix {};
293 glusterfs = handleTest ./glusterfs.nix {};
294 gnome = handleTest ./gnome.nix {};
295 gnome-flashback = handleTest ./gnome-flashback.nix {};
296 gnome-xorg = handleTest ./gnome-xorg.nix {};
297 gnupg = handleTest ./gnupg.nix {};
298 go-neb = handleTest ./go-neb.nix {};
299 gobgpd = handleTest ./gobgpd.nix {};
300 gocd-agent = handleTest ./gocd-agent.nix {};
301 gocd-server = handleTest ./gocd-server.nix {};
302 gollum = handleTest ./gollum.nix {};
303 gonic = handleTest ./gonic.nix {};
304 google-oslogin = handleTest ./google-oslogin {};
305 gotify-server = handleTest ./gotify-server.nix {};
306 grafana = handleTest ./grafana {};
307 grafana-agent = handleTest ./grafana-agent.nix {};
308 graphite = handleTest ./graphite.nix {};
309 graylog = handleTest ./graylog.nix {};
310 grocy = handleTest ./grocy.nix {};
311 grub = handleTest ./grub.nix {};
312 gvisor = handleTest ./gvisor.nix {};
313 hadoop = import ./hadoop { inherit handleTestOn; package=pkgs.hadoop; };
314 hadoop_3_2 = import ./hadoop { inherit handleTestOn; package=pkgs.hadoop_3_2; };
315 hadoop2 = import ./hadoop { inherit handleTestOn; package=pkgs.hadoop2; };
316 haka = handleTest ./haka.nix {};
317 haste-server = handleTest ./haste-server.nix {};
318 haproxy = handleTest ./haproxy.nix {};
319 hardened = handleTest ./hardened.nix {};
320 harmonia = runTest ./harmonia.nix;
321 headscale = handleTest ./headscale.nix {};
322 healthchecks = handleTest ./web-apps/healthchecks.nix {};
323 hbase2 = handleTest ./hbase.nix { package=pkgs.hbase2; };
324 hbase_2_4 = handleTest ./hbase.nix { package=pkgs.hbase_2_4; };
325 hbase3 = handleTest ./hbase.nix { package=pkgs.hbase3; };
326 hedgedoc = handleTest ./hedgedoc.nix {};
327 herbstluftwm = handleTest ./herbstluftwm.nix {};
328 installed-tests = pkgs.recurseIntoAttrs (handleTest ./installed-tests {});
329 invidious = handleTest ./invidious.nix {};
330 oci-containers = handleTestOn ["aarch64-linux" "x86_64-linux"] ./oci-containers.nix {};
331 odoo = handleTest ./odoo.nix {};
332 # 9pnet_virtio used to mount /nix partition doesn't support
333 # hibernation. This test happens to work on x86_64-linux but
334 # not on other platforms.
335 hibernate = handleTestOn ["x86_64-linux"] ./hibernate.nix {};
336 hibernate-systemd-stage-1 = handleTestOn ["x86_64-linux"] ./hibernate.nix { systemdStage1 = true; };
337 hitch = handleTest ./hitch {};
338 hledger-web = handleTest ./hledger-web.nix {};
339 hocker-fetchdocker = handleTest ./hocker-fetchdocker {};
340 hockeypuck = handleTest ./hockeypuck.nix { };
341 home-assistant = handleTest ./home-assistant.nix {};
342 hostname = handleTest ./hostname.nix {};
343 hound = handleTest ./hound.nix {};
344 hub = handleTest ./git/hub.nix {};
345 hydra = handleTest ./hydra {};
346 i3wm = handleTest ./i3wm.nix {};
347 icingaweb2 = handleTest ./icingaweb2.nix {};
348 iftop = handleTest ./iftop.nix {};
349 incron = handleTest ./incron.nix {};
350 influxdb = handleTest ./influxdb.nix {};
351 initrd-network-openvpn = handleTest ./initrd-network-openvpn {};
352 initrd-network-ssh = handleTest ./initrd-network-ssh {};
353 initrd-luks-empty-passphrase = handleTest ./initrd-luks-empty-passphrase.nix {};
354 initrdNetwork = handleTest ./initrd-network.nix {};
355 initrd-secrets = handleTest ./initrd-secrets.nix {};
356 initrd-secrets-changing = handleTest ./initrd-secrets-changing.nix {};
357 input-remapper = handleTest ./input-remapper.nix {};
358 inspircd = handleTest ./inspircd.nix {};
359 installer = handleTest ./installer.nix {};
360 installer-systemd-stage-1 = handleTest ./installer-systemd-stage-1.nix {};
361 invoiceplane = handleTest ./invoiceplane.nix {};
362 iodine = handleTest ./iodine.nix {};
363 ipv6 = handleTest ./ipv6.nix {};
364 iscsi-multipath-root = handleTest ./iscsi-multipath-root.nix {};
365 iscsi-root = handleTest ./iscsi-root.nix {};
366 isso = handleTest ./isso.nix {};
367 jackett = handleTest ./jackett.nix {};
368 jellyfin = handleTest ./jellyfin.nix {};
369 jenkins = handleTest ./jenkins.nix {};
370 jenkins-cli = handleTest ./jenkins-cli.nix {};
371 jibri = handleTest ./jibri.nix {};
372 jirafeau = handleTest ./jirafeau.nix {};
373 jitsi-meet = handleTest ./jitsi-meet.nix {};
374 k3s = handleTest ./k3s {};
375 kafka = handleTest ./kafka.nix {};
376 kanidm = handleTest ./kanidm.nix {};
377 karma = handleTest ./karma.nix {};
378 kavita = handleTest ./kavita.nix {};
379 kbd-setfont-decompress = handleTest ./kbd-setfont-decompress.nix {};
380 kbd-update-search-paths-patch = handleTest ./kbd-update-search-paths-patch.nix {};
381 kea = handleTest ./kea.nix {};
382 keepalived = handleTest ./keepalived.nix {};
383 keepassxc = handleTest ./keepassxc.nix {};
384 kerberos = handleTest ./kerberos/default.nix {};
385 kernel-generic = handleTest ./kernel-generic.nix {};
386 kernel-latest-ath-user-regd = handleTest ./kernel-latest-ath-user-regd.nix {};
387 keter = handleTest ./keter.nix {};
388 kexec = handleTest ./kexec.nix {};
389 keycloak = discoverTests (import ./keycloak.nix);
390 keyd = handleTest ./keyd.nix {};
391 keymap = handleTest ./keymap.nix {};
392 knot = handleTest ./knot.nix {};
393 komga = handleTest ./komga.nix {};
394 krb5 = discoverTests (import ./krb5 {});
395 ksm = handleTest ./ksm.nix {};
396 kthxbye = handleTest ./kthxbye.nix {};
397 kubernetes = handleTestOn ["x86_64-linux"] ./kubernetes {};
398 kubo = runTest ./kubo.nix;
399 ladybird = handleTest ./ladybird.nix {};
400 languagetool = handleTest ./languagetool.nix {};
401 latestKernel.login = handleTest ./login.nix { latestKernel = true; };
402 leaps = handleTest ./leaps.nix {};
403 lemmy = handleTest ./lemmy.nix {};
404 libinput = handleTest ./libinput.nix {};
405 libreddit = handleTest ./libreddit.nix {};
406 libresprite = handleTest ./libresprite.nix {};
407 libreswan = handleTest ./libreswan.nix {};
408 librewolf = handleTest ./firefox.nix { firefoxPackage = pkgs.librewolf; };
409 libuiohook = handleTest ./libuiohook.nix {};
410 libvirtd = handleTest ./libvirtd.nix {};
411 lidarr = handleTest ./lidarr.nix {};
412 lightdm = handleTest ./lightdm.nix {};
413 lighttpd = handleTest ./lighttpd.nix {};
414 limesurvey = handleTest ./limesurvey.nix {};
415 listmonk = handleTest ./listmonk.nix {};
416 litestream = handleTest ./litestream.nix {};
417 lldap = handleTest ./lldap.nix {};
418 locate = handleTest ./locate.nix {};
419 login = handleTest ./login.nix {};
420 logrotate = handleTest ./logrotate.nix {};
421 loki = handleTest ./loki.nix {};
422 luks = handleTest ./luks.nix {};
423 lvm2 = handleTest ./lvm2 {};
424 lxd = handleTest ./lxd.nix {};
425 lxd-nftables = handleTest ./lxd-nftables.nix {};
426 lxd-image-server = handleTest ./lxd-image-server.nix {};
427 #logstash = handleTest ./logstash.nix {};
428 lorri = handleTest ./lorri/default.nix {};
429 maddy = discoverTests (import ./maddy { inherit handleTest; });
430 maestral = handleTest ./maestral.nix {};
431 magic-wormhole-mailbox-server = handleTest ./magic-wormhole-mailbox-server.nix {};
432 magnetico = handleTest ./magnetico.nix {};
433 mailcatcher = handleTest ./mailcatcher.nix {};
434 mailhog = handleTest ./mailhog.nix {};
435 mailman = handleTest ./mailman.nix {};
436 man = handleTest ./man.nix {};
437 mariadb-galera = handleTest ./mysql/mariadb-galera.nix {};
438 mastodon = discoverTests (import ./web-apps/mastodon { inherit handleTestOn; });
439 pixelfed = discoverTests (import ./web-apps/pixelfed { inherit handleTestOn; });
440 mate = handleTest ./mate.nix {};
441 matomo = handleTest ./matomo.nix {};
442 matrix-appservice-irc = handleTest ./matrix/appservice-irc.nix {};
443 matrix-conduit = handleTest ./matrix/conduit.nix {};
444 matrix-synapse = handleTest ./matrix/synapse.nix {};
445 mattermost = handleTest ./mattermost.nix {};
446 mediatomb = handleTest ./mediatomb.nix {};
447 mediawiki = handleTest ./mediawiki.nix {};
448 meilisearch = handleTest ./meilisearch.nix {};
449 memcached = handleTest ./memcached.nix {};
450 merecat = handleTest ./merecat.nix {};
451 metabase = handleTest ./metabase.nix {};
452 mindustry = handleTest ./mindustry.nix {};
453 minecraft = handleTest ./minecraft.nix {};
454 minecraft-server = handleTest ./minecraft-server.nix {};
455 minidlna = handleTest ./minidlna.nix {};
456 miniflux = handleTest ./miniflux.nix {};
457 minio = handleTest ./minio.nix {};
458 miriway = handleTest ./miriway.nix {};
459 misc = handleTest ./misc.nix {};
460 mjolnir = handleTest ./matrix/mjolnir.nix {};
461 mod_perl = handleTest ./mod_perl.nix {};
462 molly-brown = handleTest ./molly-brown.nix {};
463 monica = handleTest ./web-apps/monica.nix {};
464 mongodb = handleTest ./mongodb.nix {};
465 moodle = handleTest ./moodle.nix {};
466 moonraker = handleTest ./moonraker.nix {};
467 morty = handleTest ./morty.nix {};
468 mosquitto = handleTest ./mosquitto.nix {};
469 moosefs = handleTest ./moosefs.nix {};
470 mpd = handleTest ./mpd.nix {};
471 mpv = handleTest ./mpv.nix {};
472 mtp = handleTest ./mtp.nix {};
473 multipass = handleTest ./multipass.nix {};
474 mumble = handleTest ./mumble.nix {};
475 # Fails on aarch64-linux at the PDF creation step - need to debug this on an
476 # aarch64 machine..
477 musescore = handleTestOn ["x86_64-linux"] ./musescore.nix {};
478 munin = handleTest ./munin.nix {};
479 mutableUsers = handleTest ./mutable-users.nix {};
480 mxisd = handleTest ./mxisd.nix {};
481 mysql = handleTest ./mysql/mysql.nix {};
482 mysql-autobackup = handleTest ./mysql/mysql-autobackup.nix {};
483 mysql-backup = handleTest ./mysql/mysql-backup.nix {};
484 mysql-replication = handleTest ./mysql/mysql-replication.nix {};
485 n8n = handleTest ./n8n.nix {};
486 nagios = handleTest ./nagios.nix {};
487 nar-serve = handleTest ./nar-serve.nix {};
488 nat.firewall = handleTest ./nat.nix { withFirewall = true; };
489 nat.standalone = handleTest ./nat.nix { withFirewall = false; };
490 nat.nftables.firewall = handleTest ./nat.nix { withFirewall = true; nftables = true; };
491 nat.nftables.standalone = handleTest ./nat.nix { withFirewall = false; nftables = true; };
492 nats = handleTest ./nats.nix {};
493 navidrome = handleTest ./navidrome.nix {};
494 nbd = handleTest ./nbd.nix {};
495 ncdns = handleTest ./ncdns.nix {};
496 ndppd = handleTest ./ndppd.nix {};
497 nebula = handleTest ./nebula.nix {};
498 netbird = handleTest ./netbird.nix {};
499 neo4j = handleTest ./neo4j.nix {};
500 netdata = handleTest ./netdata.nix {};
501 networking.networkd = handleTest ./networking.nix { networkd = true; };
502 networking.scripted = handleTest ./networking.nix { networkd = false; };
503 netbox = handleTest ./web-apps/netbox.nix { inherit (pkgs) netbox; };
504 netbox_3_3 = handleTest ./web-apps/netbox.nix { netbox = pkgs.netbox_3_3; };
505 # TODO: put in networking.nix after the test becomes more complete
506 networkingProxy = handleTest ./networking-proxy.nix {};
507 nextcloud = handleTest ./nextcloud {};
508 nexus = handleTest ./nexus.nix {};
509 # TODO: Test nfsv3 + Kerberos
510 nfs3 = handleTest ./nfs { version = 3; };
511 nfs4 = handleTest ./nfs { version = 4; };
512 nghttpx = handleTest ./nghttpx.nix {};
513 nginx = handleTest ./nginx.nix {};
514 nginx-auth = handleTest ./nginx-auth.nix {};
515 nginx-etag = handleTest ./nginx-etag.nix {};
516 nginx-globalredirect = handleTest ./nginx-globalredirect.nix {};
517 nginx-http3 = handleTest ./nginx-http3.nix {};
518 nginx-modsecurity = handleTest ./nginx-modsecurity.nix {};
519 nginx-njs = handleTest ./nginx-njs.nix {};
520 nginx-pubhtml = handleTest ./nginx-pubhtml.nix {};
521 nginx-sandbox = handleTestOn ["x86_64-linux"] ./nginx-sandbox.nix {};
522 nginx-sso = handleTest ./nginx-sso.nix {};
523 nginx-variants = handleTest ./nginx-variants.nix {};
524 nifi = handleTestOn ["x86_64-linux"] ./web-apps/nifi.nix {};
525 nitter = handleTest ./nitter.nix {};
526 nix-ld = handleTest ./nix-ld.nix {};
527 nix-serve = handleTest ./nix-serve.nix {};
528 nix-serve-ssh = handleTest ./nix-serve-ssh.nix {};
529 nixops = handleTest ./nixops/default.nix {};
530 nixos-generate-config = handleTest ./nixos-generate-config.nix {};
531 nixos-rebuild-specialisations = handleTest ./nixos-rebuild-specialisations.nix {};
532 nixpkgs = pkgs.callPackage ../modules/misc/nixpkgs/test.nix { inherit evalMinimalConfig; };
533 node-red = handleTest ./node-red.nix {};
534 nomad = handleTest ./nomad.nix {};
535 non-default-filesystems = handleTest ./non-default-filesystems.nix {};
536 noto-fonts = handleTest ./noto-fonts.nix {};
537 noto-fonts-cjk-qt-default-weight = handleTest ./noto-fonts-cjk-qt-default-weight.nix {};
538 novacomd = handleTestOn ["x86_64-linux"] ./novacomd.nix {};
539 nscd = handleTest ./nscd.nix {};
540 nsd = handleTest ./nsd.nix {};
541 ntfy-sh = handleTest ./ntfy-sh.nix {};
542 nzbget = handleTest ./nzbget.nix {};
543 nzbhydra2 = handleTest ./nzbhydra2.nix {};
544 oh-my-zsh = handleTest ./oh-my-zsh.nix {};
545 ombi = handleTest ./ombi.nix {};
546 openarena = handleTest ./openarena.nix {};
547 openldap = handleTest ./openldap.nix {};
548 opensearch = discoverTests (import ./opensearch.nix);
549 openresty-lua = handleTest ./openresty-lua.nix {};
550 opensmtpd = handleTest ./opensmtpd.nix {};
551 opensmtpd-rspamd = handleTest ./opensmtpd-rspamd.nix {};
552 openssh = handleTest ./openssh.nix {};
553 octoprint = handleTest ./octoprint.nix {};
554 openstack-image-metadata = (handleTestOn ["x86_64-linux"] ./openstack-image.nix {}).metadata or {};
555 openstack-image-userdata = (handleTestOn ["x86_64-linux"] ./openstack-image.nix {}).userdata or {};
556 opentabletdriver = handleTest ./opentabletdriver.nix {};
557 owncast = handleTest ./owncast.nix {};
558 image-contents = handleTest ./image-contents.nix {};
559 openvscode-server = handleTest ./openvscode-server.nix {};
560 orangefs = handleTest ./orangefs.nix {};
561 os-prober = handleTestOn ["x86_64-linux"] ./os-prober.nix {};
562 osrm-backend = handleTest ./osrm-backend.nix {};
563 overlayfs = handleTest ./overlayfs.nix {};
564 pacemaker = handleTest ./pacemaker.nix {};
565 packagekit = handleTest ./packagekit.nix {};
566 pam-file-contents = handleTest ./pam/pam-file-contents.nix {};
567 pam-oath-login = handleTest ./pam/pam-oath-login.nix {};
568 pam-u2f = handleTest ./pam/pam-u2f.nix {};
569 pam-ussh = handleTest ./pam/pam-ussh.nix {};
570 pam-zfs-key = handleTest ./pam/zfs-key.nix {};
571 pass-secret-service = handleTest ./pass-secret-service.nix {};
572 patroni = handleTestOn ["x86_64-linux"] ./patroni.nix {};
573 pantalaimon = handleTest ./matrix/pantalaimon.nix {};
574 pantheon = handleTest ./pantheon.nix {};
575 paperless = handleTest ./paperless.nix {};
576 parsedmarc = handleTest ./parsedmarc {};
577 pdns-recursor = handleTest ./pdns-recursor.nix {};
578 peerflix = handleTest ./peerflix.nix {};
579 peering-manager = handleTest ./web-apps/peering-manager.nix {};
580 peertube = handleTestOn ["x86_64-linux"] ./web-apps/peertube.nix {};
581 peroxide = handleTest ./peroxide.nix {};
582 pgadmin4 = handleTest ./pgadmin4.nix {};
583 pgjwt = handleTest ./pgjwt.nix {};
584 pgmanage = handleTest ./pgmanage.nix {};
585 phosh = handleTest ./phosh.nix {};
586 photoprism = handleTest ./photoprism.nix {};
587 php = handleTest ./php {};
588 php80 = handleTest ./php { php = pkgs.php80; };
589 php81 = handleTest ./php { php = pkgs.php81; };
590 php82 = handleTest ./php { php = pkgs.php82; };
591 phylactery = handleTest ./web-apps/phylactery.nix {};
592 pict-rs = handleTest ./pict-rs.nix {};
593 pinnwand = handleTest ./pinnwand.nix {};
594 plasma-bigscreen = handleTest ./plasma-bigscreen.nix {};
595 plasma5 = handleTest ./plasma5.nix {};
596 plasma5-systemd-start = handleTest ./plasma5-systemd-start.nix {};
597 plausible = handleTest ./plausible.nix {};
598 please = handleTest ./please.nix {};
599 pleroma = handleTestOn [ "x86_64-linux" "aarch64-linux" ] ./pleroma.nix {};
600 plikd = handleTest ./plikd.nix {};
601 plotinus = handleTest ./plotinus.nix {};
602 podgrab = handleTest ./podgrab.nix {};
603 podman = handleTestOn ["aarch64-linux" "x86_64-linux"] ./podman/default.nix {};
604 podman-tls-ghostunnel = handleTestOn ["aarch64-linux" "x86_64-linux"] ./podman/tls-ghostunnel.nix {};
605 polaris = handleTest ./polaris.nix {};
606 pomerium = handleTestOn ["x86_64-linux"] ./pomerium.nix {};
607 portunus = handleTest ./portunus.nix { };
608 postfix = handleTest ./postfix.nix {};
609 postfix-raise-smtpd-tls-security-level = handleTest ./postfix-raise-smtpd-tls-security-level.nix {};
610 postfixadmin = handleTest ./postfixadmin.nix {};
611 postgis = handleTest ./postgis.nix {};
612 postgresql = handleTest ./postgresql.nix {};
613 postgresql-jit = handleTest ./postgresql-jit.nix {};
614 postgresql-wal-receiver = handleTest ./postgresql-wal-receiver.nix {};
615 powerdns = handleTest ./powerdns.nix {};
616 powerdns-admin = handleTest ./powerdns-admin.nix {};
617 power-profiles-daemon = handleTest ./power-profiles-daemon.nix {};
618 pppd = handleTest ./pppd.nix {};
619 predictable-interface-names = handleTest ./predictable-interface-names.nix {};
620 printing-socket = handleTest ./printing.nix { socket = true; };
621 printing-service = handleTest ./printing.nix { socket = false; };
622 privacyidea = handleTest ./privacyidea.nix {};
623 privoxy = handleTest ./privoxy.nix {};
624 prometheus = handleTest ./prometheus.nix {};
625 prometheus-exporters = handleTest ./prometheus-exporters.nix {};
626 prosody = handleTest ./xmpp/prosody.nix {};
627 prosody-mysql = handleTest ./xmpp/prosody-mysql.nix {};
628 proxy = handleTest ./proxy.nix {};
629 prowlarr = handleTest ./prowlarr.nix {};
630 pt2-clone = handleTest ./pt2-clone.nix {};
631 pykms = handleTest ./pykms.nix {};
632 public-inbox = handleTest ./public-inbox.nix {};
633 pufferpanel = handleTest ./pufferpanel.nix {};
634 pulseaudio = discoverTests (import ./pulseaudio.nix);
635 qboot = handleTestOn ["x86_64-linux" "i686-linux"] ./qboot.nix {};
636 qemu-vm-restrictnetwork = handleTest ./qemu-vm-restrictnetwork.nix {};
637 quorum = handleTest ./quorum.nix {};
638 quake3 = handleTest ./quake3.nix {};
639 rabbitmq = handleTest ./rabbitmq.nix {};
640 radarr = handleTest ./radarr.nix {};
641 radicale = handleTest ./radicale.nix {};
642 rasdaemon = handleTest ./rasdaemon.nix {};
643 readarr = handleTest ./readarr.nix {};
644 redis = handleTest ./redis.nix {};
645 redmine = handleTest ./redmine.nix {};
646 restartByActivationScript = handleTest ./restart-by-activation-script.nix {};
647 restic = handleTest ./restic.nix {};
648 retroarch = handleTest ./retroarch.nix {};
649 robustirc-bridge = handleTest ./robustirc-bridge.nix {};
650 roundcube = handleTest ./roundcube.nix {};
651 rshim = handleTest ./rshim.nix {};
652 rspamd = handleTest ./rspamd.nix {};
653 rss2email = handleTest ./rss2email.nix {};
654 rstudio-server = handleTest ./rstudio-server.nix {};
655 rsyncd = handleTest ./rsyncd.nix {};
656 rsyslogd = handleTest ./rsyslogd.nix {};
657 rxe = handleTest ./rxe.nix {};
658 sabnzbd = handleTest ./sabnzbd.nix {};
659 samba = handleTest ./samba.nix {};
660 samba-wsdd = handleTest ./samba-wsdd.nix {};
661 sanoid = handleTest ./sanoid.nix {};
662 schleuder = handleTest ./schleuder.nix {};
663 sddm = handleTest ./sddm.nix {};
664 seafile = handleTest ./seafile.nix {};
665 searx = handleTest ./searx.nix {};
666 service-runner = handleTest ./service-runner.nix {};
667 sfxr-qt = handleTest ./sfxr-qt.nix {};
668 sgtpuzzles = handleTest ./sgtpuzzles.nix {};
669 shadow = handleTest ./shadow.nix {};
670 shadowsocks = handleTest ./shadowsocks {};
671 shattered-pixel-dungeon = handleTest ./shattered-pixel-dungeon.nix {};
672 shiori = handleTest ./shiori.nix {};
673 signal-desktop = handleTest ./signal-desktop.nix {};
674 simple = handleTest ./simple.nix {};
675 slurm = handleTest ./slurm.nix {};
676 smokeping = handleTest ./smokeping.nix {};
677 snapcast = handleTest ./snapcast.nix {};
678 snapper = handleTest ./snapper.nix {};
679 snipe-it = runTest ./web-apps/snipe-it.nix;
680 soapui = handleTest ./soapui.nix {};
681 sogo = handleTest ./sogo.nix {};
682 solanum = handleTest ./solanum.nix {};
683 sonarr = handleTest ./sonarr.nix {};
684 sourcehut = handleTest ./sourcehut.nix {};
685 spacecookie = handleTest ./spacecookie.nix {};
686 spark = handleTestOn [ "x86_64-linux" "aarch64-linux" ] ./spark {};
687 sqlite3-to-mysql = handleTest ./sqlite3-to-mysql.nix {};
688 sslh = handleTest ./sslh.nix {};
689 sssd = handleTestOn ["x86_64-linux"] ./sssd.nix {};
690 sssd-ldap = handleTestOn ["x86_64-linux"] ./sssd-ldap.nix {};
691 stargazer = runTest ./web-servers/stargazer.nix;
692 starship = handleTest ./starship.nix {};
693 step-ca = handleTestOn ["x86_64-linux"] ./step-ca.nix {};
694 stratis = handleTest ./stratis {};
695 strongswan-swanctl = handleTest ./strongswan-swanctl.nix {};
696 stunnel = handleTest ./stunnel.nix {};
697 sudo = handleTest ./sudo.nix {};
698 swap-file-btrfs = handleTest ./swap-file-btrfs.nix {};
699 swap-partition = handleTest ./swap-partition.nix {};
700 swap-random-encryption = handleTest ./swap-random-encryption.nix {};
701 sway = handleTest ./sway.nix {};
702 switchTest = handleTest ./switch-test.nix {};
703 sympa = handleTest ./sympa.nix {};
704 syncthing = handleTest ./syncthing.nix {};
705 syncthing-init = handleTest ./syncthing-init.nix {};
706 syncthing-relay = handleTest ./syncthing-relay.nix {};
707 systemd = handleTest ./systemd.nix {};
708 systemd-analyze = handleTest ./systemd-analyze.nix {};
709 systemd-binfmt = handleTestOn ["x86_64-linux"] ./systemd-binfmt.nix {};
710 systemd-boot = handleTest ./systemd-boot.nix {};
711 systemd-bpf = handleTest ./systemd-bpf.nix {};
712 systemd-confinement = handleTest ./systemd-confinement.nix {};
713 systemd-coredump = handleTest ./systemd-coredump.nix {};
714 systemd-cryptenroll = handleTest ./systemd-cryptenroll.nix {};
715 systemd-credentials-tpm2 = handleTest ./systemd-credentials-tpm2.nix {};
716 systemd-escaping = handleTest ./systemd-escaping.nix {};
717 systemd-initrd-btrfs-raid = handleTest ./systemd-initrd-btrfs-raid.nix {};
718 systemd-initrd-luks-fido2 = handleTest ./systemd-initrd-luks-fido2.nix {};
719 systemd-initrd-luks-keyfile = handleTest ./systemd-initrd-luks-keyfile.nix {};
720 systemd-initrd-luks-empty-passphrase = handleTest ./initrd-luks-empty-passphrase.nix { systemdStage1 = true; };
721 systemd-initrd-luks-password = handleTest ./systemd-initrd-luks-password.nix {};
722 systemd-initrd-luks-tpm2 = handleTest ./systemd-initrd-luks-tpm2.nix {};
723 systemd-initrd-modprobe = handleTest ./systemd-initrd-modprobe.nix {};
724 systemd-initrd-shutdown = handleTest ./systemd-shutdown.nix { systemdStage1 = true; };
725 systemd-initrd-simple = handleTest ./systemd-initrd-simple.nix {};
726 systemd-initrd-swraid = handleTest ./systemd-initrd-swraid.nix {};
727 systemd-initrd-vconsole = handleTest ./systemd-initrd-vconsole.nix {};
728 systemd-initrd-networkd = handleTest ./systemd-initrd-networkd.nix {};
729 systemd-initrd-networkd-ssh = handleTest ./systemd-initrd-networkd-ssh.nix {};
730 systemd-initrd-networkd-openvpn = handleTest ./initrd-network-openvpn { systemdStage1 = true; };
731 systemd-journal = handleTest ./systemd-journal.nix {};
732 systemd-machinectl = handleTest ./systemd-machinectl.nix {};
733 systemd-networkd = handleTest ./systemd-networkd.nix {};
734 systemd-networkd-dhcpserver = handleTest ./systemd-networkd-dhcpserver.nix {};
735 systemd-networkd-dhcpserver-static-leases = handleTest ./systemd-networkd-dhcpserver-static-leases.nix {};
736 systemd-networkd-ipv6-prefix-delegation = handleTest ./systemd-networkd-ipv6-prefix-delegation.nix {};
737 systemd-networkd-vrf = handleTest ./systemd-networkd-vrf.nix {};
738 systemd-no-tainted = handleTest ./systemd-no-tainted.nix {};
739 systemd-nspawn = handleTest ./systemd-nspawn.nix {};
740 systemd-oomd = handleTest ./systemd-oomd.nix {};
741 systemd-portabled = handleTest ./systemd-portabled.nix {};
742 systemd-repart = handleTest ./systemd-repart.nix {};
743 systemd-shutdown = handleTest ./systemd-shutdown.nix {};
744 systemd-timesyncd = handleTest ./systemd-timesyncd.nix {};
745 systemd-user-tmpfiles-rules = handleTest ./systemd-user-tmpfiles-rules.nix {};
746 systemd-misc = handleTest ./systemd-misc.nix {};
747 systemd-userdbd = handleTest ./systemd-userdbd.nix {};
748 systemd-homed = handleTest ./systemd-homed.nix {};
749 tandoor-recipes = handleTest ./tandoor-recipes.nix {};
750 taskserver = handleTest ./taskserver.nix {};
751 tayga = handleTest ./tayga.nix {};
752 teeworlds = handleTest ./teeworlds.nix {};
753 telegraf = handleTest ./telegraf.nix {};
754 teleport = handleTest ./teleport.nix {};
755 thelounge = handleTest ./thelounge.nix {};
756 terminal-emulators = handleTest ./terminal-emulators.nix {};
757 tiddlywiki = handleTest ./tiddlywiki.nix {};
758 tigervnc = handleTest ./tigervnc.nix {};
759 timescaledb = handleTest ./timescaledb.nix {};
760 promscale = handleTest ./promscale.nix {};
761 timezone = handleTest ./timezone.nix {};
762 tinc = handleTest ./tinc {};
763 tinydns = handleTest ./tinydns.nix {};
764 tinywl = handleTest ./tinywl.nix {};
765 tmate-ssh-server = handleTest ./tmate-ssh-server.nix { };
766 tomcat = handleTest ./tomcat.nix {};
767 tor = handleTest ./tor.nix {};
768 traefik = handleTestOn ["aarch64-linux" "x86_64-linux"] ./traefik.nix {};
769 trafficserver = handleTest ./trafficserver.nix {};
770 transmission = handleTest ./transmission.nix {};
771 # tracee requires bpf
772 tracee = handleTestOn ["x86_64-linux"] ./tracee.nix {};
773 trezord = handleTest ./trezord.nix {};
774 trickster = handleTest ./trickster.nix {};
775 trilium-server = handleTestOn ["x86_64-linux"] ./trilium-server.nix {};
776 tsm-client-gui = handleTest ./tsm-client-gui.nix {};
777 txredisapi = handleTest ./txredisapi.nix {};
778 tuptime = handleTest ./tuptime.nix {};
779 turbovnc-headless-server = handleTest ./turbovnc-headless-server.nix {};
780 tuxguitar = handleTest ./tuxguitar.nix {};
781 ucarp = handleTest ./ucarp.nix {};
782 udisks2 = handleTest ./udisks2.nix {};
783 ulogd = handleTest ./ulogd.nix {};
784 unbound = handleTest ./unbound.nix {};
785 unifi = handleTest ./unifi.nix {};
786 unit-php = handleTest ./web-servers/unit-php.nix {};
787 upnp = handleTest ./upnp.nix {};
788 uptermd = handleTest ./uptermd.nix {};
789 uptime-kuma = handleTest ./uptime-kuma.nix {};
790 usbguard = handleTest ./usbguard.nix {};
791 user-activation-scripts = handleTest ./user-activation-scripts.nix {};
792 user-home-mode = handleTest ./user-home-mode.nix {};
793 uwsgi = handleTest ./uwsgi.nix {};
794 v2ray = handleTest ./v2ray.nix {};
795 varnish60 = handleTest ./varnish.nix { package = pkgs.varnish60; };
796 varnish72 = handleTest ./varnish.nix { package = pkgs.varnish72; };
797 varnish73 = handleTest ./varnish.nix { package = pkgs.varnish73; };
798 vault = handleTest ./vault.nix {};
799 vault-agent = handleTest ./vault-agent.nix {};
800 vault-dev = handleTest ./vault-dev.nix {};
801 vault-postgresql = handleTest ./vault-postgresql.nix {};
802 vaultwarden = handleTest ./vaultwarden.nix {};
803 vector = handleTest ./vector.nix {};
804 vengi-tools = handleTest ./vengi-tools.nix {};
805 victoriametrics = handleTest ./victoriametrics.nix {};
806 vikunja = handleTest ./vikunja.nix {};
807 virtualbox = handleTestOn ["x86_64-linux"] ./virtualbox.nix {};
808 vscodium = discoverTests (import ./vscodium.nix);
809 vsftpd = handleTest ./vsftpd.nix {};
810 warzone2100 = handleTest ./warzone2100.nix {};
811 wasabibackend = handleTest ./wasabibackend.nix {};
812 webhook = runTest ./webhook.nix;
813 wiki-js = handleTest ./wiki-js.nix {};
814 wine = handleTest ./wine.nix {};
815 wireguard = handleTest ./wireguard {};
816 without-nix = handleTest ./without-nix.nix {};
817 wmderland = handleTest ./wmderland.nix {};
818 wpa_supplicant = handleTest ./wpa_supplicant.nix {};
819 wordpress = handleTest ./wordpress.nix {};
820 wrappers = handleTest ./wrappers.nix {};
821 writefreely = handleTest ./web-apps/writefreely.nix {};
822 xandikos = handleTest ./xandikos.nix {};
823 xautolock = handleTest ./xautolock.nix {};
824 xfce = handleTest ./xfce.nix {};
825 xmonad = handleTest ./xmonad.nix {};
826 xmonad-xdg-autostart = handleTest ./xmonad-xdg-autostart.nix {};
827 xpadneo = handleTest ./xpadneo.nix {};
828 xrdp = handleTest ./xrdp.nix {};
829 xss-lock = handleTest ./xss-lock.nix {};
830 xterm = handleTest ./xterm.nix {};
831 xxh = handleTest ./xxh.nix {};
832 yabar = handleTest ./yabar.nix {};
833 yggdrasil = handleTest ./yggdrasil.nix {};
834 zammad = handleTest ./zammad.nix {};
835 zeronet-conservancy = handleTest ./zeronet-conservancy.nix {};
836 zfs = handleTest ./zfs.nix {};
837 zigbee2mqtt = handleTest ./zigbee2mqtt.nix {};
838 zoneminder = handleTest ./zoneminder.nix {};
839 zookeeper = handleTest ./zookeeper.nix {};
840 zram-generator = handleTest ./zram-generator.nix {};
841 zrepl = handleTest ./zrepl.nix {};
842 zsh-history = handleTest ./zsh-history.nix {};
843}