summaryrefslogtreecommitdiffstats
path: root/test/misc5.test
diff options
context:
space:
mode:
Diffstat (limited to 'test/misc5.test')
-rw-r--r--test/misc5.test24
1 files changed, 18 insertions, 6 deletions
diff --git a/test/misc5.test b/test/misc5.test
index f7c6048..84aa958 100644
--- a/test/misc5.test
+++ b/test/misc5.test
@@ -569,11 +569,11 @@ ifcapable subquery&&compound {
}
# Overflow the lemon parser stack by providing an overly complex
-# expression. Make sure that the overflow is detected and reported.
+# expression. Make sure that the overflow is detected and the
+# stack is grown automatically such that the application calling
+# SQLite never notices.
#
-# This test fails when building with -DYYSTACKDEPTH=0
-#
-do_test misc5-7.1 {
+do_test misc5-7.1.1 {
execsql {CREATE TABLE t1(x)}
set sql "INSERT INTO t1 VALUES("
set tail ""
@@ -581,9 +581,21 @@ do_test misc5-7.1 {
append sql "(1+"
append tail ")"
}
- append sql 2$tail
+ append sql "0$tail); SELECT * FROM t1;"
+ catchsql $sql
+} {0 200}
+do_test misc5-7.1.2 {
+ execsql {DELETE FROM t1}
+ set sql "INSERT INTO t1 VALUES("
+ set tail ""
+ for {set i 0} {$i<900} {incr i} {
+ append sql "(1+"
+ append tail ")"
+ }
+ append sql "0$tail); SELECT * FROM t1;"
catchsql $sql
-} {1 {parser stack overflow}}
+} {0 900}
+
# Parser stack overflow is silently ignored when it occurs while parsing the
# schema and PRAGMA writable_schema is turned on.