| 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 |