diff options
author | Neal Norwitz <nnorwitz@gmail.com> | 2006-09-11 04:32:57 (GMT) |
---|---|---|
committer | Neal Norwitz <nnorwitz@gmail.com> | 2006-09-11 04:32:57 (GMT) |
commit | 361b46be24ae74f50a8e823c926c9e974c7c8602 (patch) | |
tree | e06199116b370b797cdbdfe19c857c6123b10caa /Lib/test/crashers | |
parent | 2a399b0f1128f2663769a3cd8522d35601712ae5 (diff) | |
download | cpython-361b46be24ae74f50a8e823c926c9e974c7c8602.zip cpython-361b46be24ae74f50a8e823c926c9e974c7c8602.tar.gz cpython-361b46be24ae74f50a8e823c926c9e974c7c8602.tar.bz2 |
Add a "crasher" taken from the sgml bug report referenced in the comment
Diffstat (limited to 'Lib/test/crashers')
-rw-r--r-- | Lib/test/crashers/infinite_loop_re.py | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/Lib/test/crashers/infinite_loop_re.py b/Lib/test/crashers/infinite_loop_re.py new file mode 100644 index 0000000..9aecc56 --- /dev/null +++ b/Lib/test/crashers/infinite_loop_re.py @@ -0,0 +1,16 @@ + +# This was taken from http://python.org/sf/1541697 +# It's not technically a crasher. It may not even truly be infinite, +# however, I haven't waited a long time to see the result. It takes +# 100% of CPU while running this and should be fixed. + +import re +starttag = re.compile(r'<[a-zA-Z][-_.:a-zA-Z0-9]*\s*(' + r'\s*([a-zA-Z_][-:.a-zA-Z_0-9]*)(\s*=\s*' + r'(\'[^\']*\'|"[^"]*"|[-a-zA-Z0-9./,:;+*%?!&$\(\)_#=~@]' + r'[][\-a-zA-Z0-9./,:;+*%?!&$\(\)_#=~\'"@]*(?=[\s>/<])))?' + r')*\s*/?\s*(?=[<>])') + +if __name__ == '__main__': + foo = '<table cellspacing="0" cellpadding="0" style="border-collapse' + starttag.match(foo) |