Files

31 lines
708 B
Nix

{
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
''