Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(97)

Side by Side Diff: third_party/sqlite/src/test/fuzz_malloc.test

Issue 694353003: Get `gn gen` to succeed on Windows (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: remove GYP_DEFINES code Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « third_party/sqlite/src/test/fuzz_common.tcl ('k') | third_party/sqlite/src/test/fuzzer1.test » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 #
2 # 2007 May 10
3 #
4 # The author disclaims copyright to this source code. In place of
5 # a legal notice, here is a blessing:
6 #
7 # May you do good and not evil.
8 # May you find forgiveness for yourself and forgive others.
9 # May you share freely, never taking more than you give.
10 #
11 #***********************************************************************
12 #
13 # This file tests malloc failures in concert with fuzzy SQL generation.
14 #
15 # $Id: fuzz_malloc.test,v 1.10 2008/08/20 16:35:10 drh Exp $
16
17 set testdir [file dirname $argv0]
18 source $testdir/tester.tcl
19
20 ifcapable !memdebug {
21 finish_test
22 return
23 }
24
25 source $testdir/malloc_common.tcl
26 source $testdir/fuzz_common.tcl
27
28 if {[info exists G(isquick)]} {
29 set ::REPEATS 20
30 } elseif {[info exists G(issoak)]} {
31 set ::REPEATS 100
32 } else {
33 set ::REPEATS 40
34 }
35
36 #
37 # Usage: do_fuzzy_malloc_test <testname> ?<options>?
38 #
39 # -template
40 # -sqlprep
41 # -repeats
42 #
43 proc do_fuzzy_malloc_test {testname args} {
44 set ::fuzzyopts(-repeats) $::REPEATS
45 set ::fuzzyopts(-sqlprep) {}
46 array set ::fuzzyopts $args
47
48 sqlite3_memdebug_fail -1
49 db close
50 file delete test.db test.db-journal
51 sqlite3 db test.db
52 set ::prep $::fuzzyopts(-sqlprep)
53 execsql $::prep
54 set jj 0
55 for {set ii 0} {$ii < $::fuzzyopts(-repeats)} {incr ii} {
56 expr srand($jj)
57 incr jj
58 set ::sql [subst $::fuzzyopts(-template)]
59 # puts fuzyy-sql=\[$::sql\]; flush stdout
60 foreach {rc res} [catchsql "$::sql"] {}
61 if {$rc==0} {
62 do_malloc_test $testname-$ii -sqlbody $::sql -sqlprep $::prep
63 } else {
64 incr ii -1
65 }
66 }
67 }
68
69 #----------------------------------------------------------------
70 # Test malloc failure during parsing (and execution) of a fuzzily
71 # generated expressions.
72 #
73 do_fuzzy_malloc_test fuzzy_malloc-1 -template {Select [Expr]}
74 do_fuzzy_malloc_test fuzzy_malloc-2 -template {[Select]}
75
76 set ::SQLPREP {
77 BEGIN;
78 CREATE TABLE abc(a, b, c);
79 CREATE TABLE def(a, b, c);
80 CREATE TABLE ghi(a, b, c);
81 INSERT INTO abc VALUES(1.5, 3, 'a short string');
82 INSERT INTO def VALUES(NULL, X'ABCDEF',
83 'a longer string. Long enough that it doesn''t fit in Mem.zShort');
84 INSERT INTO ghi VALUES(zeroblob(1000), 'hello world', -1257900987654321);
85 COMMIT;
86 }
87 set ::TableList [list abc def ghi]
88 set ::ColumnList [list a b c]
89
90 do_fuzzy_malloc_test fuzzy_malloc-3 \
91 -template {[Select]} \
92 -sqlprep $::SQLPREP
93
94 finish_test
OLDNEW
« no previous file with comments | « third_party/sqlite/src/test/fuzz_common.tcl ('k') | third_party/sqlite/src/test/fuzzer1.test » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698