/ Hex Artifact Content
Login

Artifact a42fe2fe6387c40c49ab27ccbd070e1ae38e07f38d05926482cc0bccac9ad602:


0000: 23 20 32 30 31 34 20 4a 75 6e 65 20 31 37 0a 23  # 2014 June 17.#
0010: 0a 23 20 54 68 65 20 61 75 74 68 6f 72 20 64 69  .# The author di
0020: 73 63 6c 61 69 6d 73 20 63 6f 70 79 72 69 67 68  sclaims copyrigh
0030: 74 20 74 6f 20 74 68 69 73 20 73 6f 75 72 63 65  t to this source
0040: 20 63 6f 64 65 2e 20 20 49 6e 20 70 6c 61 63 65   code.  In place
0050: 20 6f 66 0a 23 20 61 20 6c 65 67 61 6c 20 6e 6f   of.# a legal no
0060: 74 69 63 65 2c 20 68 65 72 65 20 69 73 20 61 20  tice, here is a 
0070: 62 6c 65 73 73 69 6e 67 3a 0a 23 0a 23 20 20 20  blessing:.#.#   
0080: 20 4d 61 79 20 79 6f 75 20 64 6f 20 67 6f 6f 64   May you do good
0090: 20 61 6e 64 20 6e 6f 74 20 65 76 69 6c 2e 0a 23   and not evil..#
00a0: 20 20 20 20 4d 61 79 20 79 6f 75 20 66 69 6e 64      May you find
00b0: 20 66 6f 72 67 69 76 65 6e 65 73 73 20 66 6f 72   forgiveness for
00c0: 20 79 6f 75 72 73 65 6c 66 20 61 6e 64 20 66 6f   yourself and fo
00d0: 72 67 69 76 65 20 6f 74 68 65 72 73 2e 0a 23 20  rgive others..# 
00e0: 20 20 20 4d 61 79 20 79 6f 75 20 73 68 61 72 65     May you share
00f0: 20 66 72 65 65 6c 79 2c 20 6e 65 76 65 72 20 74   freely, never t
0100: 61 6b 69 6e 67 20 6d 6f 72 65 20 74 68 61 6e 20  aking more than 
0110: 79 6f 75 20 67 69 76 65 2e 0a 23 0a 23 2a 2a 2a  you give..#.#***
0120: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0130: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0140: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0150: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0160: 2a 2a 2a 2a 2a 2a 0a 23 20 54 68 69 73 20 66 69  ******.# This fi
0170: 6c 65 20 69 6d 70 6c 65 6d 65 6e 74 73 20 72 65  le implements re
0180: 67 72 65 73 73 69 6f 6e 20 74 65 73 74 73 20 66  gression tests f
0190: 6f 72 20 53 51 4c 69 74 65 20 6c 69 62 72 61 72  or SQLite librar
01a0: 79 2e 20 20 54 68 65 0a 23 20 66 6f 63 75 73 20  y.  The.# focus 
01b0: 6f 66 20 74 68 69 73 20 73 63 72 69 70 74 20 69  of this script i
01c0: 73 20 74 65 73 74 69 6e 67 20 74 68 65 20 46 54  s testing the FT
01d0: 53 35 20 6d 6f 64 75 6c 65 2e 0a 23 0a 0a 73 6f  S5 module..#..so
01e0: 75 72 63 65 20 5b 66 69 6c 65 20 6a 6f 69 6e 20  urce [file join 
01f0: 5b 66 69 6c 65 20 64 69 72 6e 61 6d 65 20 5b 69  [file dirname [i
0200: 6e 66 6f 20 73 63 72 69 70 74 5d 5d 20 66 74 73  nfo script]] fts
0210: 35 5f 63 6f 6d 6d 6f 6e 2e 74 63 6c 5d 0a 73 65  5_common.tcl].se
0220: 74 20 74 65 73 74 70 72 65 66 69 78 20 66 74 73  t testprefix fts
0230: 35 75 6d 6c 61 75 74 0a 0a 23 20 49 66 20 53 51  5umlaut..# If SQ
0240: 4c 49 54 45 5f 45 4e 41 42 4c 45 5f 46 54 53 35  LITE_ENABLE_FTS5
0250: 20 69 73 20 6e 6f 74 20 64 65 66 69 6e 65 64 2c   is not defined,
0260: 20 6f 6d 69 74 20 74 68 69 73 20 66 69 6c 65 2e   omit this file.
0270: 0a 69 66 63 61 70 61 62 6c 65 20 21 66 74 73 35  .ifcapable !fts5
0280: 20 7b 0a 20 20 66 69 6e 69 73 68 5f 74 65 73 74   {.  finish_test
0290: 0a 20 20 72 65 74 75 72 6e 0a 7d 0a 0a 64 6f 5f  .  return.}..do_
02a0: 65 78 65 63 73 71 6c 5f 74 65 73 74 20 31 2e 30  execsql_test 1.0
02b0: 20 7b 0a 20 20 43 52 45 41 54 45 20 56 49 52 54   {.  CREATE VIRT
02c0: 55 41 4c 20 54 41 42 4c 45 20 74 31 20 55 53 49  UAL TABLE t1 USI
02d0: 4e 47 20 66 74 73 35 28 78 29 3b 0a 20 20 43 52  NG fts5(x);.  CR
02e0: 45 41 54 45 20 56 49 52 54 55 41 4c 20 54 41 42  EATE VIRTUAL TAB
02f0: 4c 45 20 74 32 20 55 53 49 4e 47 20 66 74 73 35  LE t2 USING fts5
0300: 28 0a 20 20 20 20 20 20 78 2c 20 0a 20 20 20 20  (.      x, .    
0310: 20 20 74 6f 6b 65 6e 69 7a 65 3d 22 75 6e 69 63    tokenize="unic
0320: 6f 64 65 36 31 20 72 65 6d 6f 76 65 5f 64 69 61  ode61 remove_dia
0330: 63 72 69 74 69 63 73 20 32 22 0a 20 20 29 3b 0a  critics 2".  );.
0340: 7d 0a 0a 66 6f 72 65 61 63 68 20 7b 74 6e 20 71  }..foreach {tn q
0350: 20 72 65 73 31 20 72 65 73 32 7d 20 7b 0a 20 20   res1 res2} {.  
0360: 31 20 22 48 c3 a0 20 4e e1 bb 99 69 22 20 20 20  1 "H.. N...i"   
0370: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30                 0
0380: 20 31 0a 20 20 32 20 22 48 c3 a0 20 4e 6f 69 22   1.  2 "H.. Noi"
0390: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
03a0: 20 20 31 20 31 0a 20 20 33 20 22 48 61 20 4e 6f    1 1.  3 "Ha No
03b0: 69 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20  i"              
03c0: 20 20 20 20 31 20 31 0a 20 20 34 20 22 48 61 20      1 1.  4 "Ha 
03d0: 4e 5c 75 31 65 64 39 69 22 20 20 20 20 20 20 20  N\u1ed9i"       
03e0: 20 20 20 20 20 20 30 20 31 0a 20 20 35 20 22 48        0 1.  5 "H
03f0: 61 20 4e 5c 75 30 30 36 66 69 22 20 20 20 20 20  a N\u006fi"     
0400: 20 20 20 20 20 20 20 20 31 20 31 0a 20 20 36 20          1 1.  6 
0410: 22 48 61 20 4e 5c 75 30 30 36 66 5c 75 30 33 30  "Ha N\u006f\u030
0420: 32 69 22 20 20 20 20 20 20 20 31 20 31 0a 20 20  2i"       1 1.  
0430: 37 20 22 48 61 20 4e 5c 75 30 30 36 66 5c 75 30  7 "Ha N\u006f\u0
0440: 33 32 33 5c 75 30 33 30 32 69 22 20 31 20 31 0a  323\u0302i" 1 1.
0450: 7d 20 7b 0a 20 20 64 6f 5f 65 78 65 63 73 71 6c  } {.  do_execsql
0460: 5f 74 65 73 74 20 31 2e 24 74 6e 2e 31 20 7b 0a  _test 1.$tn.1 {.
0470: 20 20 20 20 44 45 4c 45 54 45 20 46 52 4f 4d 20      DELETE FROM 
0480: 74 31 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49  t1;.    INSERT I
0490: 4e 54 4f 20 74 31 28 72 6f 77 69 64 2c 20 78 29  NTO t1(rowid, x)
04a0: 20 56 41 4c 55 45 53 20 28 31 2c 20 27 48 61 20   VALUES (1, 'Ha 
04b0: 4e 6f 69 27 29 3b 0a 20 20 20 20 53 45 4c 45 43  Noi');.    SELEC
04c0: 54 20 63 6f 75 6e 74 28 2a 29 20 46 52 4f 4d 20  T count(*) FROM 
04d0: 74 31 28 24 71 29 0a 20 20 7d 20 24 72 65 73 31  t1($q).  } $res1
04e0: 0a 20 20 64 6f 5f 65 78 65 63 73 71 6c 5f 74 65  .  do_execsql_te
04f0: 73 74 20 31 2e 24 74 6e 2e 32 20 7b 0a 20 20 20  st 1.$tn.2 {.   
0500: 20 44 45 4c 45 54 45 20 46 52 4f 4d 20 74 31 3b   DELETE FROM t1;
0510: 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f  .    INSERT INTO
0520: 20 74 31 28 72 6f 77 69 64 2c 20 78 29 20 56 41   t1(rowid, x) VA
0530: 4c 55 45 53 20 28 31 2c 20 24 71 29 3b 0a 20 20  LUES (1, $q);.  
0540: 20 20 53 45 4c 45 43 54 20 63 6f 75 6e 74 28 2a    SELECT count(*
0550: 29 20 46 52 4f 4d 20 74 31 28 27 48 61 20 4e 6f  ) FROM t1('Ha No
0560: 69 27 29 0a 20 20 7d 20 24 72 65 73 31 0a 0a 20  i').  } $res1.. 
0570: 20 64 6f 5f 65 78 65 63 73 71 6c 5f 74 65 73 74   do_execsql_test
0580: 20 31 2e 24 74 6e 2e 32 20 7b 0a 20 20 20 20 44   1.$tn.2 {.    D
0590: 45 4c 45 54 45 20 46 52 4f 4d 20 74 32 3b 0a 20  ELETE FROM t2;. 
05a0: 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74     INSERT INTO t
05b0: 32 28 72 6f 77 69 64 2c 20 78 29 20 56 41 4c 55  2(rowid, x) VALU
05c0: 45 53 20 28 31 2c 20 27 48 61 20 4e 6f 69 27 29  ES (1, 'Ha Noi')
05d0: 3b 0a 20 20 20 20 53 45 4c 45 43 54 20 63 6f 75  ;.    SELECT cou
05e0: 6e 74 28 2a 29 20 46 52 4f 4d 20 74 32 28 24 71  nt(*) FROM t2($q
05f0: 29 0a 20 20 7d 20 24 72 65 73 32 0a 20 20 64 6f  ).  } $res2.  do
0600: 5f 65 78 65 63 73 71 6c 5f 74 65 73 74 20 31 2e  _execsql_test 1.
0610: 24 74 6e 2e 32 20 7b 0a 20 20 20 20 44 45 4c 45  $tn.2 {.    DELE
0620: 54 45 20 46 52 4f 4d 20 74 32 3b 0a 20 20 20 20  TE FROM t2;.    
0630: 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 32 28 72  INSERT INTO t2(r
0640: 6f 77 69 64 2c 20 78 29 20 56 41 4c 55 45 53 20  owid, x) VALUES 
0650: 28 31 2c 20 24 71 29 3b 0a 20 20 20 20 53 45 4c  (1, $q);.    SEL
0660: 45 43 54 20 63 6f 75 6e 74 28 2a 29 20 46 52 4f  ECT count(*) FRO
0670: 4d 20 74 32 28 27 48 61 20 4e 6f 69 27 29 0a 20  M t2('Ha Noi'). 
0680: 20 7d 20 24 72 65 73 32 0a 7d 0a 0a 66 69 6e 69   } $res2.}..fini
0690: 73 68 5f 74 65 73 74 0a 0a                       sh_test..