summaryrefslogtreecommitdiffstats
path: root/pkgs/development/interpreters/octave/run-pkg-test.nix
blob: fccf397b41dbbc7b0f43aee902d94d0cf5a91325 (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
27
28
29
30
{
  octave,
  runCommand,
  nativeOctavePkgTestInputs,
  octavePkgTestEnv,
}:
package:

runCommand "${package.name}-pkg-test"
  {
    nativeBuildInputs = [
      (octave.withPackages (os: [ package ]))
    ]
    ++ nativeOctavePkgTestInputs;

    env = octavePkgTestEnv;
  }
  ''
    { octave-cli --eval 'pkg test ${package.pname}' || touch FAILED_ERRCODE; } \
      |& tee >( grep --quiet '^Failure Summary:$' && touch FAILED_OUTPUT || : ; cat >/dev/null )
    if [[ -f FAILED_ERRCODE ]]; then
      echo >&2 "octave-cli returned with non-zero exit code."
      false
    elif [[ -f FAILED_OUTPUT ]]; then
      echo >&2 "Test failures detected in output."
      false
    else
      touch $out
    fi
  ''