System.Data.SQLite
Hex Artifact Content
Not logged in

Artifact 49acfe74e9b92a6cdd1587465acd58e65cef7362:


0000: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0010: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0020: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0030: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0040: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 0d  ###############.
0050: 0a 23 0d 0a 23 20 74 6b 74 2d 31 63 34 35 36 61  .#..# tkt-1c456a
0060: 65 37 35 66 2e 65 61 67 6c 65 20 2d 2d 0d 0a 23  e75f.eagle --..#
0070: 0d 0a 23 20 57 72 69 74 74 65 6e 20 62 79 20 4a  ..# Written by J
0080: 6f 65 20 4d 69 73 74 61 63 68 6b 69 6e 2e 0d 0a  oe Mistachkin...
0090: 23 20 52 65 6c 65 61 73 65 64 20 74 6f 20 74 68  # Released to th
00a0: 65 20 70 75 62 6c 69 63 20 64 6f 6d 61 69 6e 2c  e public domain,
00b0: 20 75 73 65 20 61 74 20 79 6f 75 72 20 6f 77 6e   use at your own
00c0: 20 72 69 73 6b 21 0d 0a 23 0d 0a 23 23 23 23 23   risk!..#..#####
00d0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
00e0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
00f0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0100: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0110: 23 23 23 23 23 23 23 23 23 23 0d 0a 0d 0a 70 61  ##########....pa
0120: 63 6b 61 67 65 20 72 65 71 75 69 72 65 20 45 61  ckage require Ea
0130: 67 6c 65 0d 0a 70 61 63 6b 61 67 65 20 72 65 71  gle..package req
0140: 75 69 72 65 20 45 61 67 6c 65 2e 4c 69 62 72 61  uire Eagle.Libra
0150: 72 79 0d 0a 70 61 63 6b 61 67 65 20 72 65 71 75  ry..package requ
0160: 69 72 65 20 45 61 67 6c 65 2e 54 65 73 74 0d 0a  ire Eagle.Test..
0170: 0d 0a 72 75 6e 54 65 73 74 50 72 6f 6c 6f 67 75  ..runTestPrologu
0180: 65 0d 0a 0d 0a 23 23 23 23 23 23 23 23 23 23 23  e....###########
0190: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
01a0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
01b0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
01c0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
01d0: 23 23 23 23 0d 0a 0d 0a 70 61 63 6b 61 67 65 20  ####....package 
01e0: 72 65 71 75 69 72 65 20 53 79 73 74 65 6d 2e 44  require System.D
01f0: 61 74 61 2e 53 51 4c 69 74 65 2e 54 65 73 74 0d  ata.SQLite.Test.
0200: 0a 72 75 6e 53 51 4c 69 74 65 54 65 73 74 50 72  .runSQLiteTestPr
0210: 6f 6c 6f 67 75 65 0d 0a 0d 0a 23 23 23 23 23 23  ologue....######
0220: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0230: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0240: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0250: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0260: 23 23 23 23 23 23 23 23 23 0d 0a 0d 0a 72 75 6e  #########....run
0270: 54 65 73 74 20 7b 74 65 73 74 20 74 6b 74 2d 31  Test {test tkt-1
0280: 63 34 35 36 61 65 37 35 66 2d 31 2e 31 20 7b 75  c456ae75f-1.1 {u
0290: 6e 65 6e 63 72 79 70 74 65 64 20 64 61 74 61 62  nencrypted datab
02a0: 61 73 65 2c 20 68 65 78 20 70 61 73 73 77 6f 72  ase, hex passwor
02b0: 64 7d 20 2d 73 65 74 75 70 20 7b 0d 0a 20 20 73  d} -setup {..  s
02c0: 65 74 75 70 44 62 20 5b 73 65 74 20 66 69 6c 65  etupDb [set file
02d0: 4e 61 6d 65 20 74 6b 74 2d 31 63 34 35 36 61 65  Name tkt-1c456ae
02e0: 37 35 66 2d 31 2e 31 2e 64 62 5d 0d 0a 7d 20 2d  75f-1.1.db]..} -
02f0: 62 6f 64 79 20 7b 0d 0a 20 20 73 71 6c 20 65 78  body {..  sql ex
0300: 65 63 75 74 65 20 24 64 62 20 22 43 52 45 41 54  ecute $db "CREAT
0310: 45 20 54 41 42 4c 45 20 74 31 28 78 29 3b 22 0d  E TABLE t1(x);".
0320: 0a 20 20 73 71 6c 20 65 78 65 63 75 74 65 20 24  .  sql execute $
0330: 64 62 20 22 49 4e 53 45 52 54 20 49 4e 54 4f 20  db "INSERT INTO 
0340: 74 31 20 28 78 29 20 56 41 4c 55 45 53 28 31 29  t1 (x) VALUES(1)
0350: 3b 22 0d 0a 0d 0a 20 20 63 6c 65 61 6e 75 70 44  ;"....  cleanupD
0360: 62 20 24 66 69 6c 65 4e 61 6d 65 20 64 62 20 74  b $fileName db t
0370: 72 75 65 20 66 61 6c 73 65 20 66 61 6c 73 65 0d  rue false false.
0380: 0a 20 20 73 65 74 75 70 44 62 20 24 66 69 6c 65  .  setupDb $file
0390: 4e 61 6d 65 20 22 22 20 22 22 20 22 22 20 22 22  Name "" "" "" ""
03a0: 20 22 48 65 78 50 61 73 73 77 6f 72 64 3d 33 31   "HexPassword=31
03b0: 33 32 33 33 33 34 33 35 3b 22 20 74 72 75 65 20  32333435;" true 
03c0: 66 61 6c 73 65 0d 0a 0d 0a 20 20 73 65 74 20 72  false....  set r
03d0: 65 73 75 6c 74 20 5b 6c 69 73 74 5d 0d 0a 0d 0a  esult [list]....
03e0: 20 20 6c 61 70 70 65 6e 64 20 72 65 73 75 6c 74    lappend result
03f0: 20 5b 63 61 74 63 68 20 7b 73 71 6c 20 65 78 65   [catch {sql exe
0400: 63 75 74 65 20 2d 65 78 65 63 75 74 65 20 73 63  cute -execute sc
0410: 61 6c 61 72 20 24 64 62 20 5c 0d 0a 20 20 20 20  alar $db \..    
0420: 20 20 22 53 45 4c 45 43 54 20 43 4f 55 4e 54 28    "SELECT COUNT(
0430: 2a 29 20 46 52 4f 4d 20 74 31 3b 22 7d 20 65 72  *) FROM t1;"} er
0440: 72 6f 72 5d 20 5c 0d 0a 20 20 20 20 20 20 5b 65  ror] \..      [e
0450: 78 74 72 61 63 74 53 79 73 74 65 6d 44 61 74 61  xtractSystemData
0460: 53 51 4c 69 74 65 45 78 63 65 70 74 69 6f 6e 4d  SQLiteExceptionM
0470: 65 73 73 61 67 65 20 24 65 72 72 6f 72 5d 0d 0a  essage $error]..
0480: 0d 0a 20 20 6c 61 70 70 65 6e 64 20 72 65 73 75  ..  lappend resu
0490: 6c 74 20 5b 63 61 74 63 68 20 7b 73 71 6c 20 65  lt [catch {sql e
04a0: 78 65 63 75 74 65 20 24 64 62 20 5c 0d 0a 20 20  xecute $db \..  
04b0: 20 20 20 20 22 49 4e 53 45 52 54 20 49 4e 54 4f      "INSERT INTO
04c0: 20 74 31 20 28 78 29 20 56 41 4c 55 45 53 28 31   t1 (x) VALUES(1
04d0: 29 3b 22 7d 20 65 72 72 6f 72 5d 20 5c 0d 0a 20  );"} error] \.. 
04e0: 20 20 20 20 20 5b 65 78 74 72 61 63 74 53 79 73       [extractSys
04f0: 74 65 6d 44 61 74 61 53 51 4c 69 74 65 45 78 63  temDataSQLiteExc
0500: 65 70 74 69 6f 6e 4d 65 73 73 61 67 65 20 24 65  eptionMessage $e
0510: 72 72 6f 72 5d 0d 0a 0d 0a 20 20 63 6c 65 61 6e  rror]....  clean
0520: 75 70 44 62 20 24 66 69 6c 65 4e 61 6d 65 20 64  upDb $fileName d
0530: 62 20 74 72 75 65 20 66 61 6c 73 65 20 66 61 6c  b true false fal
0540: 73 65 0d 0a 20 20 73 65 74 75 70 44 62 20 24 66  se..  setupDb $f
0550: 69 6c 65 4e 61 6d 65 20 22 22 20 22 22 20 22 22  ileName "" "" ""
0560: 20 22 22 20 22 22 20 74 72 75 65 20 66 61 6c 73   "" "" true fals
0570: 65 0d 0a 0d 0a 20 20 6c 61 70 70 65 6e 64 20 72  e....  lappend r
0580: 65 73 75 6c 74 20 5b 63 61 74 63 68 20 7b 73 71  esult [catch {sq
0590: 6c 20 65 78 65 63 75 74 65 20 24 64 62 20 5c 0d  l execute $db \.
05a0: 0a 20 20 20 20 20 20 22 49 4e 53 45 52 54 20 49  .      "INSERT I
05b0: 4e 54 4f 20 74 31 20 28 78 29 20 56 41 4c 55 45  NTO t1 (x) VALUE
05c0: 53 28 31 29 3b 22 7d 20 65 72 72 6f 72 5d 20 5c  S(1);"} error] \
05d0: 0d 0a 20 20 20 20 20 20 5b 65 78 74 72 61 63 74  ..      [extract
05e0: 53 79 73 74 65 6d 44 61 74 61 53 51 4c 69 74 65  SystemDataSQLite
05f0: 45 78 63 65 70 74 69 6f 6e 4d 65 73 73 61 67 65  ExceptionMessage
0600: 20 24 65 72 72 6f 72 5d 0d 0a 0d 0a 20 20 6c 61   $error]....  la
0610: 70 70 65 6e 64 20 72 65 73 75 6c 74 20 5b 63 61  ppend result [ca
0620: 74 63 68 20 7b 73 71 6c 20 65 78 65 63 75 74 65  tch {sql execute
0630: 20 2d 65 78 65 63 75 74 65 20 73 63 61 6c 61 72   -execute scalar
0640: 20 24 64 62 20 5c 0d 0a 20 20 20 20 20 20 22 53   $db \..      "S
0650: 45 4c 45 43 54 20 43 4f 55 4e 54 28 2a 29 20 46  ELECT COUNT(*) F
0660: 52 4f 4d 20 74 31 3b 22 7d 20 65 72 72 6f 72 5d  ROM t1;"} error]
0670: 20 5c 0d 0a 20 20 20 20 20 20 5b 65 78 74 72 61   \..      [extra
0680: 63 74 53 79 73 74 65 6d 44 61 74 61 53 51 4c 69  ctSystemDataSQLi
0690: 74 65 45 78 63 65 70 74 69 6f 6e 4d 65 73 73 61  teExceptionMessa
06a0: 67 65 20 24 65 72 72 6f 72 5d 0d 0a 0d 0a 20 20  ge $error]....  
06b0: 73 65 74 20 72 65 73 75 6c 74 0d 0a 7d 20 2d 63  set result..} -c
06c0: 6c 65 61 6e 75 70 20 7b 0d 0a 20 20 63 6c 65 61  leanup {..  clea
06d0: 6e 75 70 44 62 20 24 66 69 6c 65 4e 61 6d 65 0d  nupDb $fileName.
06e0: 0a 0d 0a 20 20 75 6e 73 65 74 20 2d 6e 6f 63 6f  ...  unset -noco
06f0: 6d 70 6c 61 69 6e 20 65 72 72 6f 72 20 72 65 73  mplain error res
0700: 75 6c 74 20 64 62 20 66 69 6c 65 4e 61 6d 65 0d  ult db fileName.
0710: 0a 7d 20 2d 63 6f 6e 73 74 72 61 69 6e 74 73 20  .} -constraints 
0720: 7b 65 61 67 6c 65 20 53 79 73 74 65 6d 2e 44 61  {eagle System.Da
0730: 74 61 2e 53 51 4c 69 74 65 2e 45 6e 63 72 79 70  ta.SQLite.Encryp
0740: 74 69 6f 6e 20 6d 6f 6e 6f 42 75 67 32 38 20 63  tion monoBug28 c
0750: 6f 6d 6d 61 6e 64 2e 73 71 6c 5c 0d 0a 63 6f 6d  ommand.sql\..com
0760: 70 69 6c 65 2e 44 41 54 41 20 53 51 4c 69 74 65  pile.DATA SQLite
0770: 20 53 79 73 74 65 6d 2e 44 61 74 61 2e 53 51 4c   System.Data.SQL
0780: 69 74 65 7d 20 2d 72 65 73 75 6c 74 20 7b 31 20  ite} -result {1 
0790: 7b 66 69 6c 65 20 69 73 20 6e 6f 74 20 61 20 64  {file is not a d
07a0: 61 74 61 62 61 73 65 7d 20 31 5c 0d 0a 7b 66 69  atabase} 1\..{fi
07b0: 6c 65 20 69 73 20 6e 6f 74 20 61 20 64 61 74 61  le is not a data
07c0: 62 61 73 65 7d 20 30 20 31 20 30 20 32 7d 7d 0d  base} 0 1 0 2}}.
07d0: 0a 0d 0a 23 23 23 23 23 23 23 23 23 23 23 23 23  ...#############
07e0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
07f0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0800: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0810: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0820: 23 23 0d 0a 0d 0a 72 75 6e 54 65 73 74 20 7b 74  ##....runTest {t
0830: 65 73 74 20 74 6b 74 2d 31 63 34 35 36 61 65 37  est tkt-1c456ae7
0840: 35 66 2d 31 2e 32 20 7b 64 61 74 61 62 61 73 65  5f-1.2 {database
0850: 2c 20 68 65 78 20 70 61 73 73 77 6f 72 64 7d 20  , hex password} 
0860: 2d 73 65 74 75 70 20 7b 0d 0a 20 20 73 65 74 75  -setup {..  setu
0870: 70 44 62 20 5b 73 65 74 20 66 69 6c 65 4e 61 6d  pDb [set fileNam
0880: 65 20 74 6b 74 2d 31 63 34 35 36 61 65 37 35 66  e tkt-1c456ae75f
0890: 2d 31 2e 32 2e 64 62 5d 20 22 22 20 22 22 20 22  -1.2.db] "" "" "
08a0: 22 20 22 22 20 5c 0d 0a 20 20 20 20 20 20 22 48  " "" \..      "H
08b0: 65 78 50 61 73 73 77 6f 72 64 3d 33 31 33 32 33  exPassword=31323
08c0: 33 33 34 33 35 3b 22 0d 0a 7d 20 2d 62 6f 64 79  33435;"..} -body
08d0: 20 7b 0d 0a 20 20 73 71 6c 20 65 78 65 63 75 74   {..  sql execut
08e0: 65 20 24 64 62 20 22 43 52 45 41 54 45 20 54 41  e $db "CREATE TA
08f0: 42 4c 45 20 74 31 28 78 29 3b 22 0d 0a 20 20 73  BLE t1(x);"..  s
0900: 71 6c 20 65 78 65 63 75 74 65 20 24 64 62 20 22  ql execute $db "
0910: 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 31 20 28  INSERT INTO t1 (
0920: 78 29 20 56 41 4c 55 45 53 28 31 29 3b 22 0d 0a  x) VALUES(1);"..
0930: 0d 0a 20 20 63 6c 65 61 6e 75 70 44 62 20 24 66  ..  cleanupDb $f
0940: 69 6c 65 4e 61 6d 65 20 64 62 20 74 72 75 65 20  ileName db true 
0950: 66 61 6c 73 65 20 66 61 6c 73 65 0d 0a 20 20 73  false false..  s
0960: 65 74 75 70 44 62 20 24 66 69 6c 65 4e 61 6d 65  etupDb $fileName
0970: 20 22 22 20 22 22 20 22 22 20 22 22 20 22 50 61   "" "" "" "" "Pa
0980: 73 73 77 6f 72 64 3d 31 32 33 34 35 3b 22 20 74  ssword=12345;" t
0990: 72 75 65 20 66 61 6c 73 65 0d 0a 0d 0a 20 20 73  rue false....  s
09a0: 65 74 20 72 65 73 75 6c 74 20 5b 6c 69 73 74 5d  et result [list]
09b0: 0d 0a 0d 0a 20 20 6c 61 70 70 65 6e 64 20 72 65  ....  lappend re
09c0: 73 75 6c 74 20 5b 63 61 74 63 68 20 7b 73 71 6c  sult [catch {sql
09d0: 20 65 78 65 63 75 74 65 20 2d 65 78 65 63 75 74   execute -execut
09e0: 65 20 73 63 61 6c 61 72 20 24 64 62 20 5c 0d 0a  e scalar $db \..
09f0: 20 20 20 20 20 20 22 53 45 4c 45 43 54 20 43 4f        "SELECT CO
0a00: 55 4e 54 28 2a 29 20 46 52 4f 4d 20 74 31 3b 22  UNT(*) FROM t1;"
0a10: 7d 20 65 72 72 6f 72 5d 20 24 65 72 72 6f 72 0d  } error] $error.
0a20: 0a 0d 0a 20 20 6c 61 70 70 65 6e 64 20 72 65 73  ...  lappend res
0a30: 75 6c 74 20 5b 63 61 74 63 68 20 7b 73 71 6c 20  ult [catch {sql 
0a40: 65 78 65 63 75 74 65 20 24 64 62 20 5c 0d 0a 20  execute $db \.. 
0a50: 20 20 20 20 20 22 49 4e 53 45 52 54 20 49 4e 54       "INSERT INT
0a60: 4f 20 74 31 20 28 78 29 20 56 41 4c 55 45 53 28  O t1 (x) VALUES(
0a70: 31 29 3b 22 7d 20 65 72 72 6f 72 5d 20 24 65 72  1);"} error] $er
0a80: 72 6f 72 0d 0a 0d 0a 20 20 63 6c 65 61 6e 75 70  ror....  cleanup
0a90: 44 62 20 24 66 69 6c 65 4e 61 6d 65 20 64 62 20  Db $fileName db 
0aa0: 74 72 75 65 20 66 61 6c 73 65 20 66 61 6c 73 65  true false false
0ab0: 0d 0a 20 20 73 65 74 75 70 44 62 20 24 66 69 6c  ..  setupDb $fil
0ac0: 65 4e 61 6d 65 20 22 22 20 22 22 20 22 22 20 22  eName "" "" "" "
0ad0: 22 20 22 48 65 78 50 61 73 73 77 6f 72 64 3d 33  " "HexPassword=3
0ae0: 31 33 32 33 33 33 34 33 35 3b 22 20 74 72 75 65  132333435;" true
0af0: 20 66 61 6c 73 65 0d 0a 0d 0a 20 20 6c 61 70 70   false....  lapp
0b00: 65 6e 64 20 72 65 73 75 6c 74 20 5b 63 61 74 63  end result [catc
0b10: 68 20 7b 73 71 6c 20 65 78 65 63 75 74 65 20 24  h {sql execute $
0b20: 64 62 20 5c 0d 0a 20 20 20 20 20 20 22 49 4e 53  db \..      "INS
0b30: 45 52 54 20 49 4e 54 4f 20 74 31 20 28 78 29 20  ERT INTO t1 (x) 
0b40: 56 41 4c 55 45 53 28 31 29 3b 22 7d 20 65 72 72  VALUES(1);"} err
0b50: 6f 72 5d 20 24 65 72 72 6f 72 0d 0a 0d 0a 20 20  or] $error....  
0b60: 6c 61 70 70 65 6e 64 20 72 65 73 75 6c 74 20 5b  lappend result [
0b70: 63 61 74 63 68 20 7b 73 71 6c 20 65 78 65 63 75  catch {sql execu
0b80: 74 65 20 2d 65 78 65 63 75 74 65 20 73 63 61 6c  te -execute scal
0b90: 61 72 20 24 64 62 20 5c 0d 0a 20 20 20 20 20 20  ar $db \..      
0ba0: 22 53 45 4c 45 43 54 20 43 4f 55 4e 54 28 2a 29  "SELECT COUNT(*)
0bb0: 20 46 52 4f 4d 20 74 31 3b 22 7d 20 65 72 72 6f   FROM t1;"} erro
0bc0: 72 5d 20 24 65 72 72 6f 72 0d 0a 0d 0a 20 20 73  r] $error....  s
0bd0: 65 74 20 72 65 73 75 6c 74 0d 0a 7d 20 2d 63 6c  et result..} -cl
0be0: 65 61 6e 75 70 20 7b 0d 0a 20 20 63 6c 65 61 6e  eanup {..  clean
0bf0: 75 70 44 62 20 24 66 69 6c 65 4e 61 6d 65 0d 0a  upDb $fileName..
0c00: 0d 0a 20 20 75 6e 73 65 74 20 2d 6e 6f 63 6f 6d  ..  unset -nocom
0c10: 70 6c 61 69 6e 20 65 72 72 6f 72 20 72 65 73 75  plain error resu
0c20: 6c 74 20 64 62 20 66 69 6c 65 4e 61 6d 65 0d 0a  lt db fileName..
0c30: 7d 20 2d 63 6f 6e 73 74 72 61 69 6e 74 73 20 7b  } -constraints {
0c40: 65 61 67 6c 65 20 53 79 73 74 65 6d 2e 44 61 74  eagle System.Dat
0c50: 61 2e 53 51 4c 69 74 65 2e 45 6e 63 72 79 70 74  a.SQLite.Encrypt
0c60: 69 6f 6e 20 6d 6f 6e 6f 42 75 67 32 38 20 63 6f  ion monoBug28 co
0c70: 6d 6d 61 6e 64 2e 73 71 6c 5c 0d 0a 63 6f 6d 70  mmand.sql\..comp
0c80: 69 6c 65 2e 44 41 54 41 20 53 51 4c 69 74 65 20  ile.DATA SQLite 
0c90: 53 79 73 74 65 6d 2e 44 61 74 61 2e 53 51 4c 69  System.Data.SQLi
0ca0: 74 65 7d 20 2d 72 65 73 75 6c 74 20 7b 30 20 31  te} -result {0 1
0cb0: 20 30 20 31 20 30 20 31 20 30 20 33 7d 7d 0d 0a   0 1 0 1 0 3}}..
0cc0: 0d 0a 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ..##############
0cd0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0ce0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0cf0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0d00: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0d10: 23 0d 0a 0d 0a 72 75 6e 54 65 73 74 20 7b 74 65  #....runTest {te
0d20: 73 74 20 74 6b 74 2d 31 63 34 35 36 61 65 37 35  st tkt-1c456ae75
0d30: 66 2d 31 2e 33 20 7b 64 61 74 61 62 61 73 65 2c  f-1.3 {database,
0d40: 20 77 72 6f 6e 67 20 68 65 78 20 70 61 73 73 77   wrong hex passw
0d50: 6f 72 64 7d 20 2d 73 65 74 75 70 20 7b 0d 0a 20  ord} -setup {.. 
0d60: 20 73 65 74 75 70 44 62 20 5b 73 65 74 20 66 69   setupDb [set fi
0d70: 6c 65 4e 61 6d 65 20 74 6b 74 2d 31 63 34 35 36  leName tkt-1c456
0d80: 61 65 37 35 66 2d 31 2e 33 2e 64 62 5d 20 22 22  ae75f-1.3.db] ""
0d90: 20 22 22 20 22 22 20 22 22 20 5c 0d 0a 20 20 20   "" "" "" \..   
0da0: 20 20 20 22 48 65 78 50 61 73 73 77 6f 72 64 3d     "HexPassword=
0db0: 33 31 33 32 33 33 33 34 33 35 3b 22 0d 0a 7d 20  3132333435;"..} 
0dc0: 2d 62 6f 64 79 20 7b 0d 0a 20 20 73 71 6c 20 65  -body {..  sql e
0dd0: 78 65 63 75 74 65 20 24 64 62 20 22 43 52 45 41  xecute $db "CREA
0de0: 54 45 20 54 41 42 4c 45 20 74 31 28 78 29 3b 22  TE TABLE t1(x);"
0df0: 0d 0a 20 20 73 71 6c 20 65 78 65 63 75 74 65 20  ..  sql execute 
0e00: 24 64 62 20 22 49 4e 53 45 52 54 20 49 4e 54 4f  $db "INSERT INTO
0e10: 20 74 31 20 28 78 29 20 56 41 4c 55 45 53 28 31   t1 (x) VALUES(1
0e20: 29 3b 22 0d 0a 0d 0a 20 20 63 6c 65 61 6e 75 70  );"....  cleanup
0e30: 44 62 20 24 66 69 6c 65 4e 61 6d 65 20 64 62 20  Db $fileName db 
0e40: 74 72 75 65 20 66 61 6c 73 65 20 66 61 6c 73 65  true false false
0e50: 0d 0a 20 20 73 65 74 75 70 44 62 20 24 66 69 6c  ..  setupDb $fil
0e60: 65 4e 61 6d 65 20 22 22 20 22 22 20 22 22 20 22  eName "" "" "" "
0e70: 22 20 22 48 65 78 50 61 73 73 77 6f 72 64 3d 33  " "HexPassword=3
0e80: 31 33 32 33 33 33 34 33 36 3b 22 20 74 72 75 65  132333436;" true
0e90: 20 66 61 6c 73 65 0d 0a 0d 0a 20 20 73 65 74 20   false....  set 
0ea0: 72 65 73 75 6c 74 20 5b 6c 69 73 74 5d 0d 0a 0d  result [list]...
0eb0: 0a 20 20 6c 61 70 70 65 6e 64 20 72 65 73 75 6c  .  lappend resul
0ec0: 74 20 5b 63 61 74 63 68 20 7b 73 71 6c 20 65 78  t [catch {sql ex
0ed0: 65 63 75 74 65 20 2d 65 78 65 63 75 74 65 20 73  ecute -execute s
0ee0: 63 61 6c 61 72 20 24 64 62 20 5c 0d 0a 20 20 20  calar $db \..   
0ef0: 20 20 20 22 53 45 4c 45 43 54 20 43 4f 55 4e 54     "SELECT COUNT
0f00: 28 2a 29 20 46 52 4f 4d 20 74 31 3b 22 7d 20 65  (*) FROM t1;"} e
0f10: 72 72 6f 72 5d 20 5c 0d 0a 20 20 20 20 20 20 5b  rror] \..      [
0f20: 65 78 74 72 61 63 74 53 79 73 74 65 6d 44 61 74  extractSystemDat
0f30: 61 53 51 4c 69 74 65 45 78 63 65 70 74 69 6f 6e  aSQLiteException
0f40: 4d 65 73 73 61 67 65 20 24 65 72 72 6f 72 5d 0d  Message $error].
0f50: 0a 0d 0a 20 20 6c 61 70 70 65 6e 64 20 72 65 73  ...  lappend res
0f60: 75 6c 74 20 5b 63 61 74 63 68 20 7b 73 71 6c 20  ult [catch {sql 
0f70: 65 78 65 63 75 74 65 20 24 64 62 20 5c 0d 0a 20  execute $db \.. 
0f80: 20 20 20 20 20 22 49 4e 53 45 52 54 20 49 4e 54       "INSERT INT
0f90: 4f 20 74 31 20 28 78 29 20 56 41 4c 55 45 53 28  O t1 (x) VALUES(
0fa0: 31 29 3b 22 7d 20 65 72 72 6f 72 5d 20 5c 0d 0a  1);"} error] \..
0fb0: 20 20 20 20 20 20 5b 65 78 74 72 61 63 74 53 79        [extractSy
0fc0: 73 74 65 6d 44 61 74 61 53 51 4c 69 74 65 45 78  stemDataSQLiteEx
0fd0: 63 65 70 74 69 6f 6e 4d 65 73 73 61 67 65 20 24  ceptionMessage $
0fe0: 65 72 72 6f 72 5d 0d 0a 0d 0a 20 20 63 6c 65 61  error]....  clea
0ff0: 6e 75 70 44 62 20 24 66 69 6c 65 4e 61 6d 65 20  nupDb $fileName 
1000: 64 62 20 74 72 75 65 20 66 61 6c 73 65 20 66 61  db true false fa
1010: 6c 73 65 0d 0a 20 20 73 65 74 75 70 44 62 20 24  lse..  setupDb $
1020: 66 69 6c 65 4e 61 6d 65 20 22 22 20 22 22 20 22  fileName "" "" "
1030: 22 20 22 22 20 22 48 65 78 50 61 73 73 77 6f 72  " "" "HexPasswor
1040: 64 3d 33 31 33 32 33 33 33 34 33 35 3b 22 20 74  d=3132333435;" t
1050: 72 75 65 20 66 61 6c 73 65 0d 0a 0d 0a 20 20 6c  rue false....  l
1060: 61 70 70 65 6e 64 20 72 65 73 75 6c 74 20 5b 63  append result [c
1070: 61 74 63 68 20 7b 73 71 6c 20 65 78 65 63 75 74  atch {sql execut
1080: 65 20 24 64 62 20 5c 0d 0a 20 20 20 20 20 20 22  e $db \..      "
1090: 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 31 20 28  INSERT INTO t1 (
10a0: 78 29 20 56 41 4c 55 45 53 28 31 29 3b 22 7d 20  x) VALUES(1);"} 
10b0: 65 72 72 6f 72 5d 20 5c 0d 0a 20 20 20 20 20 20  error] \..      
10c0: 5b 65 78 74 72 61 63 74 53 79 73 74 65 6d 44 61  [extractSystemDa
10d0: 74 61 53 51 4c 69 74 65 45 78 63 65 70 74 69 6f  taSQLiteExceptio
10e0: 6e 4d 65 73 73 61 67 65 20 24 65 72 72 6f 72 5d  nMessage $error]
10f0: 0d 0a 0d 0a 20 20 6c 61 70 70 65 6e 64 20 72 65  ....  lappend re
1100: 73 75 6c 74 20 5b 63 61 74 63 68 20 7b 73 71 6c  sult [catch {sql
1110: 20 65 78 65 63 75 74 65 20 2d 65 78 65 63 75 74   execute -execut
1120: 65 20 73 63 61 6c 61 72 20 24 64 62 20 5c 0d 0a  e scalar $db \..
1130: 20 20 20 20 20 20 22 53 45 4c 45 43 54 20 43 4f        "SELECT CO
1140: 55 4e 54 28 2a 29 20 46 52 4f 4d 20 74 31 3b 22  UNT(*) FROM t1;"
1150: 7d 20 65 72 72 6f 72 5d 20 5c 0d 0a 20 20 20 20  } error] \..    
1160: 20 20 5b 65 78 74 72 61 63 74 53 79 73 74 65 6d    [extractSystem
1170: 44 61 74 61 53 51 4c 69 74 65 45 78 63 65 70 74  DataSQLiteExcept
1180: 69 6f 6e 4d 65 73 73 61 67 65 20 24 65 72 72 6f  ionMessage $erro
1190: 72 5d 0d 0a 0d 0a 20 20 73 65 74 20 72 65 73 75  r]....  set resu
11a0: 6c 74 0d 0a 7d 20 2d 63 6c 65 61 6e 75 70 20 7b  lt..} -cleanup {
11b0: 0d 0a 20 20 63 6c 65 61 6e 75 70 44 62 20 24 66  ..  cleanupDb $f
11c0: 69 6c 65 4e 61 6d 65 0d 0a 0d 0a 20 20 75 6e 73  ileName....  uns
11d0: 65 74 20 2d 6e 6f 63 6f 6d 70 6c 61 69 6e 20 65  et -nocomplain e
11e0: 72 72 6f 72 20 72 65 73 75 6c 74 20 64 62 20 66  rror result db f
11f0: 69 6c 65 4e 61 6d 65 0d 0a 7d 20 2d 63 6f 6e 73  ileName..} -cons
1200: 74 72 61 69 6e 74 73 20 7b 65 61 67 6c 65 20 53  traints {eagle S
1210: 79 73 74 65 6d 2e 44 61 74 61 2e 53 51 4c 69 74  ystem.Data.SQLit
1220: 65 2e 45 6e 63 72 79 70 74 69 6f 6e 20 6d 6f 6e  e.Encryption mon
1230: 6f 42 75 67 32 38 20 63 6f 6d 6d 61 6e 64 2e 73  oBug28 command.s
1240: 71 6c 5c 0d 0a 63 6f 6d 70 69 6c 65 2e 44 41 54  ql\..compile.DAT
1250: 41 20 53 51 4c 69 74 65 20 53 79 73 74 65 6d 2e  A SQLite System.
1260: 44 61 74 61 2e 53 51 4c 69 74 65 7d 20 2d 72 65  Data.SQLite} -re
1270: 73 75 6c 74 20 7b 31 20 7b 66 69 6c 65 20 69 73  sult {1 {file is
1280: 20 6e 6f 74 20 61 20 64 61 74 61 62 61 73 65 7d   not a database}
1290: 20 31 5c 0d 0a 7b 66 69 6c 65 20 69 73 20 6e 6f   1\..{file is no
12a0: 74 20 61 20 64 61 74 61 62 61 73 65 7d 20 30 20  t a database} 0 
12b0: 31 20 30 20 32 7d 7d 0d 0a 0d 0a 23 23 23 23 23  1 0 2}}....#####
12c0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
12d0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
12e0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
12f0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
1300: 23 23 23 23 23 23 23 23 23 23 0d 0a 0d 0a 72 75  ##########....ru
1310: 6e 54 65 73 74 20 7b 74 65 73 74 20 74 6b 74 2d  nTest {test tkt-
1320: 31 63 34 35 36 61 65 37 35 66 2d 31 2e 34 20 7b  1c456ae75f-1.4 {
1330: 64 61 74 61 62 61 73 65 2c 20 68 65 78 20 70 61  database, hex pa
1340: 73 73 77 6f 72 64 20 76 69 61 20 62 75 69 6c 64  ssword via build
1350: 65 72 7d 20 2d 73 65 74 75 70 20 7b 0d 0a 20 20  er} -setup {..  
1360: 73 65 74 75 70 44 62 20 5b 73 65 74 20 66 69 6c  setupDb [set fil
1370: 65 4e 61 6d 65 20 74 6b 74 2d 31 63 34 35 36 61  eName tkt-1c456a
1380: 65 37 35 66 2d 31 2e 34 2e 64 62 5d 20 22 22 20  e75f-1.4.db] "" 
1390: 22 22 20 22 22 20 22 22 20 5c 0d 0a 20 20 20 20  "" "" "" \..    
13a0: 20 20 22 48 65 78 50 61 73 73 77 6f 72 64 3d 33    "HexPassword=3
13b0: 31 33 32 33 33 33 34 33 35 3b 22 0d 0a 7d 20 2d  132333435;"..} -
13c0: 62 6f 64 79 20 7b 0d 0a 20 20 73 71 6c 20 65 78  body {..  sql ex
13d0: 65 63 75 74 65 20 24 64 62 20 22 43 52 45 41 54  ecute $db "CREAT
13e0: 45 20 54 41 42 4c 45 20 74 31 28 78 29 3b 22 0d  E TABLE t1(x);".
13f0: 0a 20 20 73 71 6c 20 65 78 65 63 75 74 65 20 24  .  sql execute $
1400: 64 62 20 22 49 4e 53 45 52 54 20 49 4e 54 4f 20  db "INSERT INTO 
1410: 74 31 20 28 78 29 20 56 41 4c 55 45 53 28 31 29  t1 (x) VALUES(1)
1420: 3b 22 0d 0a 0d 0a 20 20 63 6c 65 61 6e 75 70 44  ;"....  cleanupD
1430: 62 20 24 66 69 6c 65 4e 61 6d 65 20 64 62 20 74  b $fileName db t
1440: 72 75 65 20 66 61 6c 73 65 20 66 61 6c 73 65 0d  rue false false.
1450: 0a 0d 0a 20 20 73 65 74 20 63 6f 6e 6e 65 63 74  ...  set connect
1460: 69 6f 6e 53 74 72 69 6e 67 42 75 69 6c 64 65 72  ionStringBuilder
1470: 20 5b 6f 62 6a 65 63 74 20 63 72 65 61 74 65 20   [object create 
1480: 2d 61 6c 69 61 73 20 5c 0d 0a 20 20 20 20 20 20  -alias \..      
1490: 53 79 73 74 65 6d 2e 44 61 74 61 2e 53 51 4c 69  System.Data.SQLi
14a0: 74 65 2e 53 51 4c 69 74 65 43 6f 6e 6e 65 63 74  te.SQLiteConnect
14b0: 69 6f 6e 53 74 72 69 6e 67 42 75 69 6c 64 65 72  ionStringBuilder
14c0: 5d 0d 0a 0d 0a 20 20 24 63 6f 6e 6e 65 63 74 69  ]....  $connecti
14d0: 6f 6e 53 74 72 69 6e 67 42 75 69 6c 64 65 72 20  onStringBuilder 
14e0: 44 61 74 61 53 6f 75 72 63 65 20 5c 0d 0a 20 20  DataSource \..  
14f0: 20 20 20 20 5b 66 69 6c 65 20 6a 6f 69 6e 20 5b      [file join [
1500: 67 65 74 44 61 74 61 62 61 73 65 44 69 72 65 63  getDatabaseDirec
1510: 74 6f 72 79 5d 20 24 66 69 6c 65 4e 61 6d 65 5d  tory] $fileName]
1520: 0d 0a 0d 0a 20 20 24 63 6f 6e 6e 65 63 74 69 6f  ....  $connectio
1530: 6e 53 74 72 69 6e 67 42 75 69 6c 64 65 72 20 48  nStringBuilder H
1540: 65 78 50 61 73 73 77 6f 72 64 20 5b 6c 69 73 74  exPassword [list
1550: 20 30 78 33 31 20 30 78 33 32 20 30 78 33 33 20   0x31 0x32 0x33 
1560: 30 78 33 34 20 30 78 33 35 5d 0d 0a 0d 0a 20 20  0x34 0x35]....  
1570: 73 65 74 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 5b  set connection [
1580: 6f 62 6a 65 63 74 20 63 72 65 61 74 65 20 2d 61  object create -a
1590: 6c 69 61 73 20 5c 0d 0a 20 20 20 20 20 20 53 79  lias \..      Sy
15a0: 73 74 65 6d 2e 44 61 74 61 2e 53 51 4c 69 74 65  stem.Data.SQLite
15b0: 2e 53 51 4c 69 74 65 43 6f 6e 6e 65 63 74 69 6f  .SQLiteConnectio
15c0: 6e 20 5c 0d 0a 20 20 20 20 20 20 5b 24 63 6f 6e  n \..      [$con
15d0: 6e 65 63 74 69 6f 6e 53 74 72 69 6e 67 42 75 69  nectionStringBui
15e0: 6c 64 65 72 20 54 6f 53 74 72 69 6e 67 5d 20 74  lder ToString] t
15f0: 72 75 65 5d 0d 0a 0d 0a 20 20 24 63 6f 6e 6e 65  rue]....  $conne
1600: 63 74 69 6f 6e 20 4f 70 65 6e 3b 20 61 64 64 44  ction Open; addD
1610: 62 43 6f 6e 6e 65 63 74 69 6f 6e 20 24 63 6f 6e  bConnection $con
1620: 6e 65 63 74 69 6f 6e 0d 0a 0d 0a 20 20 73 65 74  nection....  set
1630: 20 72 65 73 75 6c 74 20 5b 6c 69 73 74 5d 0d 0a   result [list]..
1640: 0d 0a 20 20 6c 61 70 70 65 6e 64 20 72 65 73 75  ..  lappend resu
1650: 6c 74 20 5b 63 61 74 63 68 20 7b 73 71 6c 20 65  lt [catch {sql e
1660: 78 65 63 75 74 65 20 2d 65 78 65 63 75 74 65 20  xecute -execute 
1670: 73 63 61 6c 61 72 20 24 64 62 20 5c 0d 0a 20 20  scalar $db \..  
1680: 20 20 20 20 22 53 45 4c 45 43 54 20 43 4f 55 4e      "SELECT COUN
1690: 54 28 2a 29 20 46 52 4f 4d 20 74 31 3b 22 7d 20  T(*) FROM t1;"} 
16a0: 65 72 72 6f 72 5d 20 24 65 72 72 6f 72 0d 0a 0d  error] $error...
16b0: 0a 20 20 6c 61 70 70 65 6e 64 20 72 65 73 75 6c  .  lappend resul
16c0: 74 20 5b 63 61 74 63 68 20 7b 73 71 6c 20 65 78  t [catch {sql ex
16d0: 65 63 75 74 65 20 24 64 62 20 5c 0d 0a 20 20 20  ecute $db \..   
16e0: 20 20 20 22 49 4e 53 45 52 54 20 49 4e 54 4f 20     "INSERT INTO 
16f0: 74 31 20 28 78 29 20 56 41 4c 55 45 53 28 31 29  t1 (x) VALUES(1)
1700: 3b 22 7d 20 65 72 72 6f 72 5d 20 24 65 72 72 6f  ;"} error] $erro
1710: 72 0d 0a 0d 0a 20 20 63 6c 65 61 6e 75 70 44 62  r....  cleanupDb
1720: 20 24 66 69 6c 65 4e 61 6d 65 20 64 62 20 74 72   $fileName db tr
1730: 75 65 20 66 61 6c 73 65 20 66 61 6c 73 65 0d 0a  ue false false..
1740: 20 20 73 65 74 75 70 44 62 20 24 66 69 6c 65 4e    setupDb $fileN
1750: 61 6d 65 20 22 22 20 22 22 20 22 22 20 22 22 20  ame "" "" "" "" 
1760: 22 50 61 73 73 77 6f 72 64 3d 5c 22 31 32 33 34  "Password=\"1234
1770: 35 5c 22 3b 22 20 74 72 75 65 20 66 61 6c 73 65  5\";" true false
1780: 0d 0a 0d 0a 20 20 6c 61 70 70 65 6e 64 20 72 65  ....  lappend re
1790: 73 75 6c 74 20 5b 63 61 74 63 68 20 7b 73 71 6c  sult [catch {sql
17a0: 20 65 78 65 63 75 74 65 20 24 64 62 20 5c 0d 0a   execute $db \..
17b0: 20 20 20 20 20 20 22 49 4e 53 45 52 54 20 49 4e        "INSERT IN
17c0: 54 4f 20 74 31 20 28 78 29 20 56 41 4c 55 45 53  TO t1 (x) VALUES
17d0: 28 31 29 3b 22 7d 20 65 72 72 6f 72 5d 20 24 65  (1);"} error] $e
17e0: 72 72 6f 72 0d 0a 0d 0a 20 20 6c 61 70 70 65 6e  rror....  lappen
17f0: 64 20 72 65 73 75 6c 74 20 5b 63 61 74 63 68 20  d result [catch 
1800: 7b 73 71 6c 20 65 78 65 63 75 74 65 20 2d 65 78  {sql execute -ex
1810: 65 63 75 74 65 20 73 63 61 6c 61 72 20 24 64 62  ecute scalar $db
1820: 20 5c 0d 0a 20 20 20 20 20 20 22 53 45 4c 45 43   \..      "SELEC
1830: 54 20 43 4f 55 4e 54 28 2a 29 20 46 52 4f 4d 20  T COUNT(*) FROM 
1840: 74 31 3b 22 7d 20 65 72 72 6f 72 5d 20 24 65 72  t1;"} error] $er
1850: 72 6f 72 0d 0a 0d 0a 20 20 73 65 74 20 72 65 73  ror....  set res
1860: 75 6c 74 0d 0a 7d 20 2d 63 6c 65 61 6e 75 70 20  ult..} -cleanup 
1870: 7b 0d 0a 20 20 75 6e 73 65 74 20 2d 6e 6f 63 6f  {..  unset -noco
1880: 6d 70 6c 61 69 6e 20 63 6f 6e 6e 65 63 74 69 6f  mplain connectio
1890: 6e 0d 0a 0d 0a 20 20 63 6c 65 61 6e 75 70 44 62  n....  cleanupDb
18a0: 20 24 66 69 6c 65 4e 61 6d 65 3b 20 23 20 4e 4f   $fileName; # NO
18b0: 54 45 3a 20 41 66 74 65 72 20 6f 62 6a 65 63 74  TE: After object
18c0: 20 64 69 73 70 6f 73 61 6c 2e 0d 0a 0d 0a 20 20   disposal.....  
18d0: 75 6e 73 65 74 20 2d 6e 6f 63 6f 6d 70 6c 61 69  unset -nocomplai
18e0: 6e 20 63 6f 6e 6e 65 63 74 69 6f 6e 53 74 72 69  n connectionStri
18f0: 6e 67 42 75 69 6c 64 65 72 20 65 72 72 6f 72 20  ngBuilder error 
1900: 72 65 73 75 6c 74 20 64 62 20 66 69 6c 65 4e 61  result db fileNa
1910: 6d 65 0d 0a 7d 20 2d 63 6f 6e 73 74 72 61 69 6e  me..} -constrain
1920: 74 73 20 7b 65 61 67 6c 65 20 63 6f 6d 6d 61 6e  ts {eagle comman
1930: 64 2e 6f 62 6a 65 63 74 20 53 79 73 74 65 6d 2e  d.object System.
1940: 44 61 74 61 2e 53 51 4c 69 74 65 2e 45 6e 63 72  Data.SQLite.Encr
1950: 79 70 74 69 6f 6e 20 6d 6f 6e 6f 42 75 67 32 38  yption monoBug28
1960: 5c 0d 0a 63 6f 6d 6d 61 6e 64 2e 73 71 6c 20 63  \..command.sql c
1970: 6f 6d 70 69 6c 65 2e 44 41 54 41 20 53 51 4c 69  ompile.DATA SQLi
1980: 74 65 20 53 79 73 74 65 6d 2e 44 61 74 61 2e 53  te System.Data.S
1990: 51 4c 69 74 65 7d 20 2d 72 65 73 75 6c 74 20 7b  QLite} -result {
19a0: 30 20 31 20 30 20 31 20 30 20 31 20 30 20 33 7d  0 1 0 1 0 1 0 3}
19b0: 7d 0d 0a 0d 0a 23 23 23 23 23 23 23 23 23 23 23  }....###########
19c0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
19d0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
19e0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
19f0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
1a00: 23 23 23 23 0d 0a 0d 0a 72 75 6e 53 51 4c 69 74  ####....runSQLit
1a10: 65 54 65 73 74 45 70 69 6c 6f 67 75 65 0d 0a 72  eTestEpilogue..r
1a20: 75 6e 54 65 73 74 45 70 69 6c 6f 67 75 65 0d 0a  unTestEpilogue..