Feature #13847
geschlossenPDF bei CI-Tests diffen
0%
Beschreibung
Für die Gewährung der Produktionssicherheit müssen wir einen Mechanismus etablieren, der im Rahmen der CI-Tests auch PDFs erzeugt und diese difft.
Dieses Ticket dient für interne Rückfragen und Dokumentation des Projektstandes.
Von Fränze Gramsch vor fast 2 Jahren aktualisiert
Der aktuelle Stand:
Ich habe den PDF Diff erfolgreich beim Projekt Hanser FB eingebaut. Hier wird ein Formellog-PDF mit pdflatex erzeugt, dass anschließend gedifft wird. Die Ausgabe im before_after.diff
sieht aktuell so aus:
Gleiches PDF, keine Unterschiede:
======== diff /data/svncompat/.jenkins/workspace/svncompat_https_subversion_le_tex_de_customers_hanser_fb_transpect//test_before/CHVPN44276_KU_WFV_Kies_Kap2_formellog.pdf /data/svncompat/.jenkins/workspace/svncompat_https_subversion_le_tex_de_customers_hanser_fb_transpect//test_after/CHVPN44276_KU_WFV_Kies_Kap2_formellog.pdf /data/svncompat/.jenkins/workspace/svncompat_https_subversion_le_tex_de_customers_hanser_fb_transpect/vergleich.YiMGxB /data/svncompat/.jenkins/workspace/svncompat_https_subversion_le_tex_de_customers_hanser_fb_transpect gs -dSAFER -dBATCH -dNOPAUSE -r150 -sDEVICE=pbm -sOutputFile=a_seite%04d /data/svncompat/.jenkins/workspace/svncompat_https_subversion_le_tex_de_customers_hanser_fb_transpect/test_before/CHVPN44276_KU_WFV_Kies_Kap2_formellog.pdf GPL Ghostscript 9.26 (2018-11-20) Copyright (C) 2018 Artifex Software, Inc. All rights reserved. This software comes with NO WARRANTY: see the file PUBLIC for details. Processing pages 1 through 3. Page 1 Page 2 Page 3 GPL Ghostscript 9.26 (2018-11-20) Copyright (C) 2018 Artifex Software, Inc. All rights reserved. This software comes with NO WARRANTY: see the file PUBLIC for details. Processing pages 1 through 3. Page 1 Page 2 Page 3 Pages are the same(a3d85bf8edf4695a906a823ad86a6237/a3d85bf8edf4695a906a823ad86a6237) Pages are the same(6d41f6e8922748b0baacda28f128ed0e/6d41f6e8922748b0baacda28f128ed0e) Pages are the same(4b9cdde75f402be64d72cca089bd47db/4b9cdde75f402be64d72cca089bd47db) /data/svncompat/.jenkins/workspace/svncompat_https_subversion_le_tex_de_customers_hanser_fb_transpect
Unterschiede im PDF:
======== diff /data/svncompat/.jenkins/workspace/svncompat_https_subversion_le_tex_de_customers_hanser_fb_transpect//test_before/CHVPNXX754_KU_Muenstedt_Kap5_formellog.pdf /data/svncompat/.jenkins/workspace/svncompat_https_subversion_le_tex_de_customers_hanser_fb_transpect//test_after/CHVPNXX754_KU_Muenstedt_Kap5_formellog.pdf /data/svncompat/.jenkins/workspace/svncompat_https_subversion_le_tex_de_customers_hanser_fb_transpect/vergleich.kC06Ju /data/svncompat/.jenkins/workspace/svncompat_https_subversion_le_tex_de_customers_hanser_fb_transpect gs -dSAFER -dBATCH -dNOPAUSE -r150 -sDEVICE=pbm -sOutputFile=a_seite%04d /data/svncompat/.jenkins/workspace/svncompat_https_subversion_le_tex_de_customers_hanser_fb_transpect/test_before/CHVPNXX754_KU_Muenstedt_Kap5_formellog.pdf GPL Ghostscript 9.26 (2018-11-20) Copyright (C) 2018 Artifex Software, Inc. All rights reserved. This software comes with NO WARRANTY: see the file PUBLIC for details. Processing pages 1 through 1. Page 1 GPL Ghostscript 9.26 (2018-11-20) Copyright (C) 2018 Artifex Software, Inc. All rights reserved. This software comes with NO WARRANTY: see the file PUBLIC for details. Processing pages 1 through 12. Page 1 Page 2 Page 3 Page 4 Page 5 Page 6 Page 7 Page 8 Page 9 Page 10 Page 11 Page 12 Unterschied zwischen Datei /data/svncompat/.jenkins/workspace/svncompat_https_subversion_le_tex_de_customers_hanser_fb_transpect/test_before/CHVPNXX754_KU_Muenstedt_Kap5_formellog.pdf und /data/svncompat/.jenkins/workspace/svncompat_https_subversion_le_tex_de_customers_hanser_fb_transpect/test_after/CHVPNXX754_KU_Muenstedt_Kap5_formellog.pdf auf Seite 0001 'm_seite' -> '/data/svncompat/.jenkins/workspace/svncompat_https_subversion_le_tex_de_customers_hanser_fb_transpect/pagediff_0001.pnm' /data/svncompat/.jenkins/workspace/svncompat_https_subversion_le_tex_de_customers_hanser_fb_transpect
vgl. Build 2407
Die Ausgabe ließe sich vielleicht noch etwas verschönern.
Was aber noch ein bisschen problematisch ist:
Wenn man mit make accept_results_jenkins
die erzeugten PDFs von Jenkins abholt, sind sie im SVN doch etwas unterschiedlich:
$ svn diff -r COMMITTED:PREV --force test_before/CHVPN44276_KU_WFV_Kies_Kap2_formellog.pdf
Index: test_before/CHVPN44276_KU_WFV_Kies_Kap2_formellog.pdf
===================================================================
--- test_before/CHVPN44276_KU_WFV_Kies_Kap2_formellog.pdf (Revision 49371)
+++ test_before/CHVPN44276_KU_WFV_Kies_Kap2_formellog.pdf (Revision 49370)
@@ -492,8 +492,8 @@
<<
/Producer (pdfTeX-1.40.20)
/Creator (TeX)
-/CreationDate (D:20221123144747+01'00')
-/ModDate (D:20221123144747+01'00')
+/CreationDate (D:20221123142437+01'00')
+/ModDate (D:20221123142437+01'00')
/Trapped /False
/PTEX.Fullbanner (This is pdfTeX, Version 3.14159265-2.6-1.40.20 (TeX Live 2019) kpathsea version 6.3.1)
>>
@@ -536,7 +536,7 @@
/W [1 2 1]
/Root 45 0 R
/Info 46 0 R
-/ID [<B7BBDCF70FE2BB22B4916DF0CCA0476A> <B7BBDCF70FE2BB22B4916DF0CCA0476A>]
+/ID [<6CFE62E1CE109D3047874D27D1D9FA3A> <6CFE62E1CE109D3047874D27D1D9FA3A>]
/Length 133
/Filter /FlateDecode
>>
Das ist natürlich nicht ganz so praktisch, hier müssten wir uns überlegen, wie man am besten vorgeht. Jedes mal ein "geändertes" (aber eigentlich gleich gebliebenes) PDF committen, vermüllt das SVN Zusehens... Vielleicht die PDFs nicht automatisch mit make accept_results_jenkins
abholen oder ein neues target bauen, in dem man nur die geänderten und akzeptierbaren PDFs übergibt, die dann gecurlt werden. Oder die PDFs aus dem test_before
löschen, wenn sie gleich geblieben sind?
Von Martin Kraetke vor fast 2 Jahren aktualisiert
Cool, sieht sehr gut aus. Die PDFs sollte man dann lieber mit einem anderen Target kopieren. Also nur wenn sich die Referenzdaten geändert haben und die Änderung erwünscht war.
Von Fränze Gramsch vor fast 2 Jahren aktualisiert
- Status wurde von Neu zu Erledigt geändert
Ich habe die Tests jetzt für einige Projekte eingebaut und die Wiki Seite angepasst.
Ich habe jetzt für die meisten Xerif Projekte ein Extra Target render_testfile_pdf
erstellt, das im transpect/Makefile
liegt. Das muss ggf. noch mit projektspezifischen Parametern erweitert werden. Als Vorlage kann das Brill Makefile benutzt werden.