tests/run-tests.py
changeset 25051 9c28f3236677
parent 25050 28526bb5b3b5
child 25052 c4217a046b62
equal deleted inserted replaced
25050:28526bb5b3b5 25051:9c28f3236677
   352 
   352 
   353     return log(*msg)
   353     return log(*msg)
   354 
   354 
   355 # Bytes that break XML even in a CDATA block: control characters 0-31
   355 # Bytes that break XML even in a CDATA block: control characters 0-31
   356 # sans \t, \n and \r
   356 # sans \t, \n and \r
   357 CDATA_EVIL = re.compile(r"[\000-\010\013\014\016-\037]")
   357 CDATA_EVIL = re.compile(br"[\000-\010\013\014\016-\037]")
   358 
   358 
   359 def cdatasafe(data):
   359 def cdatasafe(data):
   360     """Make a string safe to include in a CDATA block.
   360     """Make a string safe to include in a CDATA block.
   361 
   361 
   362     Certain control characters are illegal in a CDATA block, and
   362     Certain control characters are illegal in a CDATA block, and
   363     there's no way to include a ]]> in a CDATA either. This function
   363     there's no way to include a ]]> in a CDATA either. This function
   364     replaces illegal bytes with ? and adds a space between the ]] so
   364     replaces illegal bytes with ? and adds a space between the ]] so
   365     that it won't break the CDATA block.
   365     that it won't break the CDATA block.
   366     """
   366     """
   367     return CDATA_EVIL.sub('?', data).replace(']]>', '] ]>')
   367     return CDATA_EVIL.sub(b'?', data).replace(b']]>', b'] ]>')
   368 
   368 
   369 def log(*msg):
   369 def log(*msg):
   370     """Log something to stdout.
   370     """Log something to stdout.
   371 
   371 
   372     Arguments are strings to print.
   372     Arguments are strings to print.