nixpkgs/nixos/tests/all-tests.nix

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

725 lines
34 KiB
Nix
Raw Normal View History

{ system,
pkgs,
# Projects the test configuration into a the desired value; usually
# the test runner: `config: config.test`.
callTest,
}:
# The return value of this function will be an attrset with arbitrary depth and
# the `anything` returned by callTest at its test leafs.
# The tests not supported by `system` will be replaced with `{}`, so that
# `passthru.tests` can contain links to those without breaking on architectures
# where said tests are unsupported.
# Example callTest that just extracts the derivation from the test:
# callTest = t: t.test;
with pkgs.lib;
let
discoverTests = val:
if isAttrs val
then
if hasAttr "test" val then callTest val
else mapAttrs (n: s: discoverTests s) val
else if isFunction val
then
# Tests based on make-test-python.nix will return the second lambda
# in that file, which are then forwarded to the test definition
# following the `import make-test-python.nix` expression
# (if it is a function).
discoverTests (val { inherit system pkgs; })
else val;
handleTest = path: args:
discoverTests (import path ({ inherit system pkgs; } // args));
handleTestOn = systems: path: args:
if elem system systems then handleTest path args
else {};
nixosLib = import ../lib {
# Experimental features need testing too, but there's no point in warning
# about it, so we enable the feature flag.
featureFlags.minimalModules = {};
};
evalMinimalConfig = module: nixosLib.evalModules { modules = [ module ]; };
inherit
(rec {
doRunTest = arg: ((import ../lib/testing-python.nix { inherit system pkgs; }).evalTest {
imports = [ arg ];
}).config.result;
findTests = tree:
if tree?recurseForDerivations && tree.recurseForDerivations
then
mapAttrs
(k: findTests)
(builtins.removeAttrs tree ["recurseForDerivations"])
else callTest tree;
runTest = arg: let r = doRunTest arg; in findTests r;
runTestOn = systems: arg:
if elem system systems then runTest arg
else {};
})
runTest
runTestOn
;
in {
_3proxy = runTest ./3proxy.nix;
acme = runTest ./acme.nix;
adguardhome = runTest ./adguardhome.nix;
aesmd = runTest ./aesmd.nix;
agate = runTest ./web-servers/agate.nix;
2020-04-19 20:01:37 +02:00
agda = handleTest ./agda.nix {};
2021-05-03 17:38:02 +02:00
airsonic = handleTest ./airsonic.nix {};
allTerminfo = handleTest ./all-terminfo.nix {};
alps = handleTest ./alps.nix {};
amazon-init-shell = handleTest ./amazon-init-shell.nix {};
apfs = handleTest ./apfs.nix {};
apparmor = handleTest ./apparmor.nix {};
atd = handleTest ./atd.nix {};
atop = handleTest ./atop.nix {};
2022-07-31 23:40:48 +02:00
auth-mysql = handleTest ./auth-mysql.nix {};
avahi = handleTest ./avahi.nix {};
avahi-with-resolved = handleTest ./avahi.nix { networkd = true; };
2019-10-12 01:30:55 +02:00
babeld = handleTest ./babeld.nix {};
2020-05-10 12:54:09 +02:00
bazarr = handleTest ./bazarr.nix {};
bcachefs = handleTestOn ["x86_64-linux" "aarch64-linux"] ./bcachefs.nix {};
beanstalkd = handleTest ./beanstalkd.nix {};
2019-11-24 01:10:17 +01:00
bees = handleTest ./bees.nix {};
bind = handleTest ./bind.nix {};
2022-01-25 15:15:52 +01:00
bird = handleTest ./bird.nix {};
2020-07-21 13:43:32 +02:00
bitcoind = handleTest ./bitcoind.nix {};
bittorrent = handleTest ./bittorrent.nix {};
2020-06-23 13:09:03 +02:00
blockbook-frontend = handleTest ./blockbook-frontend.nix {};
2022-02-10 23:44:18 +01:00
blocky = handleTest ./blocky.nix {};
2021-05-25 20:13:29 +02:00
boot = handleTestOn ["x86_64-linux" "aarch64-linux"] ./boot.nix {};
boot-stage1 = handleTest ./boot-stage1.nix {};
borgbackup = handleTest ./borgbackup.nix {};
2021-05-04 14:30:25 +02:00
botamusique = handleTest ./botamusique.nix {};
bpf = handleTestOn ["x86_64-linux" "aarch64-linux"] ./bpf.nix {};
2022-01-26 14:03:05 +01:00
breitbandmessung = handleTest ./breitbandmessung.nix {};
brscan5 = handleTest ./brscan5.nix {};
2021-05-30 14:00:00 +02:00
btrbk = handleTest ./btrbk.nix {};
btrbk-no-timer = handleTest ./btrbk-no-timer.nix {};
btrbk-section-order = handleTest ./btrbk-section-order.nix {};
buildbot = handleTest ./buildbot.nix {};
2020-11-30 00:00:38 +01:00
buildkite-agents = handleTest ./buildkite-agents.nix {};
2019-10-09 13:32:03 +02:00
caddy = handleTest ./caddy.nix {};
cadvisor = handleTestOn ["x86_64-linux"] ./cadvisor.nix {};
cage = handleTest ./cage.nix {};
cagebreak = handleTest ./cagebreak.nix {};
2021-02-23 12:23:20 +01:00
calibre-web = handleTest ./calibre-web.nix {};
2020-12-09 13:01:56 +01:00
cassandra_3_0 = handleTest ./cassandra.nix { testPackage = pkgs.cassandra_3_0; };
cassandra_3_11 = handleTest ./cassandra.nix { testPackage = pkgs.cassandra_3_11; };
ceph-multi-node = handleTestOn ["x86_64-linux"] ./ceph-multi-node.nix {};
2020-11-30 00:00:38 +01:00
ceph-single-node = handleTestOn ["x86_64-linux"] ./ceph-single-node.nix {};
ceph-single-node-bluestore = handleTestOn ["x86_64-linux"] ./ceph-single-node-bluestore.nix {};
certmgr = handleTest ./certmgr.nix {};
cfssl = handleTestOn ["aarch64-linux" "x86_64-linux"] ./cfssl.nix {};
charliecloud = handleTest ./charliecloud.nix {};
chromium = (handleTestOn ["aarch64-linux" "x86_64-linux"] ./chromium.nix {}).stable or {};
2022-09-05 09:40:17 +02:00
cinnamon = handleTest ./cinnamon.nix {};
cjdns = handleTest ./cjdns.nix {};
clickhouse = handleTest ./clickhouse.nix {};
cloud-init = handleTest ./cloud-init.nix {};
cloud-init-hostname = handleTest ./cloud-init-hostname.nix {};
cntr = handleTestOn ["aarch64-linux" "x86_64-linux"] ./cntr.nix {};
2020-11-30 00:00:38 +01:00
cockroachdb = handleTestOn ["x86_64-linux"] ./cockroachdb.nix {};
2021-12-22 13:00:00 +01:00
collectd = handleTest ./collectd.nix {};
2019-11-24 15:08:53 +01:00
consul = handleTest ./consul.nix {};
containers-bridge = handleTest ./containers-bridge.nix {};
containers-custom-pkgs.nix = handleTest ./containers-custom-pkgs.nix {};
containers-ephemeral = handleTest ./containers-ephemeral.nix {};
containers-extra_veth = handleTest ./containers-extra_veth.nix {};
containers-hosts = handleTest ./containers-hosts.nix {};
containers-imperative = handleTest ./containers-imperative.nix {};
containers-ip = handleTest ./containers-ip.nix {};
containers-macvlans = handleTest ./containers-macvlans.nix {};
containers-names = handleTest ./containers-names.nix {};
2021-02-24 14:02:57 +01:00
containers-nested = handleTest ./containers-nested.nix {};
containers-physical_interfaces = handleTest ./containers-physical_interfaces.nix {};
containers-portforward = handleTest ./containers-portforward.nix {};
containers-reloadable = handleTest ./containers-reloadable.nix {};
containers-restart_networking = handleTest ./containers-restart_networking.nix {};
containers-tmpfs = handleTest ./containers-tmpfs.nix {};
containers-unified-hierarchy = handleTest ./containers-unified-hierarchy.nix {};
2020-06-05 14:54:29 +02:00
convos = handleTest ./convos.nix {};
2020-01-07 17:52:32 +01:00
corerad = handleTest ./corerad.nix {};
coturn = handleTest ./coturn.nix {};
couchdb = handleTest ./couchdb.nix {};
cri-o = handleTestOn ["aarch64-linux" "x86_64-linux"] ./cri-o.nix {};
custom-ca = handleTest ./custom-ca.nix {};
2020-07-22 10:34:57 +02:00
croc = handleTest ./croc.nix {};
deluge = handleTest ./deluge.nix {};
dendrite = handleTest ./matrix/dendrite.nix {};
2021-09-20 01:43:54 +02:00
dex-oidc = handleTest ./dex-oidc.nix {};
dhparams = handleTest ./dhparams.nix {};
disable-installer-tools = handleTest ./disable-installer-tools.nix {};
2021-03-14 15:44:34 +01:00
discourse = handleTest ./discourse.nix {};
dnscrypt-proxy2 = handleTestOn ["x86_64-linux"] ./dnscrypt-proxy2.nix {};
2020-04-24 01:33:33 +02:00
dnscrypt-wrapper = handleTestOn ["x86_64-linux"] ./dnscrypt-wrapper {};
2022-01-18 08:59:57 +01:00
dnsdist = handleTest ./dnsdist.nix {};
doas = handleTest ./doas.nix {};
docker = handleTestOn ["aarch64-linux" "x86_64-linux"] ./docker.nix {};
docker-rootless = handleTestOn ["aarch64-linux" "x86_64-linux"] ./docker-rootless.nix {};
docker-registry = handleTest ./docker-registry.nix {};
docker-tools = handleTestOn ["x86_64-linux"] ./docker-tools.nix {};
docker-tools-cross = handleTestOn ["x86_64-linux" "aarch64-linux"] ./docker-tools-cross.nix {};
docker-tools-overlay = handleTestOn ["x86_64-linux"] ./docker-tools-overlay.nix {};
documize = handleTest ./documize.nix {};
2022-07-14 11:57:37 +02:00
documentation = pkgs.callPackage ../modules/misc/documentation/test.nix { inherit nixosLib; };
doh-proxy-rust = handleTest ./doh-proxy-rust.nix {};
dokuwiki = handleTest ./dokuwiki.nix {};
2022-11-01 14:02:39 +01:00
dolibarr = handleTest ./dolibarr.nix {};
2021-11-13 23:00:20 +01:00
domination = handleTest ./domination.nix {};
dovecot = handleTest ./dovecot.nix {};
2021-11-30 21:42:29 +01:00
drbd = handleTest ./drbd.nix {};
earlyoom = handleTestOn ["x86_64-linux"] ./earlyoom.nix {};
ec2-config = (handleTestOn ["x86_64-linux"] ./ec2.nix {}).boot-ec2-config or {};
ec2-nixops = (handleTestOn ["x86_64-linux"] ./ec2.nix {}).boot-ec2-nixops or {};
ecryptfs = handleTest ./ecryptfs.nix {};
fscrypt = handleTest ./fscrypt.nix {};
ejabberd = handleTest ./xmpp/ejabberd.nix {};
elk = handleTestOn ["x86_64-linux"] ./elk.nix {};
emacs-daemon = handleTest ./emacs-daemon.nix {};
2022-10-22 14:53:35 +02:00
endlessh = handleTest ./endlessh.nix {};
2022-09-23 22:39:38 +02:00
endlessh-go = handleTest ./endlessh-go.nix {};
2020-05-24 14:20:58 +02:00
engelsystem = handleTest ./engelsystem.nix {};
enlightenment = handleTest ./enlightenment.nix {};
env = handleTest ./env.nix {};
2021-08-28 04:28:27 +02:00
envoy = handleTest ./envoy.nix {};
2020-05-24 20:39:23 +02:00
ergo = handleTest ./ergo.nix {};
2022-01-12 21:47:27 +01:00
ergochat = handleTest ./ergochat.nix {};
etc = pkgs.callPackage ../modules/system/etc/test.nix { inherit evalMinimalConfig; };
etcd = handleTestOn ["x86_64-linux"] ./etcd.nix {};
etcd-cluster = handleTestOn ["x86_64-linux"] ./etcd-cluster.nix {};
2021-03-28 23:49:45 +02:00
etebase-server = handleTest ./etebase-server.nix {};
2020-11-30 22:10:07 +01:00
etesync-dav = handleTest ./etesync-dav.nix {};
extra-python-packages = handleTest ./extra-python-packages.nix {};
2021-07-27 15:14:24 +02:00
evcc = handleTest ./evcc.nix {};
fancontrol = handleTest ./fancontrol.nix {};
fcitx = handleTest ./fcitx {};
fenics = handleTest ./fenics.nix {};
ferm = handleTest ./ferm.nix {};
2021-08-09 11:57:57 +02:00
firefox = handleTest ./firefox.nix { firefoxPackage = pkgs.firefox; };
firefox-esr = handleTest ./firefox.nix { firefoxPackage = pkgs.firefox-esr; }; # used in `tested` job
firefox-esr-102 = handleTest ./firefox.nix { firefoxPackage = pkgs.firefox-esr-102; };
2020-08-07 18:45:20 +02:00
firejail = handleTest ./firejail.nix {};
firewall = handleTest ./firewall.nix {};
fish = handleTest ./fish.nix {};
flannel = handleTestOn ["x86_64-linux"] ./flannel.nix {};
2019-07-29 17:35:27 +02:00
fluentd = handleTest ./fluentd.nix {};
fluidd = handleTest ./fluidd.nix {};
fontconfig-default-fonts = handleTest ./fontconfig-default-fonts.nix {};
2020-01-07 15:53:34 +01:00
freeswitch = handleTest ./freeswitch.nix {};
freshrss = handleTest ./freshrss.nix {};
frr = handleTest ./frr.nix {};
fsck = handleTest ./fsck.nix {};
2020-07-29 19:40:38 +02:00
ft2-clone = handleTest ./ft2-clone.nix {};
2022-06-07 12:53:15 +02:00
mimir = handleTest ./mimir.nix {};
2022-09-07 22:04:27 +02:00
garage = handleTest ./garage.nix {};
gerrit = handleTest ./gerrit.nix {};
geth = handleTest ./geth.nix {};
2021-05-20 01:15:28 +02:00
ghostunnel = handleTest ./ghostunnel.nix {};
gitdaemon = handleTest ./gitdaemon.nix {};
gitea = handleTest ./gitea.nix {};
gitlab = handleTest ./gitlab.nix {};
gitolite = handleTest ./gitolite.nix {};
gitolite-fcgiwrap = handleTest ./gitolite-fcgiwrap.nix {};
2019-08-17 01:28:43 +02:00
glusterfs = handleTest ./glusterfs.nix {};
gnome = handleTest ./gnome.nix {};
gnome-xorg = handleTest ./gnome-xorg.nix {};
2020-11-30 00:00:38 +01:00
go-neb = handleTest ./go-neb.nix {};
2021-04-09 16:57:33 +02:00
gobgpd = handleTest ./gobgpd.nix {};
gocd-agent = handleTest ./gocd-agent.nix {};
gocd-server = handleTest ./gocd-server.nix {};
2022-09-10 18:01:37 +02:00
gollum = handleTest ./gollum.nix {};
2019-05-17 03:29:17 +02:00
google-oslogin = handleTest ./google-oslogin {};
2020-11-30 00:00:38 +01:00
gotify-server = handleTest ./gotify-server.nix {};
grafana = handleTest ./grafana {};
grafana-agent = handleTest ./grafana-agent.nix {};
graphite = handleTest ./graphite.nix {};
graylog = handleTest ./graylog.nix {};
2020-11-30 00:00:38 +01:00
grocy = handleTest ./grocy.nix {};
grub = handleTest ./grub.nix {};
gvisor = handleTest ./gvisor.nix {};
2022-01-08 14:08:34 +01:00
hadoop = import ./hadoop { inherit handleTestOn; package=pkgs.hadoop; };
hadoop_3_2 = import ./hadoop { inherit handleTestOn; package=pkgs.hadoop_3_2; };
hadoop2 = import ./hadoop { inherit handleTestOn; package=pkgs.hadoop2; };
haka = handleTest ./haka.nix {};
2022-03-02 18:00:16 +01:00
haste-server = handleTest ./haste-server.nix {};
haproxy = handleTest ./haproxy.nix {};
hardened = handleTest ./hardened.nix {};
2022-06-10 14:31:00 +02:00
healthchecks = handleTest ./web-apps/healthchecks.nix {};
2022-03-28 22:19:17 +02:00
hbase2 = handleTest ./hbase.nix { package=pkgs.hbase2; };
hbase_2_4 = handleTest ./hbase.nix { package=pkgs.hbase_2_4; };
2022-03-28 22:19:17 +02:00
hbase3 = handleTest ./hbase.nix { package=pkgs.hbase3; };
hedgedoc = handleTest ./hedgedoc.nix {};
2020-11-27 20:20:36 +01:00
herbstluftwm = handleTest ./herbstluftwm.nix {};
2020-11-30 00:00:38 +01:00
installed-tests = pkgs.recurseIntoAttrs (handleTest ./installed-tests {});
2021-09-07 19:44:12 +02:00
invidious = handleTest ./invidious.nix {};
oci-containers = handleTestOn ["aarch64-linux" "x86_64-linux"] ./oci-containers.nix {};
2021-11-02 01:48:47 +01:00
odoo = handleTest ./odoo.nix {};
# 9pnet_virtio used to mount /nix partition doesn't support
# hibernation. This test happens to work on x86_64-linux but
# not on other platforms.
hibernate = handleTestOn ["x86_64-linux"] ./hibernate.nix {};
hibernate-systemd-stage-1 = handleTestOn ["x86_64-linux"] ./hibernate.nix { systemdStage1 = true; };
hitch = handleTest ./hitch {};
hledger-web = handleTest ./hledger-web.nix {};
hocker-fetchdocker = handleTest ./hocker-fetchdocker {};
2021-07-18 09:51:49 +02:00
hockeypuck = handleTest ./hockeypuck.nix { };
home-assistant = handleTest ./home-assistant.nix {};
hostname = handleTest ./hostname.nix {};
hound = handleTest ./hound.nix {};
2020-12-29 17:13:26 +01:00
hub = handleTest ./git/hub.nix {};
hydra = handleTest ./hydra {};
i3wm = handleTest ./i3wm.nix {};
icingaweb2 = handleTest ./icingaweb2.nix {};
iftop = handleTest ./iftop.nix {};
2021-10-10 14:00:00 +02:00
ihatemoney = handleTest ./ihatemoney {};
incron = handleTest ./incron.nix {};
influxdb = handleTest ./influxdb.nix {};
initrd-network-openvpn = handleTest ./initrd-network-openvpn {};
2020-11-30 00:00:38 +01:00
initrd-network-ssh = handleTest ./initrd-network-ssh {};
initrdNetwork = handleTest ./initrd-network.nix {};
initrd-secrets = handleTest ./initrd-secrets.nix {};
input-remapper = handleTest ./input-remapper.nix {};
inspircd = handleTest ./inspircd.nix {};
installer = handleTest ./installer.nix {};
installer-systemd-stage-1 = handleTest ./installer-systemd-stage-1.nix {};
invoiceplane = handleTest ./invoiceplane.nix {};
2020-02-02 13:00:00 +01:00
iodine = handleTest ./iodine.nix {};
ipv6 = handleTest ./ipv6.nix {};
iscsi-multipath-root = handleTest ./iscsi-multipath-root.nix {};
iscsi-root = handleTest ./iscsi-root.nix {};
isso = handleTest ./isso.nix {};
jackett = handleTest ./jackett.nix {};
jellyfin = handleTest ./jellyfin.nix {};
jenkins = handleTest ./jenkins.nix {};
jenkins-cli = handleTest ./jenkins-cli.nix {};
2021-10-15 20:00:24 +02:00
jibri = handleTest ./jibri.nix {};
jirafeau = handleTest ./jirafeau.nix {};
2020-03-18 04:23:15 +01:00
jitsi-meet = handleTest ./jitsi-meet.nix {};
k3s = handleTest ./k3s {};
kafka = handleTest ./kafka.nix {};
kanidm = handleTest ./kanidm.nix {};
2022-10-10 07:16:25 +02:00
karma = handleTest ./karma.nix {};
kbd-setfont-decompress = handleTest ./kbd-setfont-decompress.nix {};
kbd-update-search-paths-patch = handleTest ./kbd-update-search-paths-patch.nix {};
kea = handleTest ./kea.nix {};
2019-12-22 08:45:31 +01:00
keepalived = handleTest ./keepalived.nix {};
keepassxc = handleTest ./keepassxc.nix {};
2019-01-11 05:36:51 +01:00
kerberos = handleTest ./kerberos/default.nix {};
2021-04-07 17:57:58 +02:00
kernel-generic = handleTest ./kernel-generic.nix {};
kernel-latest-ath-user-regd = handleTest ./kernel-latest-ath-user-regd.nix {};
nixos/keter: init Enable keter module Keter is an apploader which: 1. has the old app running on a port. 2. loads a new one, and wait for that to complete 3. switches the old with the new one once the new one finished loading. It supports more functionality but this use case is the primary one being used by supercede. Adds keter as a module to nixos. Currently keter is unusable with nix, because it relies on bundeling of a tar and uploading that to a specific folder. These expressions automate these devops tasks, with especially nixops in mind. This will work with versions above 1.8 The test seems to work. This uses a new version of keter which has good support for status code on error pages. We're using this config at production at supercede so it should be fine. Squash log: ========== mention keter in changelog Update generated release notes Always restart keter on failure This is a little bit of extra stability in case keter crashes. Which can happen under extreme conditions (DoS attacks). Update nixos/doc/manual/release-notes/rl-2205.section.md Co-authored-by: ckie <25263210+ckiee@users.noreply.github.com> Update nixos/modules/module-list.nix Co-authored-by: ckie <25263210+ckiee@users.noreply.github.com> Remove sanitization don't put domain in as a string Update nixos/tests/keter.nix Co-authored-by: ckie <25263210+ckiee@users.noreply.github.com> add jappie as module maintainer Use type path instead of two seperate options Fix generated docs added test machinery to figure out why it's failing Fix the test, use console output run nixpkgs-fmt on all modules Inline config file. This get's rid of a lot of inderection as well. Run nix format remove comment simplify executable for test delete config file add config for keter root Remove after redis clause set keter root by default to /var/lib/keter Update nixos/modules/services/web-servers/keter/default.nix Co-authored-by: ckie <25263210+ckiee@users.noreply.github.com> Update nixos/modules/services/web-servers/keter/default.nix Co-authored-by: ckie <25263210+ckiee@users.noreply.github.com> Update nixos/modules/services/web-servers/keter/default.nix Co-authored-by: ckie <25263210+ckiee@users.noreply.github.com> fix nit add newlines add default text and move description in a long description Delete rather obvious comment fix release db thing remove longDescription and put it in a comment instead change description of mkEnalbeOption explain what keter does by using the hackage synopsis set domain to keterDomain and same for executable move comment to where it's happening fix type error add formatting better comment try add seperate user for keter Revert "try add seperate user for keter" This reverts commit d3522d36c96117335bfa072e6f453406c244e940. Doing this breaks the setup set default to avoid needing cap_net_bind_service remove weird comment use example fields eleborated on process leakage Update nixos/modules/services/web-servers/keter/default.nix Co-authored-by: ckie <25263210+ckiee@users.noreply.github.com> run nixpkgs-fmt update docs Fix formatting, set keter package by default format our little nixexpr replace '' -> " where possible drop indent for multiline string make description much shorter regen docs database
2022-05-18 15:41:54 +02:00
keter = handleTest ./keter.nix {};
2021-10-25 00:20:46 +02:00
kexec = handleTest ./kexec.nix {};
keycloak = discoverTests (import ./keycloak.nix);
keymap = handleTest ./keymap.nix {};
2019-03-13 01:12:56 +01:00
knot = handleTest ./knot.nix {};
2022-08-12 23:52:52 +02:00
komga = handleTest ./komga.nix {};
2020-02-14 09:56:43 +01:00
krb5 = discoverTests (import ./krb5 {});
2021-02-26 13:06:18 +01:00
ksm = handleTest ./ksm.nix {};
2022-09-25 20:46:03 +02:00
kthxbye = handleTest ./kthxbye.nix {};
kubernetes = handleTestOn ["x86_64-linux"] ./kubernetes {};
kubo = handleTest ./kubo.nix {};
2022-08-16 15:03:37 +02:00
ladybird = handleTest ./ladybird.nix {};
2022-08-16 20:33:08 +02:00
languagetool = handleTest ./languagetool.nix {};
latestKernel.login = handleTest ./login.nix { latestKernel = true; };
leaps = handleTest ./leaps.nix {};
lemmy = handleTest ./lemmy.nix {};
2021-11-15 12:46:20 +01:00
libinput = handleTest ./libinput.nix {};
2021-04-19 01:05:25 +02:00
libreddit = handleTest ./libreddit.nix {};
2021-11-18 19:10:48 +01:00
libresprite = handleTest ./libresprite.nix {};
2021-05-15 23:22:03 +02:00
libreswan = handleTest ./libreswan.nix {};
librewolf = handleTest ./firefox.nix { firefoxPackage = pkgs.librewolf; };
2022-07-15 22:00:28 +02:00
libuiohook = handleTest ./libuiohook.nix {};
2022-08-22 05:17:06 +02:00
libvirtd = handleTest ./libvirtd.nix {};
2021-11-15 12:46:20 +01:00
lidarr = handleTest ./lidarr.nix {};
lightdm = handleTest ./lightdm.nix {};
2022-07-24 17:04:12 +02:00
lighttpd = handleTest ./lighttpd.nix {};
2019-03-16 13:24:23 +01:00
limesurvey = handleTest ./limesurvey.nix {};
2022-08-30 13:15:41 +02:00
listmonk = handleTest ./listmonk.nix {};
2021-07-30 17:41:54 +02:00
litestream = handleTest ./litestream.nix {};
2020-11-24 02:53:21 +01:00
locate = handleTest ./locate.nix {};
login = handleTest ./login.nix {};
logrotate = handleTest ./logrotate.nix {};
2019-06-27 18:11:09 +02:00
loki = handleTest ./loki.nix {};
2022-02-01 18:21:11 +01:00
lvm2 = handleTest ./lvm2 {};
2020-06-08 21:33:21 +02:00
lxd = handleTest ./lxd.nix {};
lxd-nftables = handleTest ./lxd-nftables.nix {};
2021-10-20 23:39:53 +02:00
lxd-image-server = handleTest ./lxd-image-server.nix {};
#logstash = handleTest ./logstash.nix {};
lorri = handleTest ./lorri/default.nix {};
maddy = handleTest ./maddy.nix {};
2022-04-01 04:41:31 +02:00
maestral = handleTest ./maestral.nix {};
magic-wormhole-mailbox-server = handleTest ./magic-wormhole-mailbox-server.nix {};
2020-11-30 00:00:38 +01:00
magnetico = handleTest ./magnetico.nix {};
2019-03-27 12:35:24 +01:00
mailcatcher = handleTest ./mailcatcher.nix {};
2020-12-17 16:58:57 +01:00
mailhog = handleTest ./mailhog.nix {};
man = handleTest ./man.nix {};
mariadb-galera = handleTest ./mysql/mariadb-galera.nix {};
2022-03-18 15:39:32 +01:00
mastodon = handleTestOn ["x86_64-linux" "i686-linux" "aarch64-linux"] ./web-apps/mastodon.nix {};
2019-10-04 22:38:58 +02:00
matomo = handleTest ./matomo.nix {};
matrix-appservice-irc = handleTest ./matrix/appservice-irc.nix {};
matrix-conduit = handleTest ./matrix/conduit.nix {};
matrix-synapse = handleTest ./matrix/synapse.nix {};
mattermost = handleTest ./mattermost.nix {};
mediatomb = handleTest ./mediatomb.nix {};
mediawiki = handleTest ./mediawiki.nix {};
meilisearch = handleTest ./meilisearch.nix {};
memcached = handleTest ./memcached.nix {};
2022-10-19 10:49:57 +02:00
merecat = handleTest ./merecat.nix {};
2019-08-18 09:28:16 +02:00
metabase = handleTest ./metabase.nix {};
2020-11-28 18:42:10 +01:00
minecraft = handleTest ./minecraft.nix {};
2020-11-28 18:42:46 +01:00
minecraft-server = handleTest ./minecraft-server.nix {};
2020-11-30 00:00:38 +01:00
minidlna = handleTest ./minidlna.nix {};
2018-12-21 19:36:58 +01:00
miniflux = handleTest ./miniflux.nix {};
minio = handleTest ./minio.nix {};
misc = handleTest ./misc.nix {};
2021-05-30 17:33:09 +02:00
mjolnir = handleTest ./matrix/mjolnir.nix {};
2021-08-13 20:55:15 +02:00
mod_perl = handleTest ./mod_perl.nix {};
molly-brown = handleTest ./molly-brown.nix {};
mongodb = handleTest ./mongodb.nix {};
2019-06-21 16:09:15 +02:00
moodle = handleTest ./moodle.nix {};
2022-03-22 23:35:39 +01:00
moonraker = handleTest ./moonraker.nix {};
morty = handleTest ./morty.nix {};
2019-04-24 10:23:13 +02:00
mosquitto = handleTest ./mosquitto.nix {};
2021-10-06 21:51:07 +02:00
moosefs = handleTest ./moosefs.nix {};
mpd = handleTest ./mpd.nix {};
mpv = handleTest ./mpv.nix {};
mtp = handleTest ./mtp.nix {};
mumble = handleTest ./mumble.nix {};
2021-02-27 02:26:02 +01:00
musescore = handleTest ./musescore.nix {};
munin = handleTest ./munin.nix {};
mutableUsers = handleTest ./mutable-users.nix {};
2019-05-18 22:18:01 +02:00
mxisd = handleTest ./mxisd.nix {};
mysql = handleTest ./mysql/mysql.nix {};
mysql-autobackup = handleTest ./mysql/mysql-autobackup.nix {};
mysql-backup = handleTest ./mysql/mysql-backup.nix {};
mysql-replication = handleTest ./mysql/mysql-replication.nix {};
2020-11-28 18:00:25 +01:00
n8n = handleTest ./n8n.nix {};
2019-12-30 13:00:00 +01:00
nagios = handleTest ./nagios.nix {};
nar-serve = handleTest ./nar-serve.nix {};
nat.firewall = handleTest ./nat.nix { withFirewall = true; };
nat.firewall-conntrack = handleTest ./nat.nix { withFirewall = true; withConntrackHelpers = true; };
nat.standalone = handleTest ./nat.nix { withFirewall = false; };
2021-06-26 13:58:40 +02:00
nats = handleTest ./nats.nix {};
navidrome = handleTest ./navidrome.nix {};
nbd = handleTest ./nbd.nix {};
2020-06-07 23:59:12 +02:00
ncdns = handleTest ./ncdns.nix {};
2019-02-03 16:47:01 +01:00
ndppd = handleTest ./ndppd.nix {};
nebula = handleTest ./nebula.nix {};
2022-08-14 18:59:15 +02:00
netbird = handleTest ./netbird.nix {};
2019-02-01 14:29:54 +01:00
neo4j = handleTest ./neo4j.nix {};
netdata = handleTest ./netdata.nix {};
networking.networkd = handleTest ./networking.nix { networkd = true; };
networking.scripted = handleTest ./networking.nix { networkd = false; };
2020-11-30 00:00:38 +01:00
specialisation = handleTest ./specialisation.nix {};
2022-03-06 17:02:14 +01:00
netbox = handleTest ./web-apps/netbox.nix {};
# TODO: put in networking.nix after the test becomes more complete
networkingProxy = handleTest ./networking-proxy.nix {};
nextcloud = handleTest ./nextcloud {};
nexus = handleTest ./nexus.nix {};
# TODO: Test nfsv3 + Kerberos
nfs3 = handleTest ./nfs { version = 3; };
nfs4 = handleTest ./nfs { version = 4; };
nghttpx = handleTest ./nghttpx.nix {};
nginx = handleTest ./nginx.nix {};
2020-10-20 18:05:41 +02:00
nginx-auth = handleTest ./nginx-auth.nix {};
nginx: Clear Last-Modified if ETag is from store This is what I've suspected a while ago[1]: > Heads-up everyone: After testing this in a few production instances, > it seems that some browsers still get cache hits for new store paths > (and changed contents) for some reason. I highly suspect that it might > be due to the last-modified header (as mentioned in [2]). > > Going to test this with last-modified disabled for a little while and > if this is the case I think we should improve that patch by disabling > last-modified if serving from a store path. Much earlier[2] when I reviewed the patch, I wrote this: > Other than that, it looks good to me. > > However, I'm not sure what we should do with Last-Modified header. > From RFC 2616, section 13.3.4: > > - If both an entity tag and a Last-Modified value have been > provided by the origin server, SHOULD use both validators in > cache-conditional requests. This allows both HTTP/1.0 and > HTTP/1.1 caches to respond appropriately. > > I'm a bit nervous about the SHOULD here, as user agents in the wild > could possibly just use Last-Modified and use the cached content > instead. Unfortunately, I didn't pursue this any further back then because @pbogdan noted[3] the following: > Hmm, could they (assuming they are conforming): > > * If an entity tag has been provided by the origin server, MUST > use that entity tag in any cache-conditional request (using If- > Match or If-None-Match). Since running with this patch in some deployments, I found that both Firefox and Chrome/Chromium do NOT re-validate against the ETag if the Last-Modified header is still the same. So I wrote a small NixOS VM test with Geckodriver to have a test case which is closer to the real world and I indeed was able to reproduce this. Whether this is actually a bug in Chrome or Firefox is an entirely different issue and even IF it is the fault of the browsers and it is fixed at some point, we'd still need to handle this for older browser versions. Apart from clearing the header, I also recreated the patch by using a plain "git diff" with a small description on top. This should make it easier for future authors to work on that patch. [1]: https://github.com/NixOS/nixpkgs/pull/48337#issuecomment-495072764 [2]: https://github.com/NixOS/nixpkgs/pull/48337#issuecomment-451644084 [3]: https://github.com/NixOS/nixpkgs/pull/48337#issuecomment-451646135 Signed-off-by: aszlig <aszlig@nix.build>
2019-12-30 14:06:00 +01:00
nginx-etag = handleTest ./nginx-etag.nix {};
2022-04-18 12:22:39 +02:00
nginx-http3 = handleTest ./nginx-http3.nix {};
2022-02-15 00:10:37 +01:00
nginx-modsecurity = handleTest ./nginx-modsecurity.nix {};
2022-09-18 14:54:04 +02:00
nginx-njs = handleTest ./nginx-njs.nix {};
nginx: Fix ETag patch to ignore realpath(3) error While our ETag patch works pretty fine if it comes to serving data off store paths, it unfortunately broke something that might be a bit more common, namely when using regexes to extract path components of location directives for example. Recently, @devhell has reported a bug with a nginx location directive like this: location ~^/\~([a-z0-9_]+)(/.*)?$" { alias /home/$1/public_html$2; } While this might look harmless at first glance, it does however cause issues with our ETag patch. The alias directive gets broken up by nginx like this: *2 http script copy: "/home/" *2 http script capture: "foo" *2 http script copy: "/public_html/" *2 http script capture: "bar.txt" In our patch however, we use realpath(3) to get the canonicalised path from ngx_http_core_loc_conf_s.root, which returns the *configured* value from the root or alias directive. So in the example above, realpath(3) boils down to the following syscalls: lstat("/home", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 lstat("/home/$1", 0x7ffd08da6f60) = -1 ENOENT (No such file or directory) During my review[1] of the initial patch, I didn't actually notice that what we're doing here is returning NGX_ERROR if the realpath(3) call fails, which in turn causes an HTTP 500 error. Since our patch actually made the canonicalisation (and thus additional syscalls) necessary, we really shouldn't introduce an additional error so let's - at least for now - silently skip return value if realpath(3) has failed. However since we're using the unaltered root from the config we have another issue, consider this root: /nix/store/...-abcde/$1 Calling realpath(3) on this path will fail (except if there's a file called "$1" of course), so even this fix is not enough because it results in the ETag not being set to the store path hash. While this is very ugly and we should fix this very soon, it's not as serious as getting HTTP 500 errors for serving static files. I added a small NixOS VM test, which uses the example above as a regression test. It seems that my memory is failing these days, since apparently I *knew* about this issue since digging for existing issues in nixpkgs, I found this similar pull request which I even reviewed: https://github.com/NixOS/nixpkgs/pull/66532 However, since the comments weren't addressed and the author hasn't responded to the pull request, I decided to keep this very commit and do a follow-up pull request. [1]: https://github.com/NixOS/nixpkgs/pull/48337 Signed-off-by: aszlig <aszlig@nix.build> Reported-by: @devhell Acked-by: @7c6f434c Acked-by: @yorickvP Merges: https://github.com/NixOS/nixpkgs/pull/80671 Fixes: https://github.com/NixOS/nixpkgs/pull/66532
2020-02-20 20:43:42 +01:00
nginx-pubhtml = handleTest ./nginx-pubhtml.nix {};
2020-04-23 21:00:27 +02:00
nginx-sandbox = handleTestOn ["x86_64-linux"] ./nginx-sandbox.nix {};
nginx-sso = handleTest ./nginx-sso.nix {};
nginx-variants = handleTest ./nginx-variants.nix {};
2022-04-10 19:41:30 +02:00
nifi = handleTestOn ["x86_64-linux"] ./web-apps/nifi.nix {};
2021-07-26 12:00:05 +02:00
nitter = handleTest ./nitter.nix {};
2022-04-11 20:51:29 +02:00
nix-ld = handleTest ./nix-ld.nix {};
nix-serve = handleTest ./nix-serve.nix {};
nix-serve-ssh = handleTest ./nix-serve-ssh.nix {};
2021-10-18 00:38:58 +02:00
nixops = handleTest ./nixops/default.nix {};
nixos-generate-config = handleTest ./nixos-generate-config.nix {};
nixpkgs = pkgs.callPackage ../modules/misc/nixpkgs/test.nix { inherit evalMinimalConfig; };
2021-07-28 12:42:26 +02:00
node-red = handleTest ./node-red.nix {};
nomad = handleTest ./nomad.nix {};
non-default-filesystems = handleTest ./non-default-filesystems.nix {};
2022-01-22 03:06:13 +01:00
noto-fonts = handleTest ./noto-fonts.nix {};
novacomd = handleTestOn ["x86_64-linux"] ./novacomd.nix {};
nscd = handleTest ./nscd.nix {};
nsd = handleTest ./nsd.nix {};
2022-09-01 14:36:19 +02:00
ntfy-sh = handleTest ./ntfy-sh.nix {};
nzbget = handleTest ./nzbget.nix {};
2020-10-04 16:06:53 +02:00
nzbhydra2 = handleTest ./nzbhydra2.nix {};
2020-11-05 02:37:50 +01:00
oh-my-zsh = handleTest ./oh-my-zsh.nix {};
ombi = handleTest ./ombi.nix {};
2019-10-22 16:20:56 +02:00
openarena = handleTest ./openarena.nix {};
openldap = handleTest ./openldap.nix {};
openresty-lua = handleTest ./openresty-lua.nix {};
opensmtpd = handleTest ./opensmtpd.nix {};
opensmtpd-rspamd = handleTest ./opensmtpd-rspamd.nix {};
openssh = handleTest ./openssh.nix {};
openstack-image-metadata = (handleTestOn ["x86_64-linux"] ./openstack-image.nix {}).metadata or {};
2020-11-30 00:00:38 +01:00
openstack-image-userdata = (handleTestOn ["x86_64-linux"] ./openstack-image.nix {}).userdata or {};
2021-01-08 17:48:00 +01:00
opentabletdriver = handleTest ./opentabletdriver.nix {};
2021-09-23 10:48:29 +02:00
owncast = handleTest ./owncast.nix {};
2020-12-20 21:18:54 +01:00
image-contents = handleTest ./image-contents.nix {};
2019-08-21 00:27:14 +02:00
orangefs = handleTest ./orangefs.nix {};
os-prober = handleTestOn ["x86_64-linux"] ./os-prober.nix {};
2019-01-05 13:13:10 +01:00
osrm-backend = handleTest ./osrm-backend.nix {};
2019-01-23 10:19:23 +01:00
overlayfs = handleTest ./overlayfs.nix {};
2022-03-08 02:46:26 +01:00
pacemaker = handleTest ./pacemaker.nix {};
2019-04-24 10:45:29 +02:00
packagekit = handleTest ./packagekit.nix {};
pam-file-contents = handleTest ./pam/pam-file-contents.nix {};
pam-oath-login = handleTest ./pam/pam-oath-login.nix {};
pam-u2f = handleTest ./pam/pam-u2f.nix {};
pam-ussh = handleTest ./pam/pam-ussh.nix {};
pass-secret-service = handleTest ./pass-secret-service.nix {};
patroni = handleTestOn ["x86_64-linux"] ./patroni.nix {};
pantalaimon = handleTest ./matrix/pantalaimon.nix {};
pantheon = handleTest ./pantheon.nix {};
paperless = handleTest ./paperless.nix {};
2021-06-02 18:19:37 +02:00
parsedmarc = handleTest ./parsedmarc {};
2020-11-30 00:00:38 +01:00
pdns-recursor = handleTest ./pdns-recursor.nix {};
peerflix = handleTest ./peerflix.nix {};
2021-05-31 13:23:06 +02:00
peertube = handleTestOn ["x86_64-linux"] ./web-apps/peertube.nix {};
pgadmin4 = handleTest ./pgadmin4.nix {};
2022-02-23 15:16:23 +01:00
pgadmin4-standalone = handleTest ./pgadmin4-standalone.nix {};
pgjwt = handleTest ./pgjwt.nix {};
pgmanage = handleTest ./pgmanage.nix {};
2022-08-02 21:34:37 +02:00
phosh = handleTest ./phosh.nix {};
php = handleTest ./php {};
php80 = handleTest ./php { php = pkgs.php80; };
2021-11-25 21:38:19 +01:00
php81 = handleTest ./php { php = pkgs.php81; };
2022-11-13 21:14:38 +01:00
php82 = handleTest ./php { php = pkgs.php82; };
2022-06-28 21:17:38 +02:00
phylactery = handleTest ./web-apps/phylactery.nix {};
pict-rs = handleTest ./pict-rs.nix {};
2020-06-03 23:12:06 +02:00
pinnwand = handleTest ./pinnwand.nix {};
plasma-bigscreen = handleTest ./plasma-bigscreen.nix {};
plasma5 = handleTest ./plasma5.nix {};
2021-10-31 21:34:10 +01:00
plasma5-systemd-start = handleTest ./plasma5-systemd-start.nix {};
2021-05-21 23:15:23 +02:00
plausible = handleTest ./plausible.nix {};
please = handleTest ./please.nix {};
2020-11-08 15:10:14 +01:00
pleroma = handleTestOn [ "x86_64-linux" "aarch64-linux" ] ./pleroma.nix {};
2020-11-13 15:00:34 +01:00
plikd = handleTest ./plikd.nix {};
plotinus = handleTest ./plotinus.nix {};
2021-04-14 19:15:41 +02:00
podgrab = handleTest ./podgrab.nix {};
podman = handleTestOn ["aarch64-linux" "x86_64-linux"] ./podman/default.nix {};
podman-dnsname = handleTestOn ["aarch64-linux" "x86_64-linux"] ./podman/dnsname.nix {};
podman-tls-ghostunnel = handleTestOn ["aarch64-linux" "x86_64-linux"] ./podman/tls-ghostunnel.nix {};
2022-06-17 20:04:54 +02:00
polaris = handleTest ./polaris.nix {};
2021-01-08 04:03:00 +01:00
pomerium = handleTestOn ["x86_64-linux"] ./pomerium.nix {};
postfix = handleTest ./postfix.nix {};
postfix-raise-smtpd-tls-security-level = handleTest ./postfix-raise-smtpd-tls-security-level.nix {};
2021-05-19 06:34:03 +02:00
postfixadmin = handleTest ./postfixadmin.nix {};
postgis = handleTest ./postgis.nix {};
postgresql = handleTest ./postgresql.nix {};
postgresql-wal-receiver = handleTest ./postgresql-wal-receiver.nix {};
powerdns = handleTest ./powerdns.nix {};
powerdns-admin = handleTest ./powerdns-admin.nix {};
power-profiles-daemon = handleTest ./power-profiles-daemon.nix {};
pppd = handleTest ./pppd.nix {};
predictable-interface-names = handleTest ./predictable-interface-names.nix {};
printing = handleTest ./printing.nix {};
2020-04-21 13:37:00 +02:00
privacyidea = handleTest ./privacyidea.nix {};
2021-03-03 17:18:09 +01:00
privoxy = handleTest ./privoxy.nix {};
prometheus = handleTest ./prometheus.nix {};
prometheus-exporters = handleTest ./prometheus-exporters.nix {};
prosody = handleTest ./xmpp/prosody.nix {};
prosody-mysql = handleTest ./xmpp/prosody-mysql.nix {};
proxy = handleTest ./proxy.nix {};
2021-10-10 17:54:22 +02:00
prowlarr = handleTest ./prowlarr.nix {};
2020-07-29 19:00:33 +02:00
pt2-clone = handleTest ./pt2-clone.nix {};
pykms = handleTest ./pykms.nix {};
2021-12-01 11:06:18 +01:00
public-inbox = handleTest ./public-inbox.nix {};
2021-11-30 14:51:06 +01:00
pulseaudio = discoverTests (import ./pulseaudio.nix);
qboot = handleTestOn ["x86_64-linux" "i686-linux"] ./qboot.nix {};
2020-03-22 17:26:55 +01:00
quorum = handleTest ./quorum.nix {};
2022-09-21 22:26:03 +02:00
quake3 = handleTest ./quake3.nix {};
rabbitmq = handleTest ./rabbitmq.nix {};
radarr = handleTest ./radarr.nix {};
radicale = handleTest ./radicale.nix {};
rasdaemon = handleTest ./rasdaemon.nix {};
2019-08-31 20:17:33 +02:00
redis = handleTest ./redis.nix {};
redmine = handleTest ./redmine.nix {};
restartByActivationScript = handleTest ./restart-by-activation-script.nix {};
2020-01-30 22:31:52 +01:00
restic = handleTest ./restic.nix {};
retroarch = handleTest ./retroarch.nix {};
2020-08-30 18:31:54 +02:00
robustirc-bridge = handleTest ./robustirc-bridge.nix {};
roundcube = handleTest ./roundcube.nix {};
rspamd = handleTest ./rspamd.nix {};
rss2email = handleTest ./rss2email.nix {};
rstudio-server = handleTest ./rstudio-server.nix {};
rsyncd = handleTest ./rsyncd.nix {};
rsyslogd = handleTest ./rsyslogd.nix {};
rxe = handleTest ./rxe.nix {};
2021-09-21 13:38:22 +02:00
sabnzbd = handleTest ./sabnzbd.nix {};
samba = handleTest ./samba.nix {};
samba-wsdd = handleTest ./samba-wsdd.nix {};
sanoid = handleTest ./sanoid.nix {};
schleuder = handleTest ./schleuder.nix {};
sddm = handleTest ./sddm.nix {};
seafile = handleTest ./seafile.nix {};
2020-11-02 01:34:53 +01:00
searx = handleTest ./searx.nix {};
service-runner = handleTest ./service-runner.nix {};
2022-03-20 22:39:04 +01:00
sfxr-qt = handleTest ./sfxr-qt.nix {};
2020-12-23 19:28:30 +01:00
shadow = handleTest ./shadow.nix {};
shadowsocks = handleTest ./shadowsocks {};
shattered-pixel-dungeon = handleTest ./shattered-pixel-dungeon.nix {};
shiori = handleTest ./shiori.nix {};
2019-05-23 00:50:51 +02:00
signal-desktop = handleTest ./signal-desktop.nix {};
simple = handleTest ./simple.nix {};
slurm = handleTest ./slurm.nix {};
smokeping = handleTest ./smokeping.nix {};
snapcast = handleTest ./snapcast.nix {};
snapper = handleTest ./snapper.nix {};
soapui = handleTest ./soapui.nix {};
2020-05-12 18:32:39 +02:00
sogo = handleTest ./sogo.nix {};
2021-05-20 22:03:39 +02:00
solanum = handleTest ./solanum.nix {};
solr = handleTest ./solr.nix {};
2020-11-30 00:00:38 +01:00
sonarr = handleTest ./sonarr.nix {};
2021-08-28 19:46:05 +02:00
sourcehut = handleTest ./sourcehut.nix {};
spacecookie = handleTest ./spacecookie.nix {};
spark = handleTestOn [ "x86_64-linux" "aarch64-linux" ] ./spark {};
sqlite3-to-mysql = handleTest ./sqlite3-to-mysql.nix {};
2020-01-18 13:00:00 +01:00
sslh = handleTest ./sslh.nix {};
sssd = handleTestOn ["x86_64-linux"] ./sssd.nix {};
2020-09-01 07:03:20 +02:00
sssd-ldap = handleTestOn ["x86_64-linux"] ./sssd-ldap.nix {};
2021-12-24 12:24:29 +01:00
starship = handleTest ./starship.nix {};
2021-11-12 21:37:11 +01:00
step-ca = handleTestOn ["x86_64-linux"] ./step-ca.nix {};
stratis = handleTest ./stratis {};
strongswan-swanctl = handleTest ./strongswan-swanctl.nix {};
2022-02-22 23:08:43 +01:00
stunnel = handleTest ./stunnel.nix {};
sudo = handleTest ./sudo.nix {};
2022-06-22 04:11:23 +02:00
swap-partition = handleTest ./swap-partition.nix {};
sway = handleTest ./sway.nix {};
switchTest = handleTest ./switch-test.nix {};
2019-07-06 20:56:30 +02:00
sympa = handleTest ./sympa.nix {};
2020-07-23 09:13:26 +02:00
syncthing = handleTest ./syncthing.nix {};
syncthing-init = handleTest ./syncthing-init.nix {};
2018-11-17 15:02:00 +01:00
syncthing-relay = handleTest ./syncthing-relay.nix {};
systemd = handleTest ./systemd.nix {};
2019-11-25 00:03:55 +01:00
systemd-analyze = handleTest ./systemd-analyze.nix {};
systemd-binfmt = handleTestOn ["x86_64-linux"] ./systemd-binfmt.nix {};
systemd-boot = handleTest ./systemd-boot.nix {};
systemd-bpf = handleTest ./systemd-bpf.nix {};
systemd-confinement = handleTest ./systemd-confinement.nix {};
systemd-coredump = handleTest ./systemd-coredump.nix {};
systemd-cryptenroll = handleTest ./systemd-cryptenroll.nix {};
systemd-escaping = handleTest ./systemd-escaping.nix {};
systemd-initrd-btrfs-raid = handleTest ./systemd-initrd-btrfs-raid.nix {};
systemd-initrd-luks-fido2 = handleTest ./systemd-initrd-luks-fido2.nix {};
systemd-initrd-luks-keyfile = handleTest ./systemd-initrd-luks-keyfile.nix {};
systemd-initrd-luks-password = handleTest ./systemd-initrd-luks-password.nix {};
systemd-initrd-luks-tpm2 = handleTest ./systemd-initrd-luks-tpm2.nix {};
systemd-initrd-modprobe = handleTest ./systemd-initrd-modprobe.nix {};
systemd-initrd-shutdown = handleTest ./systemd-shutdown.nix { systemdStage1 = true; };
2022-03-20 21:11:32 +01:00
systemd-initrd-simple = handleTest ./systemd-initrd-simple.nix {};
systemd-initrd-swraid = handleTest ./systemd-initrd-swraid.nix {};
systemd-journal = handleTest ./systemd-journal.nix {};
systemd-machinectl = handleTest ./systemd-machinectl.nix {};
systemd-networkd = handleTest ./systemd-networkd.nix {};
2019-11-16 12:13:51 +01:00
systemd-networkd-dhcpserver = handleTest ./systemd-networkd-dhcpserver.nix {};
systemd-networkd-dhcpserver-static-leases = handleTest ./systemd-networkd-dhcpserver-static-leases.nix {};
systemd-networkd-ipv6-prefix-delegation = handleTest ./systemd-networkd-ipv6-prefix-delegation.nix {};
2020-11-30 00:00:38 +01:00
systemd-networkd-vrf = handleTest ./systemd-networkd-vrf.nix {};
systemd-no-tainted = handleTest ./systemd-no-tainted.nix {};
systemd-nspawn = handleTest ./systemd-nspawn.nix {};
systemd-oomd = handleTest ./systemd-oomd.nix {};
systemd-portabled = handleTest ./systemd-portabled.nix {};
systemd-shutdown = handleTest ./systemd-shutdown.nix {};
2020-11-30 00:00:38 +01:00
systemd-timesyncd = handleTest ./systemd-timesyncd.nix {};
systemd-misc = handleTest ./systemd-misc.nix {};
2022-09-17 16:36:39 +02:00
tandoor-recipes = handleTest ./tandoor-recipes.nix {};
taskserver = handleTest ./taskserver.nix {};
teeworlds = handleTest ./teeworlds.nix {};
2019-01-21 12:30:11 +01:00
telegraf = handleTest ./telegraf.nix {};
2022-01-10 13:46:47 +01:00
teleport = handleTest ./teleport.nix {};
2022-01-11 03:29:04 +01:00
thelounge = handleTest ./thelounge.nix {};
terminal-emulators = handleTest ./terminal-emulators.nix {};
tiddlywiki = handleTest ./tiddlywiki.nix {};
tigervnc = handleTest ./tigervnc.nix {};
2019-12-02 23:28:53 +01:00
timezone = handleTest ./timezone.nix {};
tinc = handleTest ./tinc {};
2019-05-16 23:42:02 +02:00
tinydns = handleTest ./tinydns.nix {};
tinywl = handleTest ./tinywl.nix {};
tmate-ssh-server = handleTest ./tmate-ssh-server.nix { };
tomcat = handleTest ./tomcat.nix {};
tor = handleTest ./tor.nix {};
traefik = handleTestOn ["aarch64-linux" "x86_64-linux"] ./traefik.nix {};
2021-04-09 18:48:51 +02:00
trafficserver = handleTest ./trafficserver.nix {};
transmission = handleTest ./transmission.nix {};
# tracee requires bpf
tracee = handleTestOn ["x86_64-linux"] ./tracee.nix {};
2019-08-16 17:00:07 +02:00
trezord = handleTest ./trezord.nix {};
2019-11-01 11:03:23 +01:00
trickster = handleTest ./trickster.nix {};
2020-11-30 00:00:38 +01:00
trilium-server = handleTestOn ["x86_64-linux"] ./trilium-server.nix {};
tsm-client-gui = handleTest ./tsm-client-gui.nix {};
txredisapi = handleTest ./txredisapi.nix {};
2020-03-24 23:45:49 +01:00
tuptime = handleTest ./tuptime.nix {};
turbovnc-headless-server = handleTest ./turbovnc-headless-server.nix {};
tuxguitar = handleTest ./tuxguitar.nix {};
2021-06-13 22:00:25 +02:00
ucarp = handleTest ./ucarp.nix {};
udisks2 = handleTest ./udisks2.nix {};
2020-11-30 00:00:38 +01:00
unbound = handleTest ./unbound.nix {};
2021-12-18 00:55:13 +01:00
unifi = handleTest ./unifi.nix {};
2020-04-16 22:08:00 +02:00
unit-php = handleTest ./web-servers/unit-php.nix {};
upnp = handleTest ./upnp.nix {};
2022-03-17 17:57:23 +01:00
uptermd = handleTest ./uptermd.nix {};
2022-09-23 07:04:23 +02:00
uptime-kuma = handleTest ./uptime-kuma.nix {};
2021-01-16 23:15:52 +01:00
usbguard = handleTest ./usbguard.nix {};
2021-02-15 23:40:54 +01:00
user-activation-scripts = handleTest ./user-activation-scripts.nix {};
user-home-mode = handleTest ./user-home-mode.nix {};
2019-05-27 23:03:22 +02:00
uwsgi = handleTest ./uwsgi.nix {};
2020-06-12 10:12:51 +02:00
v2ray = handleTest ./v2ray.nix {};
2022-09-27 21:22:21 +02:00
varnish60 = handleTest ./varnish.nix { package = pkgs.varnish60; };
varnish72 = handleTest ./varnish.nix { package = pkgs.varnish72; };
vault = handleTest ./vault.nix {};
vault-dev = handleTest ./vault-dev.nix {};
2021-01-04 17:54:03 +01:00
vault-postgresql = handleTest ./vault-postgresql.nix {};
vaultwarden = handleTest ./vaultwarden.nix {};
2020-11-30 08:22:08 +01:00
vector = handleTest ./vector.nix {};
2021-11-21 18:09:17 +01:00
vengi-tools = handleTest ./vengi-tools.nix {};
2020-01-19 18:55:56 +01:00
victoriametrics = handleTest ./victoriametrics.nix {};
2021-06-26 14:26:17 +02:00
vikunja = handleTest ./vikunja.nix {};
virtualbox = handleTestOn ["x86_64-linux"] ./virtualbox.nix {};
vscodium = discoverTests (import ./vscodium.nix);
vsftpd = handleTest ./vsftpd.nix {};
2022-11-24 20:46:05 +01:00
warzone2100 = handleTest ./warzone2100.nix {};
2020-06-18 14:19:13 +02:00
wasabibackend = handleTest ./wasabibackend.nix {};
2021-03-18 12:33:40 +01:00
wiki-js = handleTest ./wiki-js.nix {};
wine = handleTest ./wine.nix {};
wireguard = handleTest ./wireguard {};
without-nix = handleTest ./without-nix.nix {};
2021-01-27 15:44:27 +01:00
wmderland = handleTest ./wmderland.nix {};
2021-09-24 13:25:16 +02:00
wpa_supplicant = handleTest ./wpa_supplicant.nix {};
wordpress = handleTest ./wordpress.nix {};
wrappers = handleTest ./wrappers.nix {};
2022-06-26 07:08:43 +02:00
writefreely = handleTest ./web-apps/writefreely.nix {};
2019-12-14 01:17:49 +01:00
xandikos = handleTest ./xandikos.nix {};
xautolock = handleTest ./xautolock.nix {};
xfce = handleTest ./xfce.nix {};
xmonad = handleTest ./xmonad.nix {};
xmonad-xdg-autostart = handleTest ./xmonad-xdg-autostart.nix {};
2022-09-21 01:39:13 +02:00
xpadneo = handleTest ./xpadneo.nix {};
xrdp = handleTest ./xrdp.nix {};
xss-lock = handleTest ./xss-lock.nix {};
2020-11-17 04:13:13 +01:00
xterm = handleTest ./xterm.nix {};
2022-01-01 22:16:13 +01:00
xxh = handleTest ./xxh.nix {};
yabar = handleTest ./yabar.nix {};
2019-06-27 17:56:10 +02:00
yggdrasil = handleTest ./yggdrasil.nix {};
2022-02-16 06:49:51 +01:00
zammad = handleTest ./zammad.nix {};
2022-06-10 14:54:16 +02:00
zeronet-conservancy = handleTest ./zeronet-conservancy.nix {};
2020-02-03 18:33:26 +01:00
zfs = handleTest ./zfs.nix {};
zigbee2mqtt = handleTest ./zigbee2mqtt.nix {};
2020-04-11 19:28:52 +02:00
zoneminder = handleTest ./zoneminder.nix {};
zookeeper = handleTest ./zookeeper.nix {};
zrepl = handleTest ./zrepl.nix {};
2020-04-11 19:28:52 +02:00
zsh-history = handleTest ./zsh-history.nix {};
}