mirror of
https://github.com/sqlite/sqlite.git
synced 2026-01-06 08:01:16 +03:00
Fix a bug in the RTRIM collating sequence discovered while working
on condition/decision branch coverage. Increase test coverage of the date/time functions. (CVS 5010) FossilOrigin-Name: c5435f71efa0b34c759bac4a15fdf43abf39ddfc
This commit is contained in:
@@ -13,7 +13,7 @@
|
||||
# focus of this script is the built-in RTRIM collating
|
||||
# API.
|
||||
#
|
||||
# $Id: collateA.test,v 1.2 2008/01/21 16:47:16 drh Exp $
|
||||
# $Id: collateA.test,v 1.3 2008/04/15 04:02:41 drh Exp $
|
||||
|
||||
set testdir [file dirname $argv0]
|
||||
source $testdir/tester.tcl
|
||||
@@ -25,18 +25,20 @@ do_test collateA-1.1 {
|
||||
b TEXT COLLATE BINARY,
|
||||
c TEXT COLLATE RTRIM
|
||||
);
|
||||
INSERT INTO t1 VALUES(1, 'hello','hello');
|
||||
INSERT INTO t1 VALUES(1, 'abcde','abcde');
|
||||
INSERT INTO t1 VALUES(2, 'xyzzy ','xyzzy ');
|
||||
INSERT INTO t1 VALUES(3, 'xyzzy ','xyzzy ');
|
||||
INSERT INTO t1 VALUES(4, 'xyzzy ','xyzzy ');
|
||||
INSERT INTO t1 VALUES(5, ' ', ' ');
|
||||
INSERT INTO t1 VALUES(6, '', '');
|
||||
SELECT count(*) FROM t1;
|
||||
}
|
||||
} {4}
|
||||
} {6}
|
||||
do_test collateA-1.2 {
|
||||
execsql {SELECT a FROM t1 WHERE b='hello '}
|
||||
execsql {SELECT a FROM t1 WHERE b='abcde '}
|
||||
} {}
|
||||
do_test collateA-1.3 {
|
||||
execsql {SELECT a FROM t1 WHERE c='hello '}
|
||||
execsql {SELECT a FROM t1 WHERE c='abcde '}
|
||||
} {1}
|
||||
do_test collateA-1.4 {
|
||||
execsql {SELECT a FROM t1 WHERE b='xyzzy'}
|
||||
@@ -77,6 +79,36 @@ do_test collateA-1.15 {
|
||||
do_test collateA-1.16 {
|
||||
execsql {SELECT ''<>' ' COLLATE RTRIM, ''<>' ' COLLATE BINARY, ''<>' '}
|
||||
} {0 1 1}
|
||||
do_test collateA-1.17 {
|
||||
execsql {SELECT a FROM t1 WHERE c='xyzz'}
|
||||
} {}
|
||||
do_test collateA-1.18 {
|
||||
execsql {SELECT a FROM t1 WHERE c='xyzzyy '}
|
||||
} {}
|
||||
do_test collateA-1.19 {
|
||||
execsql {SELECT a FROM t1 WHERE c='xyzz '}
|
||||
} {}
|
||||
do_test collateA-1.20 {
|
||||
execsql {SELECT a FROM t1 WHERE c='abcd '}
|
||||
} {}
|
||||
do_test collateA-1.21 {
|
||||
execsql {SELECT a FROM t1 WHERE c='abcd'}
|
||||
} {}
|
||||
do_test collateA-1.22 {
|
||||
execsql {SELECT a FROM t1 WHERE c='abc'}
|
||||
} {}
|
||||
do_test collateA-1.23 {
|
||||
execsql {SELECT a FROM t1 WHERE c='abcdef '}
|
||||
} {}
|
||||
do_test collateA-1.24 {
|
||||
execsql {SELECT a FROM t1 WHERE c=''}
|
||||
} {5 6}
|
||||
do_test collateA-1.25 {
|
||||
execsql {SELECT a FROM t1 WHERE c=' '}
|
||||
} {5 6}
|
||||
do_test collateA-1.26 {
|
||||
execsql {SELECT a FROM t1 WHERE c=' '}
|
||||
} {5 6}
|
||||
|
||||
|
||||
do_test collateA-2.1 {
|
||||
@@ -87,10 +119,10 @@ do_test collateA-2.1 {
|
||||
}
|
||||
} {ok}
|
||||
do_test collateA-2.2 {
|
||||
execsql {SELECT a FROM t1 WHERE b='hello '}
|
||||
execsql {SELECT a FROM t1 WHERE b='abcde '}
|
||||
} {}
|
||||
do_test collateA-2.3 {
|
||||
execsql {SELECT a FROM t1 WHERE c='hello '}
|
||||
execsql {SELECT a FROM t1 WHERE c='abcde '}
|
||||
} {1}
|
||||
do_test collateA-2.4 {
|
||||
execsql {SELECT a FROM t1 WHERE b='xyzzy'}
|
||||
@@ -113,6 +145,37 @@ do_test collateA-2.9 {
|
||||
do_test collateA-2.10 {
|
||||
execsql {SELECT a FROM t1 WHERE c='xyzzy '}
|
||||
} {2 3 4}
|
||||
do_test collateA-2.17 {
|
||||
execsql {SELECT a FROM t1 WHERE c='xyzz'}
|
||||
} {}
|
||||
do_test collateA-2.18 {
|
||||
execsql {SELECT a FROM t1 WHERE c='xyzzyy '}
|
||||
} {}
|
||||
do_test collateA-2.19 {
|
||||
execsql {SELECT a FROM t1 WHERE c='xyzz '}
|
||||
} {}
|
||||
do_test collateA-2.20 {
|
||||
execsql {SELECT a FROM t1 WHERE c='abcd '}
|
||||
} {}
|
||||
do_test collateA-2.21 {
|
||||
execsql {SELECT a FROM t1 WHERE c='abcd'}
|
||||
} {}
|
||||
do_test collateA-2.22 {
|
||||
execsql {SELECT a FROM t1 WHERE c='abc'}
|
||||
} {}
|
||||
do_test collateA-2.23 {
|
||||
execsql {SELECT a FROM t1 WHERE c='abcdef '}
|
||||
} {}
|
||||
do_test collateA-2.24 {
|
||||
execsql {SELECT a FROM t1 WHERE c=''}
|
||||
} {5 6}
|
||||
do_test collateA-2.25 {
|
||||
execsql {SELECT a FROM t1 WHERE c=' '}
|
||||
} {5 6}
|
||||
do_test collateA-2.26 {
|
||||
execsql {SELECT a FROM t1 WHERE c=' '}
|
||||
} {5 6}
|
||||
|
||||
|
||||
do_test collateA-3.1 {
|
||||
db close
|
||||
@@ -123,10 +186,10 @@ do_test collateA-3.1 {
|
||||
}
|
||||
} {ok}
|
||||
do_test collateA-3.2 {
|
||||
execsql {SELECT a FROM t1 WHERE b='hello '}
|
||||
execsql {SELECT a FROM t1 WHERE b='abcde '}
|
||||
} {}
|
||||
do_test collateA-3.3 {
|
||||
execsql {SELECT a FROM t1 WHERE c='hello '}
|
||||
execsql {SELECT a FROM t1 WHERE c='abcde '}
|
||||
} {1}
|
||||
do_test collateA-3.4 {
|
||||
execsql {SELECT a FROM t1 WHERE b='xyzzy'}
|
||||
|
||||
@@ -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.25 2008/02/21 20:40:44 drh Exp $
|
||||
# $Id: date.test,v 1.26 2008/04/15 04:02:41 drh Exp $
|
||||
|
||||
set testdir [file dirname $argv0]
|
||||
source $testdir/tester.tcl
|
||||
@@ -122,10 +122,20 @@ datetest 2.39 {datetime('2003-10-22 12:24','+1 abcdefghi')} NULL
|
||||
set sqlite_current_time 1199243045
|
||||
datetest 2.40 {datetime()} {2008-01-02 03:04:05}
|
||||
set sqlite_current_time 0
|
||||
|
||||
datetest 2.41 {datetime('2003-10-22 12:24','23 seconds')} {2003-10-22 12:24:23}
|
||||
datetest 2.42 {datetime('2003-10-22 12:24','345 second')} {2003-10-22 12:29:45}
|
||||
datetest 2.43 {datetime('2003-10-22 12:24','4 second')} {2003-10-22 12:24:04}
|
||||
datetest 2.44 {datetime('2003-10-22 12:24','56 second')} {2003-10-22 12:24:56}
|
||||
datetest 2.45 {datetime('2003-10-22 12:24','60 second')} {2003-10-22 12:25:00}
|
||||
datetest 2.46 {datetime('2003-10-22 12:24','70 second')} {2003-10-22 12:25:10}
|
||||
datetest 2.47 {datetime('2003-10-22 12:24','8.6 seconds')} {2003-10-22 12:24:08}
|
||||
datetest 2.48 {datetime('2003-10-22 12:24','9.4 second')} {2003-10-22 12:24:09}
|
||||
datetest 2.49 {datetime('2003-10-22 12:24','0000 second')} {2003-10-22 12:24:00}
|
||||
datetest 2.50 {datetime('2003-10-22 12:24','0001 second')} {2003-10-22 12:24:01}
|
||||
datetest 2.51 {datetime('2003-10-22 12:24','nonsense')} NULL
|
||||
|
||||
datetest 3.1 {strftime('%d','2003-10-31 12:34:56.432')} 31
|
||||
datetest 3.2.1 {strftime('%f','2003-10-31 12:34:56.432')} 56.432
|
||||
datetest 3.2.1 {strftime('pre%fpost','2003-10-31 12:34:56.432')} pre56.432post
|
||||
datetest 3.2.2 {strftime('%f','2003-10-31 12:34:59.9999999')} 59.999
|
||||
datetest 3.3 {strftime('%H','2003-10-31 12:34:56.432')} 12
|
||||
datetest 3.4 {strftime('%j','2003-10-31 12:34:56.432')} 304
|
||||
@@ -139,7 +149,7 @@ datetest 3.11.1 {strftime('%W','2003-10-31 12:34:56.432')} 43
|
||||
datetest 3.11.2 {strftime('%W','2004-01-01')} 00
|
||||
datetest 3.11.3 {strftime('%W','2004-01-02')} 00
|
||||
datetest 3.11.4 {strftime('%W','2004-01-03')} 00
|
||||
datetest 3.11.5 {strftime('%W','2004-01-04')} 00
|
||||
datetest 3.11.5 {strftime('abc%Wxyz','2004-01-04')} abc00xyz
|
||||
datetest 3.11.6 {strftime('%W','2004-01-05')} 01
|
||||
datetest 3.11.7 {strftime('%W','2004-01-06')} 01
|
||||
datetest 3.11.8 {strftime('%W','2004-01-07')} 01
|
||||
@@ -176,6 +186,12 @@ datetest 3.16 "strftime('[repeat 200 %Y]','2003-10-31')" [repeat 200 2003]
|
||||
datetest 3.17 "strftime('[repeat 200 abc%m123]','2003-10-31')" \
|
||||
[repeat 200 abc10123]
|
||||
|
||||
foreach c {a b c e g h i k l n o p q r t v x y z
|
||||
A B C D E F G I K L N O P Q R T U V Z
|
||||
0 1 2 3 4 5 6 6 7 9 _} {
|
||||
datetest 3.18.$c "strftime('%$c','2003-10-31')" NULL
|
||||
}
|
||||
|
||||
# Ticket #2276. Make sure leading zeros are inserted where appropriate.
|
||||
#
|
||||
datetest 3.20 \
|
||||
|
||||
Reference in New Issue
Block a user