about summary refs log tree commit diff
path: root/pkgs/misc/ghostscript
diff options
context:
space:
mode:
authorRobert Scott <code@humanleg.org.uk>2021-09-12 13:13:19 +0100
committerRobert Scott <code@humanleg.org.uk>2021-09-12 13:14:03 +0100
commit57692f6d3e48766a7c50fa00f6157ece953595ca (patch)
treef8ace7b63d53b6fc64b51f4415d2ae41dcecefaa /pkgs/misc/ghostscript
parent7267016c661fb11b170507a565749c66043faa33 (diff)
ghostscript: add passthru.tests.test-corpus-render
this simply attempts rendering every ps/eps/pdf file in the ghostscript
test corpus
Diffstat (limited to 'pkgs/misc/ghostscript')
-rw-r--r--pkgs/misc/ghostscript/default.nix4
-rw-r--r--pkgs/misc/ghostscript/test-corpus-render.nix38
2 files changed, 41 insertions, 1 deletions
diff --git a/pkgs/misc/ghostscript/default.nix b/pkgs/misc/ghostscript/default.nix
index 990dc64e0c313..369add0a586bd 100644
--- a/pkgs/misc/ghostscript/default.nix
+++ b/pkgs/misc/ghostscript/default.nix
@@ -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)";
diff --git a/pkgs/misc/ghostscript/test-corpus-render.nix b/pkgs/misc/ghostscript/test-corpus-render.nix
new file mode 100644
index 0000000000000..544392090ff77
--- /dev/null
+++ b/pkgs/misc/ghostscript/test-corpus-render.nix
@@ -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
+  '';
+}