nixos/tests/fluent-bit: migrate to runTest
This commit is contained in:
		
							parent
							
								
									388a54929a
								
							
						
					
					
						commit
						145cc7ff23
					
				@ -480,7 +480,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 { };
 | 
			
		||||
 | 
			
		||||
@ -1,63 +1,56 @@
 | 
			
		||||
import ./make-test-python.nix (
 | 
			
		||||
  { lib, pkgs, ... }:
 | 
			
		||||
  {
 | 
			
		||||
    name = "fluent-bit";
 | 
			
		||||
 | 
			
		||||
    nodes.machine =
 | 
			
		||||
      { config, pkgs, ... }:
 | 
			
		||||
      {
 | 
			
		||||
        services.fluent-bit = {
 | 
			
		||||
          enable = true;
 | 
			
		||||
          settings = {
 | 
			
		||||
            pipeline = {
 | 
			
		||||
              inputs = [
 | 
			
		||||
                {
 | 
			
		||||
                  name = "systemd";
 | 
			
		||||
                  systemd_filter = "_SYSTEMD_UNIT=fluent-bit-regression-395128.service";
 | 
			
		||||
                }
 | 
			
		||||
              ];
 | 
			
		||||
              outputs = [
 | 
			
		||||
                {
 | 
			
		||||
                  name = "file";
 | 
			
		||||
                  path = "/var/log/fluent-bit";
 | 
			
		||||
                  file = "fluent-bit.out";
 | 
			
		||||
                }
 | 
			
		||||
              ];
 | 
			
		||||
            };
 | 
			
		||||
          };
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        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
 | 
			
		||||
          '';
 | 
			
		||||
# Regression test for https://github.com/NixOS/nixpkgs/pull/395128
 | 
			
		||||
{
 | 
			
		||||
  name = "fluent-bit";
 | 
			
		||||
  nodes.machine = {
 | 
			
		||||
    services.fluent-bit = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
      settings = {
 | 
			
		||||
        pipeline = {
 | 
			
		||||
          inputs = [
 | 
			
		||||
            {
 | 
			
		||||
              name = "systemd";
 | 
			
		||||
              systemd_filter = "_SYSTEMD_UNIT=fluent-bit-regression-395128.service";
 | 
			
		||||
            }
 | 
			
		||||
          ];
 | 
			
		||||
          outputs = [
 | 
			
		||||
            {
 | 
			
		||||
              name = "file";
 | 
			
		||||
              path = "/var/log/fluent-bit";
 | 
			
		||||
              file = "fluent-bit.out";
 | 
			
		||||
            }
 | 
			
		||||
          ];
 | 
			
		||||
        };
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
    systemd.services.fluent-bit.serviceConfig.LogsDirectory = "fluent-bit";
 | 
			
		||||
 | 
			
		||||
    testScript = ''
 | 
			
		||||
      start_all()
 | 
			
		||||
    # 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
 | 
			
		||||
      '';
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
      machine.wait_for_unit("fluent-bit.service")
 | 
			
		||||
  testScript = ''
 | 
			
		||||
    start_all()
 | 
			
		||||
 | 
			
		||||
      # Regression test for https://github.com/NixOS/nixpkgs/pull/395128
 | 
			
		||||
      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_unit("fluent-bit.service")
 | 
			
		||||
 | 
			
		||||
      machine.wait_for_file("/var/log/fluent-bit/fluent-bit.out")
 | 
			
		||||
    '';
 | 
			
		||||
  }
 | 
			
		||||
)
 | 
			
		||||
    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")
 | 
			
		||||
  '';
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user