nixos/tests/fluent-bit: add regression test for #395128 (#395625)

This commit is contained in:
Arian van Putten 2025-04-07 19:32:41 +02:00 committed by GitHub
commit a7424febee
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 53 additions and 37 deletions

View file

@ -505,7 +505,7 @@ in
imports = [ ./firefox.nix ]; imports = [ ./firefox.nix ];
_module.args.firefoxPackage = pkgs.floorp; _module.args.firefoxPackage = pkgs.floorp;
}; };
fluent-bit = handleTest ./fluent-bit.nix { }; fluent-bit = runTest ./fluent-bit.nix;
fluentd = handleTest ./fluentd.nix { }; fluentd = handleTest ./fluentd.nix { };
fluidd = handleTest ./fluidd.nix { }; fluidd = handleTest ./fluidd.nix { };
fontconfig-default-fonts = handleTest ./fontconfig-default-fonts.nix { }; fontconfig-default-fonts = handleTest ./fontconfig-default-fonts.nix { };

View file

@ -1,40 +1,56 @@
import ./make-test-python.nix ( # Regression test for https://github.com/NixOS/nixpkgs/pull/395128
{ lib, pkgs, ... }: {
{ name = "fluent-bit";
name = "fluent-bit"; nodes.machine = {
services.fluent-bit = {
nodes.machine = enable = true;
{ config, pkgs, ... }: settings = {
{ pipeline = {
services.fluent-bit = { inputs = [
enable = true; {
settings = { name = "systemd";
pipeline = { systemd_filter = "_SYSTEMD_UNIT=fluent-bit-regression-395128.service";
inputs = [ }
{ ];
name = "systemd"; outputs = [
systemd_filter = "_SYSTEMD_UNIT=fluent-bit.service"; {
} name = "file";
]; path = "/var/log/fluent-bit";
outputs = [ file = "fluent-bit.out";
{ }
name = "file"; ];
path = "/var/log/fluent-bit";
file = "fluent-bit.out";
}
];
};
};
}; };
systemd.services.fluent-bit.serviceConfig.LogsDirectory = "fluent-bit";
}; };
};
systemd.services.fluent-bit.serviceConfig.LogsDirectory = "fluent-bit";
testScript = '' # Logs get compressed when larger than 1024 bytes
start_all() # Lets generate some logs that trigger that
# This causes libzstd to be dlopen'd by systemd which breaks fluent-bit 3.2.7+
# https://www.freedesktop.org/software/systemd/man/latest/journald.conf.html#Compress=
systemd.services.fluent-bit-regression-395128 = {
serviceConfig = {
Type = "oneshot";
RemainAfterExit = true;
};
script = ''
for i in {1..20}; do
(head -c 1200 < /dev/zero | tr '\0' 'A') && echo
sleep 1
done
'';
};
};
machine.wait_for_unit("fluent-bit.service") testScript = ''
machine.wait_for_file("/var/log/fluent-bit/fluent-bit.out") start_all()
'';
} machine.wait_for_unit("fluent-bit.service")
)
with subtest("fluent-bit handles zstd-compressed journal logs"):
machine.succeed("systemctl start fluent-bit-regression-395128.service")
machine.succeed("systemctl show -p NRestarts fluent-bit.service | grep -q 'NRestarts=0'")
machine.wait_for_file("/var/log/fluent-bit/fluent-bit.out")
'';
}