1d13b2319Sdrh# 2015-05-11 2d13b2319Sdrh# 3d13b2319Sdrh# The author disclaims copyright to this source code. In place of 4d13b2319Sdrh# a legal notice, here is a blessing: 5d13b2319Sdrh# 6d13b2319Sdrh# May you do good and not evil. 7d13b2319Sdrh# May you find forgiveness for yourself and forgive others. 8d13b2319Sdrh# May you share freely, never taking more than you give. 9d13b2319Sdrh# 10d13b2319Sdrh#*********************************************************************** 11d13b2319Sdrh# 12d13b2319Sdrh# Quick tests for the sqlite3_analyzer tool 13d13b2319Sdrh# 14d13b2319Sdrhset testdir [file dirname $argv0] 15d13b2319Sdrhsource $testdir/tester.tcl 166582ae52Sdrh 176582ae52Sdrhifcapable !vtab { 186582ae52Sdrh finish_test 196582ae52Sdrh return 206582ae52Sdrh} 216582ae52Sdrh 22d13b2319Sdrhif {$tcl_platform(platform)=="windows"} { 23d13b2319Sdrh set PROG "sqlite3_analyzer.exe" 24d13b2319Sdrh} else { 25d13b2319Sdrh set PROG "./sqlite3_analyzer" 26d13b2319Sdrh} 27905da63aSdrhif {![file exe $PROG]} { 28*d5704a89Sdrh set PROG [file normalize [file join $::cmdlinearg(TESTFIXTURE_HOME) $PROG]] 29*d5704a89Sdrh if {![file exe $PROG]} { 30905da63aSdrh puts "analyzer1 cannot run because $PROG is not available" 31905da63aSdrh finish_test 32905da63aSdrh return 33905da63aSdrh } 34*d5704a89Sdrh} 35d13b2319Sdrhdb close 36d13b2319Sdrhforcedelete test.db test.db-journal test.db-wal 37d13b2319Sdrhsqlite3 db test.db 38d13b2319Sdrh 39d13b2319Sdrhdo_test analyzer1-1.0 { 40d13b2319Sdrh db eval { 41d13b2319Sdrh CREATE TABLE t1(a INTEGER PRIMARY KEY, b); 42d13b2319Sdrh CREATE TABLE t2(a INT PRIMARY KEY, b) WITHOUT ROWID; 43d13b2319Sdrh WITH RECURSIVE c(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM c WHERE x<250) 44d13b2319Sdrh INSERT INTO t1(a,b) SELECT x, randomblob(200) FROM c; 45d13b2319Sdrh INSERT INTO t2(a,b) SELECT a, b FROM t1; 46d13b2319Sdrh } 47d13b2319Sdrh set line "exec $PROG test.db" 48d13b2319Sdrh unset -nocomplain ::MSG 49d13b2319Sdrh catch {eval $line} ::MSG 50d13b2319Sdrh} {0} 51d13b2319Sdrhdo_test analyzer1-1.1 { 52d13b2319Sdrh regexp {^/\*\* Disk-Space Utilization.*COMMIT;\W*$} $::MSG 53d13b2319Sdrh} {1} 548906b7dbSdrh 558906b7dbSdrhfinish_test 56