ghostscript: add passthru.tests.test-corpus-render

this simply attempts rendering every ps/eps/pdf file in the ghostscript
test corpus
This commit is contained in:
Robert Scott 2021-09-12 13:13:19 +01:00
parent 7267016c66
commit 57692f6d3e
2 changed files with 41 additions and 1 deletions

View file

@ -1,6 +1,6 @@
{ config, stdenv, lib, fetchurl, pkg-config, zlib, expat, openssl, autoconf
, libjpeg, libpng, libtiff, freetype, fontconfig, libpaper, jbig2dec
, libiconv, ijs, lcms2, fetchpatch
, libiconv, ijs, lcms2, fetchpatch, callPackage
, cupsSupport ? config.ghostscript.cups or (!stdenv.isDarwin), cups ? null
, x11Support ? cupsSupport, xlibsWrapper ? null # with CUPS, X11 only adds very little
}:
@ -138,6 +138,8 @@ stdenv.mkDerivation rec {
runHook postInstallCheck
'';
passthru.tests.test-corpus-render = callPackage ./test-corpus-render.nix {};
meta = {
homepage = "https://www.ghostscript.com/";
description = "PostScript interpreter (mainline version)";

View file

@ -0,0 +1,38 @@
{ lib
, stdenv
, fetchgit
, ghostscript
}:
stdenv.mkDerivation {
pname = "ghostscript-test-corpus-render";
version = "unstable-2020-02-19";
src = fetchgit {
url = "git://git.ghostscript.com/tests.git";
rev = "efdd224340d9a407ed3ec22afa1cb127c8fee73c";
sha256 = "1v1iqz897zzrwa8ng22zcf3y61ab5798jdwidgv10w1r9mjrl7ax";
};
dontConfigure = true;
dontBuild = true;
doCheck = true;
checkPhase = ''
find . -iregex '.*\.\(ps\|eps\|pdf\)' | while read f; do
echo "Rendering $f"
${ghostscript}/bin/gs \
-dNOPAUSE \
-dBATCH \
-sDEVICE=bitcmyk \
-sOutputFile=/dev/null \
-r600 \
-dBufferSpace=100000 \
$f
done
'';
installPhase = ''
touch $out
'';
}