1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-07-29 08:01:23 +03:00

Test coverage improvements. (CVS 2215)

FossilOrigin-Name: 92f9d2b2f480fccfa6e8b70a1d19058b92a4ea8f
This commit is contained in:
drh
2005-01-15 01:52:31 +00:00
parent 8b07c7178a
commit 018d1a4929
8 changed files with 68 additions and 40 deletions

View File

@ -1,5 +1,5 @@
C Improved\stest\scoverage\sfor\supdate.c.\s(CVS\s2214)
D 2005-01-15T00:40:43
C Test\scoverage\simprovements.\s(CVS\s2215)
D 2005-01-15T01:52:32
F Makefile.in 6ce51dde6a8fe82fc12f20dec750572f6a19f56a
F Makefile.linux-gcc a9e5a0d309fa7c38e7c14d3ecf7690879d3a5457
F README a01693e454a00cc117967e3f9fdab2d4d52e9bc1
@ -33,9 +33,9 @@ F src/btree.c 01027e3c1b9f53f17eec964da2a3e45d253b2b87
F src/btree.h 74d19cf40ab49fd69abe9e4e12a6c321ad86c497
F src/build.c af1296e8a21a406b4f4c4f1e1365e075071219f3
F src/cursor.c f883813759742068890b1f699335872bfa8fdf41
F src/date.c 65536e7ea04fdde6e0551264fca15966966e171f
F src/date.c f3d1f5cd1503dabf426a198f3ebef5afbc122a7f
F src/delete.c 32277d2834e36c7538c047f14d643751c256c73b
F src/expr.c ecfc8fd972e73650708e1109f97b1c5a785e0a0e
F src/expr.c 22bc51e18b2e686f3c831d33b2c38b5a3e6733f9
F src/func.c dc188d862d7276ea897655b248e2cb17022686e3
F src/hash.c a97721a55440b7bea31ffe471bb2f6b4123cddd5
F src/hash.h 1b0c445e1c89ff2aaad9b4605ba61375af001e84
@ -59,7 +59,7 @@ F src/parse.y ceba179b9703657180963568f54b0e75f33e36e1
F src/pragma.c ac594f74c90ffec043c43e49358719ffeb491eec
F src/printf.c 3d20b21cfecadacecac3fb7274e746cb81d3d357
F src/random.c eff68e3f257e05e81eae6c4d50a51eb88beb4ff3
F src/select.c af6ffcf0201f8f4e2697eea25689077dc61c6109
F src/select.c e29c70ec5f5dbb66c6bf8ca3ab3b41cbb8daa41b
F src/shell.c 591364a0e9ca4ce53873e21e0294476c0c2b4770
F src/sqlite.h.in 0d5e48e506845b74a845c9470e01d3f472b59611
F src/sqliteInt.h 641b348a109a080262d9f3603f2e94143d4383f2
@ -120,7 +120,7 @@ F test/corrupt2.test cb1f813df7559de3021e01170af0bba31507a9a5
F test/crash.test b87f2c2fe6a05c46c8832bb077e131bb4b507a8d
F test/crashtest1.c 09c1c7d728ccf4feb9e481671e29dda5669bbcc2
F test/cursor.test d7c65ea0fc4e321e12fbcf5c7f3e2211ef45379b
F test/date.test dda578ec1857837156bd8b32f8e09d81d7d7881c
F test/date.test ef6c679d0b59502457dbd78ee1c3c085c949c4c4
F test/delete.test fc29491f6a7ac899ce29f4549a104809e245d9a6
F test/delete2.test e382b6a97787197eb8b93dd4ccd37797c3725ea3
F test/diskfull.test e2f6cfd868713ead06dc82b84a4938e868128fc0
@ -146,7 +146,7 @@ F test/join3.test 67dc0d7c8dab3fff25796d0f3c3fd9c999aeded3
F test/join4.test 8dec387d06b3a4685e1104048065cf5236b99b93
F test/lastinsert.test b6a1db3e1ce2d3f0d6afe99d445084f543b6feaa
F test/laststmtchanges.test 07cbdabc52407c29e40abc25050f2434f044a6b1
F test/limit.test 0225cadf96f199566b6d1ae7b5642492878ec45a
F test/limit.test f509165de59637fa4725981e2f65eca0e1299a9d
F test/lock.test a19aab9a963273fe61c1058e3d1b648d6a0a2425
F test/lock2.test 59c3dd7d9b24d1bf7ec91b2d1541c37e97939d5f
F test/lock3.test 615111293cf32aa2ed16d01c6611737651c96fb9
@ -175,7 +175,7 @@ F test/reindex.test 3552c6b944a3fab28cfd3049c04c65cb79419757
F test/rollback.test 94cd981ee3a627d9f6466f69dcf1f7dbfe695d7a
F test/rowid.test 1ce3f1520d2082b0363e7d9bdef904cb72b9efe8
F test/safety.test 907b64fee719554a3622853812af3886fddbbb4f
F test/select1.test 524d4323f3921db16138f8b1765f1cc44e030bf4
F test/select1.test 2b08187aff4685231aec312e7776a5894eefd9e8
F test/select2.test 91a2225926039b0d1687840735c284dbbf89f0bc
F test/select3.test 9de435aa84fc406708cd8dc1b1d60e7f27cea685
F test/select4.test 1ae6f2bd6177d4428df8644eb95d09f4568fb149
@ -269,7 +269,7 @@ F www/tclsqlite.tcl e73f8f8e5f20e8277619433f7970060ab01088fc
F www/vdbe.tcl 095f106d93875c94b47367384ebc870517431618
F www/version3.tcl 092a01f5ef430d2c4acc0ae558d74c4bb89638a0
F www/whentouse.tcl c3b50d3ac31c54be2a1af9b488a89d22f1e6e746
P 997d8afff9b316aef4c5e2127c2207758ff4a703
R f72aab18ccb7f1e272e72a0b220a767c
P 3ef95d5fe98e7451f8b87b3f5259163f3e7d0289
R 0dac24ab9c449997916f810d80271d4c
U drh
Z 1ce583b41471899cabfc5a365dbcd8c6
Z 1f96a701f8d82044d6c8d59082332ad8

View File

@ -1 +1 @@
3ef95d5fe98e7451f8b87b3f5259163f3e7d0289
92f9d2b2f480fccfa6e8b70a1d19058b92a4ea8f

View File

@ -16,7 +16,7 @@
** sqlite3RegisterDateTimeFunctions() found at the bottom of the file.
** All other code has file scope.
**
** $Id: date.c,v 1.42 2004/11/14 21:56:30 drh Exp $
** $Id: date.c,v 1.43 2005/01/15 01:52:32 drh Exp $
**
** NOTES:
**
@ -315,12 +315,10 @@ static int parseDateOrTime(const char *zDate, DateTime *p){
return 0;
}else if( sqlite3StrICmp(zDate,"now")==0){
double r;
if( sqlite3OsCurrentTime(&r)==0 ){
sqlite3OsCurrentTime(&r);
p->rJD = r;
p->validJD = 1;
return 0;
}
return 1;
}else if( sqlite3IsNumber(zDate, 0, SQLITE_UTF8) ){
p->rJD = sqlite3AtoF(zDate, 0);
p->validJD = 1;

View File

@ -12,7 +12,7 @@
** This file contains routines used for analyzing expressions and
** for generating VDBE code that evaluates expressions in SQLite.
**
** $Id: expr.c,v 1.177 2005/01/13 02:14:25 danielk1977 Exp $
** $Id: expr.c,v 1.178 2005/01/15 01:52:32 drh Exp $
*/
#include "sqliteInt.h"
#include <ctype.h>
@ -614,16 +614,6 @@ int sqlite3ExprIsInteger(Expr *p, int *pValue){
}
break;
}
case TK_STRING: {
const u8 *z = (u8*)p->token.z;
int n = p->token.n;
if( n>0 && z[0]=='-' ){ z++; n--; }
while( n>0 && *z && isdigit(*z) ){ z++; n--; }
if( n==0 && sqlite3GetInt32(p->token.z, pValue) ){
return 1;
}
break;
}
case TK_UPLUS: {
return sqlite3ExprIsInteger(p->pLeft, pValue);
}

View File

@ -12,7 +12,7 @@
** This file contains C code routines that are called by the parser
** to handle SELECT statements in SQLite.
**
** $Id: select.c,v 1.220 2005/01/03 02:26:55 drh Exp $
** $Id: select.c,v 1.221 2005/01/15 01:52:32 drh Exp $
*/
#include "sqliteInt.h"
@ -670,14 +670,18 @@ static const char *columnType(Parse *pParse, SrcList *pTabList, Expr *pExpr){
}
break;
}
case TK_AS:
zType = columnType(pParse, pTabList, pExpr->pLeft);
break;
case TK_SELECT: {
Select *pS = pExpr->pSelect;
zType = columnType(pParse, pS->pSrc, pS->pEList->a[0].pExpr);
break;
}
case TK_AS:
/* The TK_AS operator can only occur in ORDER BY, GROUP BY, HAVING,
** and LIMIT clauses. But pExpr originates in the result set of a
** SELECT. So pExpr can never contain an AS operator.
*/
assert( 0 );
/* Fall thru */
default:
zType = 0;
}

View File

@ -11,7 +11,7 @@
# This file implements regression tests for SQLite library. The
# focus of this file is testing date and time functions.
#
# $Id: date.test,v 1.11 2004/10/31 02:22:50 drh Exp $
# $Id: date.test,v 1.12 2005/01/15 01:52:33 drh Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl
@ -55,6 +55,8 @@ datetest 1.22 {julianday('2000-01-01 12:00:00.')} NULL
datetest 1.23 julianday(12345.6) 12345.6
datetest 1.24 {julianday('2001-01-01 12:00:00 bogus')} NULL
datetest 1.25 {julianday('2001-01-01 bogus')} NULL
datetest 1.26 {julianday('2001-01-01 12:60:00')} NULL
datetest 1.27 {julianday('2001-01-01 12:59:60')} NULL
datetest 2.1 datetime(0,'unixepoch') {1970-01-01 00:00:00}
datetest 2.2 datetime(946684800,'unixepoch') {2000-01-01 00:00:00}
@ -140,6 +142,7 @@ datetest 5.1 {datetime('1994-04-16 14:00:00 -05:00')} {1994-04-16 09:00:00}
datetest 5.2 {datetime('1994-04-16 14:00:00 +05:15')} {1994-04-16 19:15:00}
datetest 5.3 {datetime('1994-04-16 05:00:00 -08:30')} {1994-04-15 20:30:00}
datetest 5.4 {datetime('1994-04-16 14:00:00 +11:55')} {1994-04-17 01:55:00}
datetest 5.5 {datetime('1994-04-16 14:00:00 +11:60')} NULL
# localtime->utc and utc->localtime conversions. These tests only work
# if the localtime is in the US Eastern Time (the time in Charlotte, NC
@ -258,6 +261,7 @@ datetest 11.8 {datetime('2004-02-28 20:00:00', '11:59')} \
{2004-02-29 07:59:00}
datetest 11.9 {datetime('2004-02-28 20:00:00', '12:01')} \
{2004-02-29 08:01:00}
datetest 11.10 {datetime('2004-02-28 20:00:00', '12:60')} NULL

View File

@ -12,7 +12,7 @@
# focus of this file is testing the LIMIT ... OFFSET ... clause
# of SELECT statements.
#
# $Id: limit.test,v 1.19 2004/12/16 21:09:18 drh Exp $
# $Id: limit.test,v 1.20 2005/01/15 01:52:33 drh Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl
@ -348,5 +348,12 @@ do_test limit-9.4 {
LIMIT 2
}
} {1 2}
do_test limit-9.5 {
catchsql {
SELECT * FROM t6 LIMIT 3
UNION
SELECT * FROM t7 LIMIT 3
}
} {1 {LIMIT clause should come after UNION not before}}
finish_test

View File

@ -11,7 +11,7 @@
# This file implements regression tests for SQLite library. The
# focus of this file is testing the SELECT statement.
#
# $Id: select1.test,v 1.37 2004/11/22 13:35:42 danielk1977 Exp $
# $Id: select1.test,v 1.38 2005/01/15 01:52:33 drh Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl
@ -291,11 +291,26 @@ do_test select1-4.6 {
SELECT f1 FROM test1 ORDER BY '8.4';
}
} {1 {ORDER BY terms must not be non-integer constants}}
do_test select1-4.7 {
do_test select1-4.7.1 {
catchsql {
SELECT f1 FROM test1 ORDER BY 'xyz';
}
} {1 {ORDER BY terms must not be non-integer constants}}
do_test select1-4.7.2 {
catchsql {
SELECT f1 FROM test1 ORDER BY -8.4;
}
} {1 {ORDER BY terms must not be non-integer constants}}
do_test select1-4.7.3 {
catchsql {
SELECT f1 FROM test1 ORDER BY +8.4;
}
} {1 {ORDER BY terms must not be non-integer constants}}
do_test select1-4.7.4 {
catchsql {
SELECT f1 FROM test1 ORDER BY 4294967296; -- constant larger than 32 bits
}
} {1 {ORDER BY terms must not be non-integer constants}}
do_test select1-4.8 {
execsql {
CREATE TABLE t5(a,b);
@ -304,16 +319,26 @@ do_test select1-4.8 {
SELECT * FROM t5 ORDER BY 1;
}
} {1 10 2 9}
do_test select1-4.9 {
do_test select1-4.9.1 {
execsql {
SELECT * FROM t5 ORDER BY 2;
}
} {2 9 1 10}
do_test select1-4.10 {
do_test select1-4.9.2 {
execsql {
SELECT * FROM t5 ORDER BY +2;
}
} {2 9 1 10}
do_test select1-4.10.1 {
catchsql {
SELECT * FROM t5 ORDER BY 3;
}
} {1 {ORDER BY column number 3 out of range - should be between 1 and 2}}
do_test select1-4.10.2 {
catchsql {
SELECT * FROM t5 ORDER BY -1;
}
} {1 {ORDER BY column number -1 out of range - should be between 1 and 2}}
do_test select1-4.11 {
execsql {
INSERT INTO t5 VALUES(3,10);