Changes to test scripts to support running on symbian. (CVS 5714)

FossilOrigin-Name: 6ef34e9d3118965781c69011deaede1ebbb19b12
This commit is contained in:
danielk1977
2008-09-17 16:14:10 +00:00
parent e598bb4639
commit 89bae3ed7a
4 changed files with 123 additions and 44 deletions
+102 -33
View File
@@ -18,14 +18,13 @@
# correctly generate 0.0, +Inf, and -Inf as appropriate for numbers
# out of range.
#
# $Id: nan.test,v 1.3 2008/05/11 11:07:07 drh Exp $
# $Id: nan.test,v 1.4 2008/09/17 16:14:10 danielk1977 Exp $
#
set testdir [file dirname $argv0]
source $testdir/tester.tcl
do_test nan-1.1 {
do_test nan-1.1.1 {
db eval {
PRAGMA auto_vacuum=OFF;
PRAGMA page_size=1024;
@@ -37,40 +36,95 @@ do_test nan-1.1 {
sqlite3_reset $::STMT
db eval {SELECT x, typeof(x) FROM t1}
} {{} null}
do_test nan-1.2 {
if {$tcl_platform(platform) != "symbian"} {
do_test nan-1.1.2 {
sqlite3_bind_double $::STMT 1 +Inf
sqlite3_step $::STMT
sqlite3_reset $::STMT
db eval {SELECT x, typeof(x) FROM t1}
} {{} null inf real}
do_test nan-1.1.3 {
sqlite3_bind_double $::STMT 1 -Inf
sqlite3_step $::STMT
sqlite3_reset $::STMT
db eval {SELECT x, typeof(x) FROM t1}
} {{} null inf real -inf real}
do_test nan-1.1.4 {
sqlite3_bind_double $::STMT 1 -NaN
sqlite3_step $::STMT
sqlite3_reset $::STMT
db eval {SELECT x, typeof(x) FROM t1}
} {{} null inf real -inf real {} null}
do_test nan-1.1.5 {
sqlite3_bind_double $::STMT 1 NaN0
sqlite3_step $::STMT
sqlite3_reset $::STMT
db eval {SELECT x, typeof(x) FROM t1}
} {{} null inf real -inf real {} null {} null}
do_test nan-1.1.5 {
sqlite3_bind_double $::STMT 1 -NaN0
sqlite3_step $::STMT
sqlite3_reset $::STMT
db eval {SELECT x, typeof(x) FROM t1}
} {{} null inf real -inf real {} null {} null {} null}
do_test nan-1.1.6 {
db eval {
UPDATE t1 SET x=x-x;
SELECT x, typeof(x) FROM t1;
}
} {{} null {} null {} null {} null {} null {} null}
}
# The following block of tests, nan-1.2.*, are the same as the nan-1.1.*
# tests above, except that the SELECT queries used to validate data
# convert floating point values to text internally before returning them
# to Tcl. This allows the tests to be run on platforms where Tcl has
# problems converting "inf" and "-inf" from floating point to text format.
# It also tests the internal float->text conversion routines a bit.
#
do_test nan-1.2.1 {
db eval {
DELETE FROM T1;
}
sqlite3_bind_double $::STMT 1 NaN
sqlite3_step $::STMT
sqlite3_reset $::STMT
db eval {SELECT CAST(x AS text), typeof(x) FROM t1}
} {{} null}
do_test nan-1.2.2 {
sqlite3_bind_double $::STMT 1 +Inf
sqlite3_step $::STMT
sqlite3_reset $::STMT
db eval {SELECT x, typeof(x) FROM t1}
} {{} null inf real}
do_test nan-1.3 {
db eval {SELECT CAST(x AS text), typeof(x) FROM t1}
} {{} null Inf real}
do_test nan-1.2.3 {
sqlite3_bind_double $::STMT 1 -Inf
sqlite3_step $::STMT
sqlite3_reset $::STMT
db eval {SELECT x, typeof(x) FROM t1}
} {{} null inf real -inf real}
do_test nan-1.4 {
db eval {SELECT CAST(x AS text), typeof(x) FROM t1}
} {{} null Inf real -Inf real}
do_test nan-1.2.4 {
sqlite3_bind_double $::STMT 1 -NaN
sqlite3_step $::STMT
sqlite3_reset $::STMT
db eval {SELECT x, typeof(x) FROM t1}
} {{} null inf real -inf real {} null}
do_test nan-1.5 {
db eval {SELECT CAST(x AS text), typeof(x) FROM t1}
} {{} null Inf real -Inf real {} null}
do_test nan-1.2.5 {
sqlite3_bind_double $::STMT 1 NaN0
sqlite3_step $::STMT
sqlite3_reset $::STMT
db eval {SELECT x, typeof(x) FROM t1}
} {{} null inf real -inf real {} null {} null}
do_test nan-1.5 {
db eval {SELECT CAST(x AS text), typeof(x) FROM t1}
} {{} null Inf real -Inf real {} null {} null}
do_test nan-1.2.5 {
sqlite3_bind_double $::STMT 1 -NaN0
sqlite3_step $::STMT
sqlite3_reset $::STMT
db eval {SELECT x, typeof(x) FROM t1}
} {{} null inf real -inf real {} null {} null {} null}
do_test nan-1.6 {
db eval {SELECT CAST(x AS text), typeof(x) FROM t1}
} {{} null Inf real -Inf real {} null {} null {} null}
do_test nan-1.2.6 {
db eval {
UPDATE t1 SET x=x-x;
SELECT x, typeof(x) FROM t1;
SELECT CAST(x AS text), typeof(x) FROM t1;
}
} {{} null {} null {} null {} null {} null {} null}
@@ -146,38 +200,53 @@ do_test nan-4.2 {
db eval {SELECT x, typeof(x) FROM t1}
} {1e+308 real}
do_test nan-4.3 {
db eval {DELETE FROM t1}
db eval "INSERT INTO t1 VALUES([string repeat 9 309].0)"
db eval {SELECT x, typeof(x) FROM t1}
} {inf real}
do_test nan-4.4 {
db eval {DELETE FROM t1}
db eval "INSERT INTO t1 VALUES(-[string repeat 9 307].0)"
db eval {SELECT x, typeof(x) FROM t1}
} {-1e+307 real}
do_test nan-4.5 {
do_test nan-4.4 {
db eval {DELETE FROM t1}
db eval "INSERT INTO t1 VALUES(-[string repeat 9 308].0)"
db eval {SELECT x, typeof(x) FROM t1}
} {-1e+308 real}
do_test nan-4.6 {
db eval {DELETE FROM t1}
db eval "INSERT INTO t1 VALUES(-[string repeat 9 309].0)"
db eval {SELECT x, typeof(x) FROM t1}
} {-inf real}
do_test nan-4.7 {
do_test nan-4.5 {
db eval {DELETE FROM t1}
set big -[string repeat 0 10000][string repeat 9 308].[string repeat 0 10000]
db eval "INSERT INTO t1 VALUES($big)"
db eval {SELECT x, typeof(x) FROM t1}
} {-1e+308 real}
do_test nan-4.8 {
do_test nan-4.6 {
db eval {DELETE FROM t1}
set big [string repeat 0 10000][string repeat 9 308].[string repeat 0 10000]
db eval "INSERT INTO t1 VALUES($big)"
db eval {SELECT x, typeof(x) FROM t1}
} {1e+308 real}
if {$tcl_platform(platform) != "symbian"} {
# Do not run these tests on Symbian, as the Tcl port doesn't like to
# convert from floating point value "-inf" to a string.
#
do_test nan-4.7 {
db eval {DELETE FROM t1}
db eval "INSERT INTO t1 VALUES([string repeat 9 309].0)"
db eval {SELECT x, typeof(x) FROM t1}
} {inf real}
do_test nan-4.8 {
db eval {DELETE FROM t1}
db eval "INSERT INTO t1 VALUES(-[string repeat 9 309].0)"
db eval {SELECT x, typeof(x) FROM t1}
} {-inf real}
}
do_test nan-4.9 {
db eval {DELETE FROM t1}
db eval "INSERT INTO t1 VALUES([string repeat 9 309].0)"
db eval {SELECT CAST(x AS text), typeof(x) FROM t1}
} {Inf real}
do_test nan-4.10 {
db eval {DELETE FROM t1}
db eval "INSERT INTO t1 VALUES(-[string repeat 9 309].0)"
db eval {SELECT CAST(x AS text), typeof(x) FROM t1}
} {-Inf real}
do_test nan-4.10 {
db eval {DELETE FROM t1}
+13 -3
View File
@@ -13,6 +13,7 @@
# This file implements tests to make sure abusively large triggers
# (triggers with 100s or 1000s of statements) work.
#
# $Id: trigger8.test,v 1.2 2008/09/17 16:14:10 danielk1977 Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl
@@ -21,14 +22,23 @@ ifcapable {!trigger} {
return
}
# Set variable $nStatement to the number of statements to include in the
# body of the trigger. On a workstation with virtually unlimited memory,
# use 10000. But on symbian, which allows each application at most a 32MB
# heap, use 1000.
#
set nStatement 10000
if {$tcl_platform(platform) == "symbian"} {
set nStatement 1000
}
do_test trigger8-1.1 {
execsql {
CREATE TABLE t1(x);
CREATE TABLE t2(y);
}
set sql "CREATE TRIGGER r10000 AFTER INSERT ON t1 BEGIN\n"
for {set i 0} {$i<10000} {incr i} {
set sql "CREATE TRIGGER r${nStatement} AFTER INSERT ON t1 BEGIN\n"
for {set i 0} {$i<$nStatement} {incr i} {
append sql " INSERT INTO t2 VALUES($i);\n"
}
append sql "END;"
@@ -37,6 +47,6 @@ do_test trigger8-1.1 {
INSERT INTO t1 VALUES(5);
SELECT count(*) FROM t2;
}
} {10000}
} $nStatement
finish_test