about summary refs log tree commit diff
diff options
context:
space:
mode:
authortuxcoder <tuxcoder+git@o-g.at>2024-04-13 09:13:54 +0200
committertuxcoder <tuxcoder+git@o-g.at>2024-04-19 11:07:14 +0200
commitfae8ec30eabc4dc29051ab26a37ba1ba89827031 (patch)
tree72db7ba47c61d7f71bb265424ffec3eea1362014
parent9bf31eaba05c0d7796f076662fb58c2e5ae82df4 (diff)
inkscape: add unit test for ps2pdf plugin
to prevent future regressen add a smal test,
to check if ps2pdf plugin is working
by createing a .ps / .eps file and converting it back to svg
-rw-r--r--pkgs/applications/graphics/inkscape/default.nix3
-rw-r--r--pkgs/applications/graphics/inkscape/test-ps2pdf-plugin.nix27
2 files changed, 30 insertions, 0 deletions
diff --git a/pkgs/applications/graphics/inkscape/default.nix b/pkgs/applications/graphics/inkscape/default.nix
index 35000a06de02e..fcc56fd14dd0e 100644
--- a/pkgs/applications/graphics/inkscape/default.nix
+++ b/pkgs/applications/graphics/inkscape/default.nix
@@ -3,6 +3,7 @@
 , boehmgc
 , boost
 , cairo
+, callPackage
 , cmake
 , desktopToDarwinBundle
 , fetchurl
@@ -172,6 +173,8 @@ stdenv.mkDerivation rec {
     done
   '';
 
+  passthru.tests.ps2pdf-plugin = callPackage ./test-ps2pdf-plugin.nix { };
+
   meta = with lib; {
     description = "Vector graphics editor";
     homepage = "https://www.inkscape.org";
diff --git a/pkgs/applications/graphics/inkscape/test-ps2pdf-plugin.nix b/pkgs/applications/graphics/inkscape/test-ps2pdf-plugin.nix
new file mode 100644
index 0000000000000..3e55557c860e1
--- /dev/null
+++ b/pkgs/applications/graphics/inkscape/test-ps2pdf-plugin.nix
@@ -0,0 +1,27 @@
+{ inkscape, runCommand, writeTextFile }:
+
+let
+  svg_file = writeTextFile {
+    name = "test.svg";
+    text = ''
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="50" height="50" version="1.1">
+  <ellipse cx="1" cy="1" rx="1" ry="1" />
+</svg>'';
+  };
+in
+runCommand "inkscape-test-eps"
+{
+  nativeBuildInputs = [ inkscape ];
+} ''
+  echo ps test
+  inkscape ${svg_file} --export-type=ps -o test.ps
+  inkscape test.ps -o test.ps.svg
+
+  echo eps test
+  inkscape ${svg_file} --export-type=eps -o test.eps
+  inkscape test.eps -o test.eps.svg
+
+  # inkscape does not return an error code, only does not create files
+  [[ -f test.ps.svg && -f test.eps.svg ]] && touch $out
+''