summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorNeal Norwitz <nnorwitz@gmail.com>2006-09-11 04:32:57 (GMT)
committerNeal Norwitz <nnorwitz@gmail.com>2006-09-11 04:32:57 (GMT)
commit361b46be24ae74f50a8e823c926c9e974c7c8602 (patch)
treee06199116b370b797cdbdfe19c857c6123b10caa /Lib
parent2a399b0f1128f2663769a3cd8522d35601712ae5 (diff)
downloadcpython-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')
-rw-r--r--Lib/test/crashers/infinite_loop_re.py16
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)