Expect the entire input to be a single XML document, instead of reading it line by line. This detects trailing junk better.
22 lines
712 B
Python
Executable file
22 lines
712 B
Python
Executable file
#!/usr/bin/env python
|
|
|
|
# Trivial Python script that reads lines from stdin, and checks that each line
|
|
# is a well-formed XML document.
|
|
#
|
|
# This takes advantage of the fact that Python has a built-in XML parser,
|
|
# whereas doing the same check in Rust would require us to pull in an XML
|
|
# crate just for this relatively-minor test.
|
|
#
|
|
# If you're trying to remove Python scripts from the test suite, think twice
|
|
# before removing this one. You could do so, but it's probably not worth it.
|
|
|
|
import sys
|
|
import xml.etree.ElementTree as ET
|
|
|
|
# Read the entire output and try to decode it as XML.
|
|
junit = sys.stdin.read()
|
|
try:
|
|
ET.fromstring(junit)
|
|
except ET.ParseError:
|
|
print("Invalid xml: %r" % junit)
|
|
raise
|