summary refs log tree commit diff
path: root/pkgs/development/ruby-modules/testing/tap-support.nix
blob: 74fcceebaa0420c80367df830ab4a431d78f161d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
with builtins;
let
  withIndexes = list: genList (idx: (elemAt list idx) // {index = idx;}) (length list);

  testLine = report: "${okStr report} ${toString (report.index + 1)} ${report.description}" + testDirective report + testYaml report;

  # These are part of the TAP spec, not yet implemented.
  #c.f.  https://github.com/NixOS/nixpkgs/issues/27071
  testDirective = report: "";
  testYaml = report: "";

  okStr = { result, ...}: if result == "pass" then "ok" else "not ok";
in
  {
    output = reports: ''
      TAP version 13
      1..${toString (length reports)}'' + (foldl' (l: r: l + "\n" + r) "" (map testLine (withIndexes reports))) + ''

      # Finished at ${toString currentTime}
      '';
  }