OLD | NEW |
1 # 2007 May 10 | 1 # 2007 May 10 |
2 # | 2 # |
3 # The author disclaims copyright to this source code. In place of | 3 # The author disclaims copyright to this source code. In place of |
4 # a legal notice, here is a blessing: | 4 # a legal notice, here is a blessing: |
5 # | 5 # |
6 # May you do good and not evil. | 6 # May you do good and not evil. |
7 # May you find forgiveness for yourself and forgive others. | 7 # May you find forgiveness for yourself and forgive others. |
8 # May you share freely, never taking more than you give. | 8 # May you share freely, never taking more than you give. |
9 # | 9 # |
10 #*********************************************************************** | 10 #*********************************************************************** |
11 # This file implements regression tests for SQLite library. The | 11 # This file implements regression tests for SQLite library. The |
12 # focus of this file is generating semi-random strings of SQL | 12 # focus of this file is generating semi-random strings of SQL |
13 # (a.k.a. "fuzz") and sending it into the parser to try to | 13 # (a.k.a. "fuzz") and sending it into the parser to try to |
14 # generate errors. | 14 # generate errors. |
15 # | 15 # |
16 # The tests in this file are really about testing fuzzily generated | 16 # The tests in this file are really about testing fuzzily generated |
17 # SQL parse-trees. The majority of the fuzzily generated SQL is | 17 # SQL parse-trees. The majority of the fuzzily generated SQL is |
18 # valid as far as the parser is concerned. | 18 # valid as far as the parser is concerned. |
19 # | 19 # |
20 # The most complicated trees are for SELECT statements. | 20 # The most complicated trees are for SELECT statements. |
21 # | 21 # |
22 # $Id: fuzz.test,v 1.19 2009/04/28 11:10:39 danielk1977 Exp $ | 22 # $Id: fuzz.test,v 1.19 2009/04/28 11:10:39 danielk1977 Exp $ |
23 | 23 |
24 set testdir [file dirname $argv0] | 24 set testdir [file dirname $argv0] |
25 source $testdir/tester.tcl | 25 source $testdir/tester.tcl |
26 | 26 |
27 set ::REPEATS 5000 | 27 set ::REPEATS 5000 |
28 | 28 |
29 # If running quick.test, don't do so many iterations. | 29 # If running quick.test, don't do so many iterations. |
30 if {[info exists ::ISQUICK]} { | 30 if {[info exists ::G(isquick)]} { |
31 if {$::ISQUICK} { set ::REPEATS 20 } | 31 if {$::G(isquick)} { set ::REPEATS 20 } |
32 } | 32 } |
33 | 33 |
34 source $testdir/fuzz_common.tcl | 34 source $testdir/fuzz_common.tcl |
35 expr srand(0) | 35 expr srand(0) |
36 | 36 |
37 #---------------------------------------------------------------- | 37 #---------------------------------------------------------------- |
38 # These tests caused errors that were first caught by the tests | 38 # These tests caused errors that were first caught by the tests |
39 # in this file. They are still here. | 39 # in this file. They are still here. |
40 do_test fuzz-1.1 { | 40 do_test fuzz-1.1 { |
41 execsql { | 41 execsql { |
(...skipping 328 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
370 integrity_check fuzz-7.5.integrity | 370 integrity_check fuzz-7.5.integrity |
371 | 371 |
372 #---------------------------------------------------------------- | 372 #---------------------------------------------------------------- |
373 # Many CREATE and DROP TABLE statements: | 373 # Many CREATE and DROP TABLE statements: |
374 # | 374 # |
375 set E [list table duplicate {no such col} {ambiguous column name} {use DROP}] | 375 set E [list table duplicate {no such col} {ambiguous column name} {use DROP}] |
376 do_fuzzy_test fuzz-8.1 -template {[CreateOrDropTableOrView]} -errorlist $E | 376 do_fuzzy_test fuzz-8.1 -template {[CreateOrDropTableOrView]} -errorlist $E |
377 | 377 |
378 close $::log | 378 close $::log |
379 finish_test | 379 finish_test |
OLD | NEW |