1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
let
  inherit (import ./config.nix) mkDerivation;
  strangeLog =
    logCommands:
    mkDerivation {
      name = "unusual-logging";
      buildCommand = ''
        {
          ${logCommands}
        } >&$NIX_LOG_FD
        touch $out
      '';
    };

  makeBadLog = json: "echo '@nix ${json}'";
  makeBadLogs = logs: builtins.concatStringsSep "\n" (builtins.map makeBadLog logs);
in
rec {
  normalInvalid = strangeLog (makeBadLogs normalInvalidLogs);
  normalInvalidLogs = [
    "1"
    "{}"
    ''{"action": null}''
    ''{"action": 123}''
    "]["
  ];

  invalidFields = strangeLog (makeBadLog invalidFieldsLog);
  invalidFieldsLog = ''{"action": "start", "fields": [1.5], "id": 2, "type": 1, "level": 1, "text": "abc"}'';
}