xref: /sqlite-3.40.0/test/analyzer1.test (revision d5704a89)
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