summaryrefslogtreecommitdiff
path: root/pkgs/development/ruby-modules/testing/driver.nix
blob: 6ca12ee4b64ff51aa6c5dfaf61e89b87c4d5dc6a (plain)
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
/*
  Run with:
  nix-build -E 'with import <nixpkgs> { }; callPackage ./test.nix {}' --show-trace; and cat result

  Confusingly, the ideal result ends with something like:
  error: build of ‘/nix/store/3245f3dcl2wxjs4rci7n069zjlz8qg85-test-results.tap.drv’ failed
*/
{
  writeText,
  lib,
  callPackage,
  testFiles,
  ruby,
}@defs:
let
  testTools = rec {
    test = import ./testing.nix;
    stubs = import ./stubs.nix defs;
    should = import ./assertions.nix { inherit test lib; };
  };

  tap = import ./tap-support.nix;

  results = builtins.concatLists (map (file: callPackage file testTools) testFiles);
in
writeText "test-results.tap" (tap.output results)