From 35aca2dc94b129995db292352d7f5e79f05bde0c Mon Sep 17 00:00:00 2001 From: Nick Coghlan Date: Thu, 3 Mar 2011 11:08:33 +0000 Subject: Update compiler recursion crasher to more reliably blow the stack and add a tracker issue for it --- Lib/test/crashers/compiler_recursion.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'Lib/test/crashers/compiler_recursion.py') diff --git a/Lib/test/crashers/compiler_recursion.py b/Lib/test/crashers/compiler_recursion.py index 4954bdd8f0..8fd93fcdd4 100644 --- a/Lib/test/crashers/compiler_recursion.py +++ b/Lib/test/crashers/compiler_recursion.py @@ -1,5 +1,13 @@ """ -The compiler (>= 2.5) recurses happily. +The compiler (>= 2.5) recurses happily until it blows the stack. + +Recorded on the tracker as http://bugs.python.org/issue11383 """ -compile('()'*9**5, '?', 'exec') +# The variant below blows up in compiler_call, but there are assorted +# other variations that blow up in other functions +# e.g. '1*'*10**5+'1' will die in compiler_visit_expr + +# The exact limit to destroy the stack will vary by platform +# but 100k should do the trick most places +compile('()'*10**5, '?', 'exec') -- cgit v1.2.1 From 50aed5a327f9aca248e58a228dc2978814e0a102 Mon Sep 17 00:00:00 2001 From: Nick Coghlan Date: Thu, 17 Mar 2011 11:04:34 -0400 Subject: Give more info in verbose mode when checking crashers, and stress the stack even more in the compiler crasher --- Lib/test/crashers/compiler_recursion.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'Lib/test/crashers/compiler_recursion.py') diff --git a/Lib/test/crashers/compiler_recursion.py b/Lib/test/crashers/compiler_recursion.py index 8fd93fcdd4..c00cd6e188 100644 --- a/Lib/test/crashers/compiler_recursion.py +++ b/Lib/test/crashers/compiler_recursion.py @@ -9,5 +9,5 @@ Recorded on the tracker as http://bugs.python.org/issue11383 # e.g. '1*'*10**5+'1' will die in compiler_visit_expr # The exact limit to destroy the stack will vary by platform -# but 100k should do the trick most places -compile('()'*10**5, '?', 'exec') +# but 1M should do the trick most places +compile('()'*10**6, '?', 'exec') -- cgit v1.2.1 From f375572331aac3586460d132c7d8936de2761bff Mon Sep 17 00:00:00 2001 From: Nick Coghlan Date: Sat, 19 Mar 2011 15:22:59 +1000 Subject: Last attempt to get compiler recursion crasher to fail reliably across platforms before giving up and skipping it as unreliably platform dependent --- Lib/test/crashers/compiler_recursion.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'Lib/test/crashers/compiler_recursion.py') diff --git a/Lib/test/crashers/compiler_recursion.py b/Lib/test/crashers/compiler_recursion.py index c00cd6e188..31f28a956f 100644 --- a/Lib/test/crashers/compiler_recursion.py +++ b/Lib/test/crashers/compiler_recursion.py @@ -9,5 +9,5 @@ Recorded on the tracker as http://bugs.python.org/issue11383 # e.g. '1*'*10**5+'1' will die in compiler_visit_expr # The exact limit to destroy the stack will vary by platform -# but 1M should do the trick most places -compile('()'*10**6, '?', 'exec') +# but 10M should do the trick even with huge stack allocations +compile('()'*10**7, '?', 'exec') -- cgit v1.2.1