Fix and re-enable htmlreport tests (#2310)
* htmlreport/check.sh: Remove check with obsolete file
gui/test/data/xmlfiles/xmlreport_v1.xml has been removed with commit
d95efc44c7
* .travis.yml: Enable htmlreport test again
* cppcheck-htmlreport: Fall back to guessing lexer from file content
If the lexer can not be guessed from the file extension (for example
for *.tpp) then guess the lexer that should be used from the content.
This fixes "ERROR: *" output when running "htmlreport/check.sh"
Also use specific exceptions instead of bare ones.
This commit is contained in:
parent
694d147097
commit
816aa7e211
11
.travis.yml
11
.travis.yml
|
@ -69,12 +69,11 @@ matrix:
|
||||||
- make validateXML
|
- make validateXML
|
||||||
# Validate rule files
|
# Validate rule files
|
||||||
- make validateRules
|
- make validateRules
|
||||||
# note: trusty on travis has python pygments disabled so disable these tests on travis
|
# check htmlreport stuff
|
||||||
## check htmlreport stuff
|
- ./htmlreport/test_htmlreport.py
|
||||||
# - ./htmlreport/test_htmlreport.py
|
- cd htmlreport
|
||||||
# - cd htmlreport
|
- ./check.sh
|
||||||
# - ./check.sh
|
- cd ../
|
||||||
# - cd ../
|
|
||||||
# check if DESTDIR works TODO: actually execute this
|
# check if DESTDIR works TODO: actually execute this
|
||||||
- mkdir install_test
|
- mkdir install_test
|
||||||
- echo $CXXFLAGS
|
- echo $CXXFLAGS
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
#!/bin/bash -ex
|
#!/bin/bash -ex
|
||||||
|
|
||||||
|
|
||||||
./cppcheck-htmlreport --file ../gui/test/data/xmlfiles/xmlreport_v1.xml --title "xml1 test" --report-dir . --source-dir ../test/
|
|
||||||
./cppcheck-htmlreport --file ../gui/test/data/xmlfiles/xmlreport_v2.xml --title "xml2 test" --report-dir . --source-dir ../test/
|
./cppcheck-htmlreport --file ../gui/test/data/xmlfiles/xmlreport_v2.xml --title "xml2 test" --report-dir . --source-dir ../test/
|
||||||
echo -e "\n"
|
echo -e "\n"
|
||||||
|
|
||||||
|
|
|
@ -10,8 +10,9 @@ import operator
|
||||||
|
|
||||||
from collections import Counter
|
from collections import Counter
|
||||||
from pygments import highlight
|
from pygments import highlight
|
||||||
from pygments.lexers import guess_lexer_for_filename
|
from pygments.lexers import guess_lexer, guess_lexer_for_filename
|
||||||
from pygments.formatters import HtmlFormatter
|
from pygments.formatters import HtmlFormatter
|
||||||
|
from pygments.util import ClassNotFound
|
||||||
from xml.sax import parse as xml_parse
|
from xml.sax import parse as xml_parse
|
||||||
from xml.sax import SAXParseException as XmlParseException
|
from xml.sax import SAXParseException as XmlParseException
|
||||||
from xml.sax.handler import ContentHandler as XmlContentHandler
|
from xml.sax.handler import ContentHandler as XmlContentHandler
|
||||||
|
@ -523,11 +524,14 @@ if __name__ == '__main__':
|
||||||
output_file.write(HTML_HEAD_END)
|
output_file.write(HTML_HEAD_END)
|
||||||
try:
|
try:
|
||||||
lexer = guess_lexer_for_filename(source_filename, '')
|
lexer = guess_lexer_for_filename(source_filename, '')
|
||||||
except:
|
except ClassNotFound:
|
||||||
sys.stderr.write("ERROR: Couldn't determine lexer for the file' " + source_filename + " '. Won't be able to syntax highlight this file.")
|
try:
|
||||||
output_file.write("\n <tr><td colspan='5'> Could not generated content because pygments failed to retrieve the determine code type.</td></tr>")
|
lexer = guess_lexer(content)
|
||||||
output_file.write("\n <tr><td colspan='5'> Sorry about this.</td></tr>")
|
except ClassNotFound:
|
||||||
continue
|
sys.stderr.write("ERROR: Couldn't determine lexer for the file' " + source_filename + " '. Won't be able to syntax highlight this file.")
|
||||||
|
output_file.write("\n <tr><td colspan='5'> Could not generated content because pygments failed to retrieve the determine code type.</td></tr>")
|
||||||
|
output_file.write("\n <tr><td colspan='5'> Sorry about this.</td></tr>")
|
||||||
|
continue
|
||||||
|
|
||||||
if options.source_encoding:
|
if options.source_encoding:
|
||||||
lexer.encoding = options.source_encoding
|
lexer.encoding = options.source_encoding
|
||||||
|
|
Loading…
Reference in New Issue