tuple: update to make use of C++11
[chromium-blink-merge.git] / third_party / sqlite / src / test / mallocK.test
blob971bd561377182112945623332d134fe7122b441
1 # 2008 August 01
3 # The author disclaims copyright to this source code.  In place of
4 # a legal notice, here is a blessing:
6 #    May you do good and not evil.
7 #    May you find forgiveness for yourself and forgive others.
8 #    May you share freely, never taking more than you give.
10 #***********************************************************************
12 # This test script checks malloc failures in WHERE clause analysis.
13
14 # $Id: mallocK.test,v 1.3 2009/01/08 21:00:03 drh Exp $
16 set testdir [file dirname $argv0]
17 source $testdir/tester.tcl
18 source $testdir/malloc_common.tcl
20 set sql {SELECT * FROM t1, t2 WHERE (a=1 OR a=2)}
21 for {set x 1} {$x<5} {incr x} {
22   append sql " AND b=y"
23   do_malloc_test mallocK-1.$x -sqlbody $sql -sqlprep {
24     CREATE TABLE t1(a,b);
25     CREATE TABLE t2(x,y);
26   }
29 set sql {SELECT * FROM t1 WHERE a GLOB 'xyz*' AND (a=1 OR a=2)}
30 for {set x 1} {$x<5} {incr x} {
31   append sql " AND b!=$x"
32   do_malloc_test mallocK-2.$x -sqlbody $sql -sqlprep {
33     CREATE TABLE t1(a,b);
34   }
37 set sql {SELECT * FROM t1 WHERE a BETWEEN 5 AND 10}
38 for {set x 1} {$x<5} {incr x} {
39   append sql " AND b=$x"
40   do_malloc_test mallocK-3.$x -sqlbody $sql -sqlprep {
41     CREATE TABLE t1(a,b);
42   }
45 set sql {SELECT * FROM t1 WHERE b=0}
46 for {set x 1} {$x<5} {incr x} {
47   set term "(b=$x"
48   for {set y 0} {$y<$x} {incr y} {
49     append term " AND a!=$y"
50   }
51   append sql " OR $term)"
52   do_malloc_test mallocK-4.$x -sqlbody $sql -sqlprep {
53     CREATE TABLE t1(a,b);
54   }
57 ifcapable vtab {
58   set sql {SELECT * FROM t2 WHERE a MATCH 'xyz'}
59   for {set x 1} {$x<5} {incr x} {
60     append sql " AND b!=$x"
61     do_malloc_test mallocK-5.$x -sqlbody $sql -tclprep {
62       register_echo_module [sqlite3_connection_pointer db]
63       db eval {
64         CREATE TABLE t1(a,b);
65         CREATE VIRTUAL TABLE t2 USING echo(t1);
66       }
67     }
68   }
72 finish_test