From d0f92f582800b6bd6b4bb2e59cd7e5b3cd6b5948 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Sun, 20 Jun 2021 14:46:17 +0200 Subject: [PATCH] _GSConverter: handle stray 'GS' in output gracefully Search the GS output stream for either "GS<" or "GS>" explicitly rather than any "GS", in order to prevent the code from wrongly matching stray "GS". This fixes a recent test regression on Gentoo where the following output seems to have been wrongly matched: **** Error 'gs' ignored -- ExtGState missing from Resources. ^^ Fixes #20472 --- lib/matplotlib/testing/compare.py | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/lib/matplotlib/testing/compare.py b/lib/matplotlib/testing/compare.py index 3957188b3e2..27af3e186bd 100644 --- a/lib/matplotlib/testing/compare.py +++ b/lib/matplotlib/testing/compare.py @@ -154,15 +154,17 @@ def encode_and_escape(name): + b") run flush\n") self._proc.stdin.flush() # GS> if nothing left on the stack; GS if n items left on the stack. - err = self._read_until(b"GS") - stack = self._read_until(b">") - if stack or not os.path.exists(dest): - stack_size = int(stack[1:]) if stack else 0 - self._proc.stdin.write(b"pop\n" * stack_size) - # Using the systemencoding should at least get the filenames right. - raise ImageComparisonFailure( - (err + b"GS" + stack + b">") - .decode(sys.getfilesystemencoding(), "replace")) + err = self._read_until((b"GS<", b"GS>")) + if err.endswith(b"GS<"): + stack = self._read_until(b">") + if stack or not os.path.exists(dest): + stack_size = int(stack[1:]) if stack else 0 + self._proc.stdin.write(b"pop\n" * stack_size) + # Using the systemencoding should at least get the filenames + # right. + raise ImageComparisonFailure( + (err + b"GS" + stack + b">") + .decode(sys.getfilesystemencoding(), "replace")) class _SVGConverter(_Converter): From d73dd52edf7ec106cf2f6c0ffc79dcda31102ecd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Sun, 20 Jun 2021 15:07:56 +0200 Subject: [PATCH] increase test_backend_pgf.py::test_xelatex[pdf] tol --- lib/matplotlib/tests/test_backend_pgf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/matplotlib/tests/test_backend_pgf.py b/lib/matplotlib/tests/test_backend_pgf.py index 55e375311..684f38fb7 100644 --- a/lib/matplotlib/tests/test_backend_pgf.py +++ b/lib/matplotlib/tests/test_backend_pgf.py @@ -80,7 +80,7 @@ def test_common_texification(plain_text, escaped_text): # test compiling a figure to pdf with xelatex @needs_xelatex @pytest.mark.backend('pgf') -@image_comparison(['pgf_xelatex.pdf'], style='default') +@image_comparison(['pgf_xelatex.pdf'], style='default', tol=0.8) def test_xelatex(): rc_xelatex = {'font.family': 'serif', 'pgf.rcfonts': False} -- 2.32.0