Unverified Commit a7424feb authored by Arian van Putten's avatar Arian van Putten Committed by GitHub
Browse files

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

parents 77f77a04 145cc7ff
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -505,7 +505,7 @@ in
    imports = [ ./firefox.nix ];
    _module.args.firefoxPackage = pkgs.floorp;
  };
  fluent-bit = handleTest ./fluent-bit.nix { };
  fluent-bit = runTest ./fluent-bit.nix;
  fluentd = handleTest ./fluentd.nix { };
  fluidd = handleTest ./fluidd.nix { };
  fontconfig-default-fonts = handleTest ./fontconfig-default-fonts.nix { };
+51 −35
Original line number Diff line number Diff line
import ./make-test-python.nix (
  { lib, pkgs, ... }:
# Regression test for https://github.com/NixOS/nixpkgs/pull/395128
{
  name = "fluent-bit";

    nodes.machine =
      { config, pkgs, ... }:
      {
  nodes.machine = {
    services.fluent-bit = {
      enable = true;
      settings = {
@@ -13,7 +9,7 @@ import ./make-test-python.nix (
          inputs = [
            {
              name = "systemd";
                  systemd_filter = "_SYSTEMD_UNIT=fluent-bit.service";
              systemd_filter = "_SYSTEMD_UNIT=fluent-bit-regression-395128.service";
            }
          ];
          outputs = [
@@ -26,15 +22,35 @@ import ./make-test-python.nix (
        };
      };
    };

    systemd.services.fluent-bit.serviceConfig.LogsDirectory = "fluent-bit";

    # Logs get compressed when larger than 1024 bytes
    # 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
      '';
    };
  };

  testScript = ''
    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")
  '';
}
)