summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormaiphi <maiphi.public@gmx.net>2019-11-01 13:22:31 (GMT)
committermaiphi <maiphi.public@gmx.net>2019-11-01 13:22:31 (GMT)
commit6f35570377e7e7b5003dd6f069b65e95f9ae6efb (patch)
tree59b9ebe599281513e8e0998930ef326ec84bb3ed
parent0951e5d691487033bae283d98c45ccbcf3ae822d (diff)
downloadSCons-6f35570377e7e7b5003dd6f069b65e95f9ae6efb.zip
SCons-6f35570377e7e7b5003dd6f069b65e95f9ae6efb.tar.gz
SCons-6f35570377e7e7b5003dd6f069b65e95f9ae6efb.tar.bz2
Add test case with Latin-1 encoded Latex log file. Required fix in the test framework.
In order to make the test work, it was necessary to handle the encoding issue also in the test framework. Otherwise, though the Latex builder can handle the case, the test framework chokes on it.
-rw-r--r--test/TEX/LATEX.py16
-rw-r--r--testing/framework/TestCmd.py2
2 files changed, 17 insertions, 1 deletions
diff --git a/test/TEX/LATEX.py b/test/TEX/LATEX.py
index 553313e..592bbb7 100644
--- a/test/TEX/LATEX.py
+++ b/test/TEX/LATEX.py
@@ -193,6 +193,22 @@ This is the include file. mod %s
test.must_not_exist('latexi.ilg')
+ test.write('SConstruct', """
+env = Environment()
+env.PostScript('latin1log.tex')
+""")
+
+ test.write('latin1log.tex', r"""
+\documentclass[12pt,a4paper]{article}
+\usepackage[T1]{fontenc}
+\begin{document}
+\"oxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+\end{document}
+""")
+
+ test.run(arguments = 'latin1log.dvi', stderr = None)
+ test.must_exist('latin1log.dvi')
+
test.pass_test()
# Local Variables:
diff --git a/testing/framework/TestCmd.py b/testing/framework/TestCmd.py
index 81e03f3..9218f60 100644
--- a/testing/framework/TestCmd.py
+++ b/testing/framework/TestCmd.py
@@ -1528,7 +1528,7 @@ class TestCmd(object):
# TODO: Run full tests on both platforms and see if this fixes failures
# It seems that py3.6 still sets text mode if you set encoding.
elif sys.version_info[0] == 3: # TODO and sys.version_info[1] < 6:
- stream = stream.decode('utf-8')
+ stream = stream.decode('utf-8', errors='replace')
stream = stream.replace('\r\n', '\n')
elif sys.version_info[0] == 2:
stream = stream.replace('\r\n', '\n')