/ Hex Artifact Content
Login

Artifact 18e44e4e154e13cba74d67b85202172d37ddb5ed:


0000: 23 20 43 6f 70 79 72 69 67 68 74 20 28 63 29 20  # Copyright (c) 
0010: 32 30 30 31 20 44 2e 20 52 69 63 68 61 72 64 20  2001 D. Richard 
0020: 48 69 70 70 0a 23 0a 23 20 54 68 69 73 20 70 72  Hipp.#.# This pr
0030: 6f 67 72 61 6d 20 69 73 20 66 72 65 65 20 73 6f  ogram is free so
0040: 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20  ftware; you can 
0050: 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20  redistribute it 
0060: 61 6e 64 2f 6f 72 0a 23 20 6d 6f 64 69 66 79 20  and/or.# modify 
0070: 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72  it under the ter
0080: 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65  ms of the GNU Ge
0090: 6e 65 72 61 6c 20 50 75 62 6c 69 63 0a 23 20 4c  neral Public.# L
00a0: 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73  icense as publis
00b0: 68 65 64 20 62 79 20 74 68 65 20 46 72 65 65 20  hed by the Free 
00c0: 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74  Software Foundat
00d0: 69 6f 6e 3b 20 65 69 74 68 65 72 0a 23 20 76 65  ion; either.# ve
00e0: 72 73 69 6f 6e 20 32 20 6f 66 20 74 68 65 20 4c  rsion 2 of the L
00f0: 69 63 65 6e 73 65 2c 20 6f 72 20 28 61 74 20 79  icense, or (at y
0100: 6f 75 72 20 6f 70 74 69 6f 6e 29 20 61 6e 79 20  our option) any 
0110: 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 23  later version..#
0120: 0a 23 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20  .# This program 
0130: 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69  is distributed i
0140: 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20  n the hope that 
0150: 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75  it will be usefu
0160: 6c 2c 0a 23 20 62 75 74 20 57 49 54 48 4f 55 54  l,.# but WITHOUT
0170: 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77   ANY WARRANTY; w
0180: 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20  ithout even the 
0190: 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79  implied warranty
01a0: 20 6f 66 0a 23 20 4d 45 52 43 48 41 4e 54 41 42   of.# MERCHANTAB
01b0: 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53  ILITY or FITNESS
01c0: 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41   FOR A PARTICULA
01d0: 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20  R PURPOSE.  See 
01e0: 74 68 65 20 47 4e 55 0a 23 20 47 65 6e 65 72 61  the GNU.# Genera
01f0: 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65  l Public License
0200: 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c   for more detail
0210: 73 2e 0a 23 20 0a 23 20 59 6f 75 20 73 68 6f 75  s..# .# You shou
0220: 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64  ld have received
0230: 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47   a copy of the G
0240: 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69  NU General Publi
0250: 63 0a 23 20 4c 69 63 65 6e 73 65 20 61 6c 6f 6e  c.# License alon
0260: 67 20 77 69 74 68 20 74 68 69 73 20 6c 69 62 72  g with this libr
0270: 61 72 79 3b 20 69 66 20 6e 6f 74 2c 20 77 72 69  ary; if not, wri
0280: 74 65 20 74 6f 20 74 68 65 0a 23 20 46 72 65 65  te to the.# Free
0290: 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61   Software Founda
02a0: 74 69 6f 6e 2c 20 49 6e 63 2e 2c 20 35 39 20 54  tion, Inc., 59 T
02b0: 65 6d 70 6c 65 20 50 6c 61 63 65 20 2d 20 53 75  emple Place - Su
02c0: 69 74 65 20 33 33 30 2c 0a 23 20 42 6f 73 74 6f  ite 330,.# Bosto
02d0: 6e 2c 20 4d 41 20 20 30 32 31 31 31 2d 31 33 30  n, MA  02111-130
02e0: 37 2c 20 55 53 41 2e 0a 23 0a 23 20 41 75 74 68  7, USA..#.# Auth
02f0: 6f 72 20 63 6f 6e 74 61 63 74 20 69 6e 66 6f 72  or contact infor
0300: 6d 61 74 69 6f 6e 3a 0a 23 20 20 20 64 72 68 40  mation:.#   drh@
0310: 68 77 61 63 69 2e 63 6f 6d 0a 23 20 20 20 68 74  hwaci.com.#   ht
0320: 74 70 3a 2f 2f 77 77 77 2e 68 77 61 63 69 2e 63  tp://www.hwaci.c
0330: 6f 6d 2f 64 72 68 2f 0a 23 0a 23 2a 2a 2a 2a 2a  om/drh/.#.#*****
0340: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0350: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0360: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0370: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0380: 2a 2a 0a 23 20 54 68 69 73 20 66 69 6c 65 20 69  **.# This file i
0390: 6d 70 6c 65 6d 65 6e 74 73 20 72 65 67 72 65 73  mplements regres
03a0: 73 69 6f 6e 20 74 65 73 74 73 20 66 6f 72 20 53  sion tests for S
03b0: 51 4c 69 74 65 20 6c 69 62 72 61 72 79 2e 20 20  QLite library.  
03c0: 54 68 65 0a 23 20 66 6f 63 75 73 20 6f 66 20 74  The.# focus of t
03d0: 68 69 73 20 66 69 6c 65 20 69 73 20 74 65 73 74  his file is test
03e0: 69 6e 67 20 74 68 65 20 73 71 6c 69 74 65 5f 2a  ing the sqlite_*
03f0: 5f 70 72 69 6e 74 66 28 29 20 69 6e 74 65 72 66  _printf() interf
0400: 61 63 65 2e 0a 23 0a 23 20 24 49 64 3a 20 70 72  ace..#.# $Id: pr
0410: 69 6e 74 66 2e 74 65 73 74 2c 76 20 31 2e 31 20  intf.test,v 1.1 
0420: 32 30 30 31 2f 30 34 2f 30 37 20 31 35 3a 32 34  2001/04/07 15:24
0430: 3a 33 33 20 64 72 68 20 45 78 70 20 24 0a 0a 73  :33 drh Exp $..s
0440: 65 74 20 74 65 73 74 64 69 72 20 5b 66 69 6c 65  et testdir [file
0450: 20 64 69 72 6e 61 6d 65 20 24 61 72 67 76 30 5d   dirname $argv0]
0460: 0a 73 6f 75 72 63 65 20 24 74 65 73 74 64 69 72  .source $testdir
0470: 2f 74 65 73 74 65 72 2e 74 63 6c 0a 0a 73 65 74  /tester.tcl..set
0480: 20 6e 20 31 0a 66 6f 72 65 61 63 68 20 76 20 7b   n 1.foreach v {
0490: 31 20 32 20 35 20 31 30 20 39 39 20 31 30 30 20  1 2 5 10 99 100 
04a0: 31 30 30 30 30 30 30 20 39 39 39 39 39 39 39 39  1000000 99999999
04b0: 39 20 30 20 2d 31 20 2d 32 20 2d 35 20 2d 31 30  9 0 -1 -2 -5 -10
04c0: 20 2d 39 39 20 2d 31 30 30 20 2d 39 39 39 39 39   -99 -100 -99999
04d0: 39 39 7d 20 7b 0a 20 20 64 6f 5f 74 65 73 74 20  99} {.  do_test 
04e0: 70 72 69 6e 74 66 2d 31 2e 24 6e 2e 31 20 5b 73  printf-1.$n.1 [s
04f0: 75 62 73 74 20 7b 0a 20 20 20 20 73 71 6c 69 74  ubst {.    sqlit
0500: 65 5f 6d 70 72 69 6e 74 66 5f 69 6e 74 20 7b 54  e_mprintf_int {T
0510: 68 72 65 65 20 69 6e 74 65 67 65 72 73 3a 20 25  hree integers: %
0520: 64 20 25 78 20 25 6f 7d 20 24 76 20 24 76 20 24  d %x %o} $v $v $
0530: 76 0a 20 20 7d 5d 20 5b 66 6f 72 6d 61 74 20 7b  v.  }] [format {
0540: 54 68 72 65 65 20 69 6e 74 65 67 65 72 73 3a 20  Three integers: 
0550: 25 64 20 25 78 20 25 6f 7d 20 24 76 20 24 76 20  %d %x %o} $v $v 
0560: 24 76 5d 0a 20 20 64 6f 5f 74 65 73 74 20 70 72  $v].  do_test pr
0570: 69 6e 74 66 2d 31 2e 24 6e 2e 32 20 5b 73 75 62  intf-1.$n.2 [sub
0580: 73 74 20 7b 0a 20 20 20 20 73 71 6c 69 74 65 5f  st {.    sqlite_
0590: 6d 70 72 69 6e 74 66 5f 69 6e 74 20 7b 54 68 72  mprintf_int {Thr
05a0: 65 65 20 69 6e 74 65 67 65 72 73 3a 20 28 25 36  ee integers: (%6
05b0: 64 29 20 28 25 36 78 29 20 28 25 36 6f 29 7d 20  d) (%6x) (%6o)} 
05c0: 24 76 20 24 76 20 24 76 0a 20 20 7d 5d 20 5b 66  $v $v $v.  }] [f
05d0: 6f 72 6d 61 74 20 7b 54 68 72 65 65 20 69 6e 74  ormat {Three int
05e0: 65 67 65 72 73 3a 20 28 25 36 64 29 20 28 25 36  egers: (%6d) (%6
05f0: 78 29 20 28 25 36 6f 29 7d 20 24 76 20 24 76 20  x) (%6o)} $v $v 
0600: 24 76 5d 0a 20 20 64 6f 5f 74 65 73 74 20 70 72  $v].  do_test pr
0610: 69 6e 74 66 2d 31 2e 24 6e 2e 33 20 5b 73 75 62  intf-1.$n.3 [sub
0620: 73 74 20 7b 0a 20 20 20 20 73 71 6c 69 74 65 5f  st {.    sqlite_
0630: 6d 70 72 69 6e 74 66 5f 69 6e 74 20 7b 54 68 72  mprintf_int {Thr
0640: 65 65 20 69 6e 74 65 67 65 72 73 3a 20 28 25 2d  ee integers: (%-
0650: 36 64 29 20 28 25 2d 36 78 29 20 28 25 2d 36 6f  6d) (%-6x) (%-6o
0660: 29 7d 20 24 76 20 24 76 20 24 76 0a 20 20 7d 5d  )} $v $v $v.  }]
0670: 20 5b 66 6f 72 6d 61 74 20 7b 54 68 72 65 65 20   [format {Three 
0680: 69 6e 74 65 67 65 72 73 3a 20 28 25 2d 36 64 29  integers: (%-6d)
0690: 20 28 25 2d 36 78 29 20 28 25 2d 36 6f 29 7d 20   (%-6x) (%-6o)} 
06a0: 24 76 20 24 76 20 24 76 5d 0a 20 20 69 6e 63 72  $v $v $v].  incr
06b0: 20 6e 0a 7d 0a 0a 73 65 74 20 6d 20 31 0a 66 6f   n.}..set m 1.fo
06c0: 72 65 61 63 68 20 7b 61 20 62 7d 20 7b 31 20 31  reach {a b} {1 1
06d0: 20 35 20 35 20 31 30 20 31 30 20 31 30 20 35 7d   5 5 10 10 10 5}
06e0: 20 7b 0a 20 20 73 65 74 20 6e 20 31 0a 20 20 66   {.  set n 1.  f
06f0: 6f 72 65 61 63 68 20 78 20 7b 30 2e 30 30 31 20  oreach x {0.001 
0700: 31 2e 30 65 2d 32 30 20 31 2e 30 20 30 2e 30 20  1.0e-20 1.0 0.0 
0710: 31 30 30 2e 30 20 39 2e 39 39 39 39 39 20 2d 30  100.0 9.99999 -0
0720: 2e 30 30 35 34 33 20 2d 31 2e 30 20 2d 39 39 2e  .00543 -1.0 -99.
0730: 39 39 39 39 39 7d 20 7b 0a 20 20 20 20 64 6f 5f  99999} {.    do_
0740: 74 65 73 74 20 70 72 69 6e 74 66 2d 32 2e 24 6d  test printf-2.$m
0750: 2e 24 6e 2e 31 20 5b 73 75 62 73 74 20 7b 0a 20  .$n.1 [subst {. 
0760: 20 20 20 20 20 73 71 6c 69 74 65 5f 6d 70 72 69       sqlite_mpri
0770: 6e 74 66 5f 64 6f 75 62 6c 65 20 7b 41 20 64 6f  ntf_double {A do
0780: 75 62 6c 65 3a 20 25 2a 2e 2a 66 7d 20 24 61 20  uble: %*.*f} $a 
0790: 24 62 20 24 78 0a 20 20 20 20 7d 5d 20 5b 66 6f  $b $x.    }] [fo
07a0: 72 6d 61 74 20 7b 41 20 64 6f 75 62 6c 65 3a 20  rmat {A double: 
07b0: 25 2a 2e 2a 66 7d 20 24 61 20 24 62 20 24 78 5d  %*.*f} $a $b $x]
07c0: 0a 20 20 20 20 64 6f 5f 74 65 73 74 20 70 72 69  .    do_test pri
07d0: 6e 74 66 2d 32 2e 24 6d 2e 24 6e 2e 32 20 5b 73  ntf-2.$m.$n.2 [s
07e0: 75 62 73 74 20 7b 0a 20 20 20 20 20 20 73 71 6c  ubst {.      sql
07f0: 69 74 65 5f 6d 70 72 69 6e 74 66 5f 64 6f 75 62  ite_mprintf_doub
0800: 6c 65 20 7b 41 20 64 6f 75 62 6c 65 3a 20 25 2a  le {A double: %*
0810: 2e 2a 65 7d 20 24 61 20 24 62 20 24 78 0a 20 20  .*e} $a $b $x.  
0820: 20 20 7d 5d 20 5b 66 6f 72 6d 61 74 20 7b 41 20    }] [format {A 
0830: 64 6f 75 62 6c 65 3a 20 25 2a 2e 2a 65 7d 20 24  double: %*.*e} $
0840: 61 20 24 62 20 24 78 5d 0a 20 20 20 20 64 6f 5f  a $b $x].    do_
0850: 74 65 73 74 20 70 72 69 6e 74 66 2d 32 2e 24 6d  test printf-2.$m
0860: 2e 24 6e 2e 33 20 5b 73 75 62 73 74 20 7b 0a 20  .$n.3 [subst {. 
0870: 20 20 20 20 20 73 71 6c 69 74 65 5f 6d 70 72 69       sqlite_mpri
0880: 6e 74 66 5f 64 6f 75 62 6c 65 20 7b 41 20 64 6f  ntf_double {A do
0890: 75 62 6c 65 3a 20 25 2a 2e 2a 67 7d 20 24 61 20  uble: %*.*g} $a 
08a0: 24 62 20 24 78 0a 20 20 20 20 7d 5d 20 5b 66 6f  $b $x.    }] [fo
08b0: 72 6d 61 74 20 7b 41 20 64 6f 75 62 6c 65 3a 20  rmat {A double: 
08c0: 25 2a 2e 2a 67 7d 20 24 61 20 24 62 20 24 78 5d  %*.*g} $a $b $x]
08d0: 0a 20 20 20 20 64 6f 5f 74 65 73 74 20 70 72 69  .    do_test pri
08e0: 6e 74 66 2d 32 2e 24 6d 2e 24 6e 2e 34 20 5b 73  ntf-2.$m.$n.4 [s
08f0: 75 62 73 74 20 7b 0a 20 20 20 20 20 20 73 71 6c  ubst {.      sql
0900: 69 74 65 5f 6d 70 72 69 6e 74 66 5f 64 6f 75 62  ite_mprintf_doub
0910: 6c 65 20 7b 41 20 64 6f 75 62 6c 65 3a 20 25 64  le {A double: %d
0920: 20 25 64 20 25 67 7d 20 24 61 20 24 62 20 24 78   %d %g} $a $b $x
0930: 0a 20 20 20 20 7d 5d 20 5b 66 6f 72 6d 61 74 20  .    }] [format 
0940: 7b 41 20 64 6f 75 62 6c 65 3a 20 25 64 20 25 64  {A double: %d %d
0950: 20 25 67 7d 20 24 61 20 24 62 20 24 78 5d 0a 20   %g} $a $b $x]. 
0960: 20 20 20 64 6f 5f 74 65 73 74 20 70 72 69 6e 74     do_test print
0970: 66 2d 32 2e 24 6d 2e 24 6e 2e 35 20 5b 73 75 62  f-2.$m.$n.5 [sub
0980: 73 74 20 7b 0a 20 20 20 20 20 20 73 71 6c 69 74  st {.      sqlit
0990: 65 5f 6d 70 72 69 6e 74 66 5f 64 6f 75 62 6c 65  e_mprintf_double
09a0: 20 7b 41 20 64 6f 75 62 6c 65 3a 20 25 64 20 25   {A double: %d %
09b0: 64 20 25 23 67 7d 20 24 61 20 24 62 20 24 78 0a  d %#g} $a $b $x.
09c0: 20 20 20 20 7d 5d 20 5b 66 6f 72 6d 61 74 20 7b      }] [format {
09d0: 41 20 64 6f 75 62 6c 65 3a 20 25 64 20 25 64 20  A double: %d %d 
09e0: 25 23 67 7d 20 24 61 20 24 62 20 24 78 5d 0a 20  %#g} $a $b $x]. 
09f0: 20 20 20 69 6e 63 72 20 6e 0a 20 20 7d 0a 20 20     incr n.  }.  
0a00: 69 6e 63 72 20 6d 0a 7d 0a 0a 64 6f 5f 74 65 73  incr m.}..do_tes
0a10: 74 20 70 72 69 6e 74 66 2d 33 2e 31 20 7b 0a 20  t printf-3.1 {. 
0a20: 20 73 71 6c 69 74 65 5f 6d 70 72 69 6e 74 66 5f   sqlite_mprintf_
0a30: 73 74 72 20 7b 41 20 53 74 72 69 6e 67 3a 20 28  str {A String: (
0a40: 25 2a 2e 2a 73 29 7d 20 31 30 20 31 30 20 7b 54  %*.*s)} 10 10 {T
0a50: 68 69 73 20 69 73 20 74 68 65 20 73 74 72 69 6e  his is the strin
0a60: 67 7d 0a 7d 20 5b 66 6f 72 6d 61 74 20 7b 41 20  g}.} [format {A 
0a70: 53 74 72 69 6e 67 3a 20 28 25 2a 2e 2a 73 29 7d  String: (%*.*s)}
0a80: 20 31 30 20 31 30 20 7b 54 68 69 73 20 69 73 20   10 10 {This is 
0a90: 74 68 65 20 73 74 72 69 6e 67 7d 5d 0a 64 6f 5f  the string}].do_
0aa0: 74 65 73 74 20 70 72 69 6e 74 66 2d 33 2e 32 20  test printf-3.2 
0ab0: 7b 0a 20 20 73 71 6c 69 74 65 5f 6d 70 72 69 6e  {.  sqlite_mprin
0ac0: 74 66 5f 73 74 72 20 7b 41 20 53 74 72 69 6e 67  tf_str {A String
0ad0: 3a 20 28 25 2a 2e 2a 73 29 7d 20 31 30 20 35 20  : (%*.*s)} 10 5 
0ae0: 7b 54 68 69 73 20 69 73 20 74 68 65 20 73 74 72  {This is the str
0af0: 69 6e 67 7d 0a 7d 20 5b 66 6f 72 6d 61 74 20 7b  ing}.} [format {
0b00: 41 20 53 74 72 69 6e 67 3a 20 28 25 2a 2e 2a 73  A String: (%*.*s
0b10: 29 7d 20 31 30 20 35 20 7b 54 68 69 73 20 69 73  )} 10 5 {This is
0b20: 20 74 68 65 20 73 74 72 69 6e 67 7d 5d 0a 64 6f   the string}].do
0b30: 5f 74 65 73 74 20 70 72 69 6e 74 66 2d 33 2e 33  _test printf-3.3
0b40: 20 7b 0a 20 20 73 71 6c 69 74 65 5f 6d 70 72 69   {.  sqlite_mpri
0b50: 6e 74 66 5f 73 74 72 20 7b 41 20 53 74 72 69 6e  ntf_str {A Strin
0b60: 67 3a 20 28 25 2a 2e 2a 73 29 7d 20 2d 31 30 20  g: (%*.*s)} -10 
0b70: 35 20 7b 54 68 69 73 20 69 73 20 74 68 65 20 73  5 {This is the s
0b80: 74 72 69 6e 67 7d 0a 7d 20 5b 66 6f 72 6d 61 74  tring}.} [format
0b90: 20 7b 41 20 53 74 72 69 6e 67 3a 20 28 25 2a 2e   {A String: (%*.
0ba0: 2a 73 29 7d 20 2d 31 30 20 35 20 7b 54 68 69 73  *s)} -10 5 {This
0bb0: 20 69 73 20 74 68 65 20 73 74 72 69 6e 67 7d 5d   is the string}]
0bc0: 0a 64 6f 5f 74 65 73 74 20 70 72 69 6e 74 66 2d  .do_test printf-
0bd0: 33 2e 34 20 7b 0a 20 20 73 71 6c 69 74 65 5f 6d  3.4 {.  sqlite_m
0be0: 70 72 69 6e 74 66 5f 73 74 72 20 7b 25 64 20 25  printf_str {%d %
0bf0: 64 20 41 20 53 74 72 69 6e 67 3a 20 28 25 73 29  d A String: (%s)
0c00: 7d 20 31 20 32 20 7b 54 68 69 73 20 69 73 20 74  } 1 2 {This is t
0c10: 68 65 20 73 74 72 69 6e 67 7d 0a 7d 20 5b 66 6f  he string}.} [fo
0c20: 72 6d 61 74 20 7b 25 64 20 25 64 20 41 20 53 74  rmat {%d %d A St
0c30: 72 69 6e 67 3a 20 28 25 73 29 7d 20 31 20 32 20  ring: (%s)} 1 2 
0c40: 7b 54 68 69 73 20 69 73 20 74 68 65 20 73 74 72  {This is the str
0c50: 69 6e 67 7d 5d 0a 64 6f 5f 74 65 73 74 20 70 72  ing}].do_test pr
0c60: 69 6e 74 66 2d 33 2e 35 20 7b 0a 20 20 73 71 6c  intf-3.5 {.  sql
0c70: 69 74 65 5f 6d 70 72 69 6e 74 66 5f 73 74 72 20  ite_mprintf_str 
0c80: 7b 25 64 20 25 64 20 41 20 53 74 72 69 6e 67 3a  {%d %d A String:
0c90: 20 28 25 33 30 73 29 7d 20 31 20 32 20 7b 54 68   (%30s)} 1 2 {Th
0ca0: 69 73 20 69 73 20 74 68 65 20 73 74 72 69 6e 67  is is the string
0cb0: 7d 0a 7d 20 5b 66 6f 72 6d 61 74 20 7b 25 64 20  }.} [format {%d 
0cc0: 25 64 20 41 20 53 74 72 69 6e 67 3a 20 28 25 33  %d A String: (%3
0cd0: 30 73 29 7d 20 31 20 32 20 7b 54 68 69 73 20 69  0s)} 1 2 {This i
0ce0: 73 20 74 68 65 20 73 74 72 69 6e 67 7d 5d 0a 64  s the string}].d
0cf0: 6f 5f 74 65 73 74 20 70 72 69 6e 74 66 2d 33 2e  o_test printf-3.
0d00: 36 20 7b 0a 20 20 73 71 6c 69 74 65 5f 6d 70 72  6 {.  sqlite_mpr
0d10: 69 6e 74 66 5f 73 74 72 20 7b 25 64 20 25 64 20  intf_str {%d %d 
0d20: 41 20 53 74 72 69 6e 67 3a 20 28 25 2d 33 30 73  A String: (%-30s
0d30: 29 7d 20 31 20 32 20 7b 54 68 69 73 20 69 73 20  )} 1 2 {This is 
0d40: 74 68 65 20 73 74 72 69 6e 67 7d 0a 7d 20 5b 66  the string}.} [f
0d50: 6f 72 6d 61 74 20 7b 25 64 20 25 64 20 41 20 53  ormat {%d %d A S
0d60: 74 72 69 6e 67 3a 20 28 25 2d 33 30 73 29 7d 20  tring: (%-30s)} 
0d70: 31 20 32 20 7b 54 68 69 73 20 69 73 20 74 68 65  1 2 {This is the
0d80: 20 73 74 72 69 6e 67 7d 5d 0a 0a 64 6f 5f 74 65   string}]..do_te
0d90: 73 74 20 70 72 69 6e 74 66 2d 34 2e 31 20 7b 0a  st printf-4.1 {.
0da0: 20 20 73 71 6c 69 74 65 5f 6d 70 72 69 6e 74 66    sqlite_mprintf
0db0: 5f 73 74 72 20 7b 25 64 20 25 64 20 41 20 71 75  _str {%d %d A qu
0dc0: 6f 74 65 64 20 73 74 72 69 6e 67 3a 20 27 25 71  oted string: '%q
0dd0: 27 7d 20 31 20 32 20 7b 48 69 20 59 27 61 6c 6c  '} 1 2 {Hi Y'all
0de0: 7d 0a 7d 20 7b 31 20 32 20 41 20 71 75 6f 74 65  }.} {1 2 A quote
0df0: 64 20 73 74 72 69 6e 67 3a 20 27 48 69 20 59 27  d string: 'Hi Y'
0e00: 27 61 6c 6c 27 7d 0a 0a 66 69 6e 69 73 68 5f 74  'all'}..finish_t
0e10: 65 73 74 0a                                      est.