]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Test coverage improvements. Over 90% of branches are now executed in
authordrh <drh@noemail.net>
Fri, 6 Apr 2007 02:32:33 +0000 (02:32 +0000)
committerdrh <drh@noemail.net>
Fri, 6 Apr 2007 02:32:33 +0000 (02:32 +0000)
both directions. (CVS 3820)

FossilOrigin-Name: a776d93ccae3bfa6e992cdd1387571dd21561f98

manifest
manifest.uuid
src/date.c
src/util.c
test/alter.test
test/date.test
test/expr.test

index 4c485aa2c53fa13433b8c1459635b51d3945794e..fcc44a6328b756b9b6a8baa3f5d9461de039f987 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Changes\sto\sincrease\stest\scoverage.\s(CVS\s3819)
-D 2007-04-06T01:04:40
+C Test\scoverage\simprovements.\s\sOver\s90%\sof\sbranches\sare\snow\sexecuted\sin\nboth\sdirections.\s(CVS\s3820)
+D 2007-04-06T02:32:34
 F Makefile.in a9bd493360a2b17e5214b69d8c32dd6cdaceaf55
 F Makefile.linux-gcc 2d8574d1ba75f129aba2019f0b959db380a90935
 F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028
@@ -63,7 +63,7 @@ F src/btree.h 9b2cc0d113c0bc2d37d244b9a394d56948c9acbf
 F src/build.c 7c2efa468f0c404ef5aa648d43c383318390937f
 F src/callback.c 31d22b4919c7645cbcbb1591ce2453e8c677c558
 F src/complete.c 7d1a44be8f37de125fcafd3d3a018690b3799675
-F src/date.c c4930ef6afc2e9de12d51f800a8f750fac5ddb42
+F src/date.c 74b76691bddf58b634f6bf4a77c8c58234268c6e
 F src/delete.c 151d08386bf9c9e7f92f6b9106c71efec2def184
 F src/experimental.c 1b2d1a6cd62ecc39610e97670332ca073c50792b
 F src/expr.c a8740c24af3f39f2d502be1a1c640c96435eaac0
@@ -121,7 +121,7 @@ F src/tokenize.c bb1732ef2b6fc2143f93ff28a45d3dcb04c1d396
 F src/trigger.c b3c22b727049fceb96efa5f9f7d325fd853acc22
 F src/update.c 3359041db390a8f856d67272f299600e2104f350
 F src/utf.c e64a48bc21aa973eb622dd47da87d56a4cdcf528
-F src/util.c 0102b6257c94b0a3734fb613a4c0ffd16f73ef2a
+F src/util.c b6344325378e75b9e18175d8b6aed1723d73dad9
 F src/vacuum.c 8bd895d29e7074e78d4e80f948e35ddc9cf2beef
 F src/vdbe.c 87e31f0790ac8a5aad7b7fcd5b97948943fccba3
 F src/vdbe.h 0025259af1939fb264a545816c69e4b5b8d52691
@@ -135,7 +135,7 @@ F src/where.c fce0dad6b230eb7ea844e8b8667c074d07e3fdd5
 F tclinstaller.tcl 046e3624671962dc50f0481d7c25b38ef803eb42
 F test/aggerror.test a867e273ef9e3d7919f03ef4f0e8c0d2767944f2
 F test/all.test 6a03095322e93427a3677ce5daaa20f45640d1f0
-F test/alter.test a2cc30e844cb3b5d203416962f56f78fc11b1978
+F test/alter.test 6a956625399c83392671da690f44257a4ccf058b
 F test/alter2.test 33fb74e0470455ed6903f8d6e63256c7402cebb1
 F test/alter3.test a6eec8f454be9b6ce73d8d7dc711453675a10ce7
 F test/altermalloc.test 19323e0f452834044c27a54c6e78554d706de7ba
@@ -188,7 +188,7 @@ F test/corrupt2.test 572f8df0303d0ce63ddad5c5c9101a83a345ae46
 F test/crash.test 167eb4652eccbedb199b6f21850346c3f5d779fb
 F test/crash2.test ccc7d5f202aeadc3c13003829e6bb6561129f419
 F test/crashtest1.c 09c1c7d728ccf4feb9e481671e29dda5669bbcc2
-F test/date.test bc3c390d55744649c086d5a090a1b5f00eab10a9
+F test/date.test 09786cf0145147014867d822224b9bced2012b61
 F test/default.test 252298e42a680146b1dd64f563b95bdf088d94fb
 F test/delete.test 525a6953bc3978780cae35f3eaf1027cf4ce887d
 F test/delete2.test c06be3806ba804bc8c6f134476816080280b40e3
@@ -204,7 +204,7 @@ F test/enc3.test 890508efff6677345e93bf2a8adb0489b30df030
 F test/exclusive.test 6748eb0539c4652d596971584c50200729e57dbe
 F test/exclusive2.test 8d580e5bb8d49fde59fe1142543b7da081f28d06
 F test/exclusive3.test 0e49c35b7e7cb8e7280b4ce3f0359d30b207d2ff
-F test/expr.test c78843f730ccbe973d0c2ad1c99978f936893131
+F test/expr.test ab21e2fc3613595131efd7d8bbca4b95ed5cc608
 F test/fkey1.test 153004438d51e6769fb1ce165f6313972d6263ce
 F test/format4.test bf3bed3b13c63abfb3cfec232597a319a31d0bcc
 F test/fts1a.test 46090311f85da51bb33bd5ce84f7948359c6d8d7
@@ -451,7 +451,7 @@ F www/tclsqlite.tcl bb0d1357328a42b1993d78573e587c6dcbc964b9
 F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0
 F www/version3.tcl 890248cf7b70e60c383b0e84d77d5132b3ead42b
 F www/whentouse.tcl 97e2b5cd296f7d8057e11f44427dea8a4c2db513
-P bebf8d2f886ed9fe1b96e4cb11ab3de2f2f7d2c8
-R 25d3c5591ddd0c4ab2f7e78f9cd27746
+P fd4da6b13499af2397d52cb0f25f8ff6f2192431
+R 5a55920740a7f85f192df0463d983c9f
 U drh
-Z 0b6a3c115517eee9d157a43932195b4f
+Z 452d3f0ac4ca6ed1e1c77157a1d42b7d
index 421f5379bb9a43f9e53f8c43cd5ce7733a6b0cf8..c4f58a468439472752872adee20aa206f3d88bf3 100644 (file)
@@ -1 +1 @@
-fd4da6b13499af2397d52cb0f25f8ff6f2192431
\ No newline at end of file
+a776d93ccae3bfa6e992cdd1387571dd21561f98
\ No newline at end of file
index f7fdf0d92a471ec2641bf8334958128ef4dc5123..3625fe5c724bd322e9ea7d44d8c6d4727f1396bf 100644 (file)
@@ -16,7 +16,7 @@
 ** sqlite3RegisterDateTimeFunctions() found at the bottom of the file.
 ** All other code has file scope.
 **
-** $Id: date.c,v 1.61 2007/03/29 17:57:21 drh Exp $
+** $Id: date.c,v 1.62 2007/04/06 02:32:34 drh Exp $
 **
 ** NOTES:
 **
@@ -577,7 +577,7 @@ static int parseModifier(const char *zMod, DateTime *p){
     case '8':
     case '9': {
       n = getValue(z, &r);
-      if( n<=0 ) break;
+      assert( n>=1 );
       if( z[n]==':' ){
         /* A modifier of the form (+|-)HH:MM:SS.FFF adds (or subtracts) the
         ** specified number of hours, minutes, seconds, and fractional seconds
index 54d1d504f7b0a2c570a7225718fdda1a8fc9cca8..b83fd94725eca76e94ca5feefea021f679805e42 100644 (file)
@@ -14,7 +14,7 @@
 ** This file contains functions for allocating memory, comparing
 ** strings, and stuff like that.
 **
-** $Id: util.c,v 1.198 2007/03/31 22:33:48 drh Exp $
+** $Id: util.c,v 1.199 2007/04/06 02:32:34 drh Exp $
 */
 #include "sqliteInt.h"
 #include "os.h"
@@ -751,7 +751,7 @@ void sqlite3SetString(char **pz, ...){
   const char *z;
   char *zResult;
 
-  if( pz==0 ) return;
+  assert( pz!=0 );
   nByte = 1;
   va_start(ap, pz);
   while( (z = va_arg(ap, const char*))!=0 ){
index 2eb944cb27e539986d68ced6602cfde12c8f5bd3..3ddd5769ce0ce51343f2624120ad68d46c2083fa 100644 (file)
@@ -11,7 +11,7 @@
 # This file implements regression tests for SQLite library.  The
 # focus of this script is testing the ALTER TABLE statement.
 #
-# $Id: alter.test,v 1.18 2007/02/24 11:52:55 drh Exp $
+# $Id: alter.test,v 1.19 2007/04/06 02:32:34 drh Exp $
 #
 
 set testdir [file dirname $argv0]
@@ -625,10 +625,11 @@ do_test alter-7.1 {
   execsql {
     CREATE TABLE t1(a TEXT COLLATE BINARY);
     ALTER TABLE t1 ADD COLUMN b INTEGER COLLATE NOCASE;
-    INSERT INTO t1 VALUES(1,'2');
+    INSERT INTO t1 VALUES(1,'-2');
+    INSERT INTO t1 VALUES(5.4e-8,'5.4e-8');
     SELECT typeof(a), a, typeof(b), b FROM t1;
   }
-} {text 1 integer 2}
+} {text 1 integer -2 text 5.4e-8 real 5.4e-08}
 
 # Make sure that when a column is added by ALTER TABLE ADD COLUMN and has
 # a default value that the default value is used by aggregate functions.
index 07f620b247eb7d34241d68d8a181719f309581b9..50798ccb1da08d0db434958184685f61b06074a4 100644 (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.20 2007/03/29 17:57:21 drh Exp $
+# $Id: date.test,v 1.21 2007/04/06 02:32:35 drh Exp $
 
 set testdir [file dirname $argv0]
 source $testdir/tester.tcl
@@ -61,11 +61,21 @@ 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 1.28 {julianday('2001-00-01')} NULL
+datetest 1.29 {julianday('2001-01-00')} NULL
 
 datetest 2.1 datetime(0,'unixepoch') {1970-01-01 00:00:00}
+datetest 2.1b datetime(0,'unixepoc') NULL
+datetest 2.1c datetime(0,'unixepochx') NULL
+datetest 2.1d datetime('2003-10-22','unixepoch') NULL
 datetest 2.2 datetime(946684800,'unixepoch') {2000-01-01 00:00:00}
 datetest 2.3 {date('2003-10-22','weekday 0')} 2003-10-26
 datetest 2.4 {date('2003-10-22','weekday 1')} 2003-10-27
+datetest 2.4a {date('2003-10-22','weekday  1')} 2003-10-27
+datetest 2.4b {date('2003-10-22','weekday  1x')} 2003-10-27
+datetest 2.4c {date('2003-10-22','weekday  -1')} NULL
+datetest 2.4d {date('2003-10-22','weakday  1x')} NULL
+datetest 2.4e {date('2003-10-22','weekday ')} NULL
 datetest 2.5 {date('2003-10-22','weekday 2')} 2003-10-28
 datetest 2.6 {date('2003-10-22','weekday 3')} 2003-10-22
 datetest 2.7 {date('2003-10-22','weekday 4')} 2003-10-23
@@ -80,6 +90,8 @@ datetest 2.14 {datetime('2003-10-22 12:34','start of year')} \
    {2003-01-01 00:00:00}
 datetest 2.15 {datetime('2003-10-22 12:34','start of day')} \
    {2003-10-22 00:00:00}
+datetest 2.15a {datetime('2003-10-22 12:34','start of')} NULL
+datetest 2.15b {datetime('2003-10-22 12:34','start of bogus')} NULL
 datetest 2.16 time('12:34:56.43') 12:34:56
 datetest 2.17 {datetime('2003-10-22 12:34','1 day')} {2003-10-23 12:34:00}
 datetest 2.18 {datetime('2003-10-22 12:34','+1 day')} {2003-10-23 12:34:00}
@@ -97,6 +109,17 @@ datetest 2.27 {datetime('2003-10-22 12:34','-1.25 hours')} \
 datetest 2.28 {datetime('2003-10-22 12:34','11.25 seconds')} \
   {2003-10-22 12:34:11}
 datetest 2.29 {datetime('2003-10-22 12:24','+5 bogus')} NULL
+datetest 2.30 {datetime('2003-10-22 12:24','+++')} NULL
+datetest 2.31 {datetime('2003-10-22 12:24','+12.3e4 femtoseconds')} NULL
+datetest 2.32 {datetime('2003-10-22 12:24','+12.3e4 uS')} NULL
+datetest 2.33 {datetime('2003-10-22 12:24','+1 abc')} NULL
+datetest 2.34 {datetime('2003-10-22 12:24','+1 abcd')} NULL
+datetest 2.35 {datetime('2003-10-22 12:24','+1 abcde')} NULL
+datetest 2.36 {datetime('2003-10-22 12:24','+1 abcdef')} NULL
+datetest 2.37 {datetime('2003-10-22 12:24','+1 abcdefg')} NULL
+datetest 2.38 {datetime('2003-10-22 12:24','+1 abcdefgh')} NULL
+datetest 2.39 {datetime('2003-10-22 12:24','+1 abcdefghi')} NULL
+datetest 2.40 {datetime()} NULL
 
 
 datetest 3.1 {strftime('%d','2003-10-31 12:34:56.432')} 31
@@ -165,6 +188,8 @@ 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
+datetest 5.4 {datetime('1994-04-16 14:00:00 -11:55  ')} {1994-04-17 01:55:00}
+datetest 5.4 {datetime('1994-04-16 14:00:00 -11:55 x')} 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
@@ -204,6 +229,8 @@ if {$tzoffset==4} {
   set sqlite_current_time \
      [db eval {SELECT strftime('%s','2000-07-01 12:34:56')}]
   datetest 6.16 {datetime('now','localtime')} {2000-07-01 08:34:56}
+  datetest 6.17 {datetime('now','localtimex')} NULL
+  datetest 6.18 {datetime('now','localtim')} NULL
   set sqlite_current_time 0
 }
 
@@ -250,6 +277,7 @@ datetest 8.16 {datetime('now','-5 years')} {1998-10-22 12:34:00}
 datetest 8.17 {datetime('now','+10.5 minutes')} {2003-10-22 12:44:30}
 datetest 8.18 {datetime('now','-1.25 hours')} {2003-10-22 11:19:00}
 datetest 8.19 {datetime('now','11.25 seconds')} {2003-10-22 12:34:11}
+datetest 8.90 {datetime('now','abcdefghijklmnopqrstuvwyxzABCDEFGHIJLMNOP')} NULL
 set sqlite_current_time 0
 
 # Negative years work.  Example:  '-4713-11-26' is JD 1.5.
index 7137a1ae659b3f47a6f0d868461a37bac03bd97e..66fba604160050beeb1afad3aa579e2d765e472c 100644 (file)
@@ -11,7 +11,7 @@
 # This file implements regression tests for SQLite library.  The
 # focus of this file is testing expressions.
 #
-# $Id: expr.test,v 1.52 2006/09/01 15:49:06 drh Exp $
+# $Id: expr.test,v 1.53 2007/04/06 02:32:35 drh Exp $
 
 set testdir [file dirname $argv0]
 source $testdir/tester.tcl
@@ -637,6 +637,9 @@ do_test expr-11.1 {
 do_test expr-11.2 {
   execsql {SELECT typeof(9223372036854775808)}
 } {real}
+do_test expr-11.3 {
+  execsql {SELECT typeof(92233720368547758070)}
+} {real}
 
 # These two statements used to leak memory (because of missing %destructor
 # directives in parse.y).