Hex Artifact Content

Artifact 1084c25e061808de583bc2ef68f0bc229c0d33fb:


0000: 23 21 20 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 20  #! /usr/bin/env 
0010: 74 63 6c 73 68 0a 0a 70 61 63 6b 61 67 65 20 72  tclsh..package r
0020: 65 71 75 69 72 65 20 54 63 6c 20 38 2e 35 0a 0a  equire Tcl 8.5..
0030: 73 65 74 20 57 45 42 44 49 52 20 22 2f 77 65 62  set WEBDIR "/web
0040: 2f 72 6b 65 65 6e 65 2f 64 65 76 65 6c 2f 6b 69  /rkeene/devel/ki
0050: 74 63 72 65 61 74 6f 72 2f 6b 69 74 62 75 69 6c  tcreator/kitbuil
0060: 64 22 0a 0a 69 66 20 7b 5b 6c 6c 65 6e 67 74 68  d"..if {[llength
0070: 20 24 61 72 67 76 5d 20 21 3d 20 31 7d 20 7b 0a   $argv] != 1} {.
0080: 09 70 75 74 73 20 73 74 64 65 72 72 20 22 55 73  .puts stderr "Us
0090: 61 67 65 3a 20 70 75 62 6c 69 73 68 2d 74 65 73  age: publish-tes
00a0: 74 73 20 3c 76 65 72 73 69 6f 6e 3e 22 0a 0a 09  ts <version>"...
00b0: 65 78 69 74 20 31 0a 7d 0a 0a 73 65 74 20 6b 69  exit 1.}..set ki
00c0: 74 63 72 65 61 74 6f 72 5f 76 65 72 73 20 5b 6c  tcreator_vers [l
00d0: 69 6e 64 65 78 20 24 61 72 67 76 20 30 5d 0a 0a  index $argv 0]..
00e0: 69 66 20 7b 24 6b 69 74 63 72 65 61 74 6f 72 5f  if {$kitcreator_
00f0: 76 65 72 73 20 3d 3d 20 22 22 7d 20 7b 0a 09 70  vers == ""} {..p
0100: 75 74 73 20 73 74 64 65 72 72 20 22 49 6e 76 61  uts stderr "Inva
0110: 6c 69 64 20 76 65 72 73 69 6f 6e 3a 20 5c 22 24  lid version: \"$
0120: 6b 69 74 63 72 65 61 74 6f 72 5f 76 65 72 73 5c  kitcreator_vers\
0130: 22 22 0a 0a 09 65 78 69 74 20 31 0a 7d 0a 0a 73  ""...exit 1.}..s
0140: 65 74 20 57 45 42 44 49 52 20 5b 66 69 6c 65 20  et WEBDIR [file 
0150: 6a 6f 69 6e 20 24 57 45 42 44 49 52 20 24 6b 69  join $WEBDIR $ki
0160: 74 63 72 65 61 74 6f 72 5f 76 65 72 73 5d 0a 0a  tcreator_vers]..
0170: 69 66 20 7b 21 5b 66 69 6c 65 20 69 73 64 69 72  if {![file isdir
0180: 20 22 6b 69 74 73 22 5d 7d 20 7b 0a 09 70 75 74   "kits"]} {..put
0190: 73 20 73 74 64 65 72 72 20 22 43 6f 75 6c 64 20  s stderr "Could 
01a0: 6e 6f 74 20 66 69 6e 64 20 6b 69 74 73 2f 20 64  not find kits/ d
01b0: 69 72 65 63 74 6f 72 79 2c 20 61 62 6f 72 74 69  irectory, aborti
01c0: 6e 67 2e 22 0a 0a 20 20 20 20 20 20 20 20 65 78  ng."..        ex
01d0: 69 74 20 31 0a 7d 0a 0a 73 65 74 20 6e 6f 6e 63  it 1.}..set nonc
01e0: 72 69 74 69 63 61 6c 74 65 73 74 73 20 5b 6c 69  riticaltests [li
01f0: 73 74 20 22 30 35 2d 6c 6f 63 61 6c 65 22 5d 0a  st "05-locale"].
0200: 0a 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  .###############
0210: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
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 0a 23 23 20 50  ###########.## P
0250: 52 4f 43 45 44 55 52 45 53 20 23 23 23 23 23 23  ROCEDURES ######
0260: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0270: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0280: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0290: 23 23 23 23 23 23 0a 23 23 23 23 23 23 23 23 23  ######.#########
02a0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
02b0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
02c0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
02d0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
02e0: 23 0a 70 72 6f 63 20 70 72 65 74 74 79 5f 70 72  #.proc pretty_pr
02f0: 69 6e 74 5f 6b 65 79 20 7b 6b 65 79 7d 20 7b 0a  int_key {key} {.
0300: 09 73 65 74 20 76 65 72 73 69 6f 6e 20 5b 6c 69  .set version [li
0310: 6e 64 65 78 20 24 6b 65 79 20 30 5d 0a 09 73 65  ndex $key 0]..se
0320: 74 20 6f 73 20 5b 6c 69 6e 64 65 78 20 24 6b 65  t os [lindex $ke
0330: 79 20 31 5d 0a 09 73 65 74 20 63 70 75 20 5b 6c  y 1]..set cpu [l
0340: 69 6e 64 65 78 20 24 6b 65 79 20 32 5d 0a 0a 09  index $key 2]...
0350: 73 77 69 74 63 68 20 2d 67 6c 6f 62 20 2d 2d 20  switch -glob -- 
0360: 24 76 65 72 73 69 6f 6e 20 7b 0a 09 09 22 63 76  $version {..."cv
0370: 73 5f 48 45 41 44 22 20 7b 0a 09 09 09 73 65 74  s_HEAD" {....set
0380: 20 76 65 72 73 69 6f 6e 20 22 66 72 6f 6d 20 43   version "from C
0390: 56 53 20 48 45 41 44 22 0a 09 09 7d 0a 09 09 22  VS HEAD"...}..."
03a0: 63 76 73 5f 2a 22 20 7b 0a 09 09 09 73 65 74 20  cvs_*" {....set 
03b0: 74 61 67 20 5b 6a 6f 69 6e 20 5b 6c 72 61 6e 67  tag [join [lrang
03c0: 65 20 5b 73 70 6c 69 74 20 24 76 65 72 73 69 6f  e [split $versio
03d0: 6e 20 5f 5d 20 31 20 65 6e 64 5d 20 5f 5d 0a 09  n _] 1 end] _]..
03e0: 09 09 73 65 74 20 76 65 72 73 69 6f 6e 20 22 66  ..set version "f
03f0: 72 6f 6d 20 43 56 53 20 74 61 67 20 24 74 61 67  rom CVS tag $tag
0400: 22 0a 09 09 7d 0a 09 09 64 65 66 61 75 6c 74 20  "...}...default 
0410: 7b 0a 09 09 09 73 65 74 20 76 65 72 73 69 6f 6e  {....set version
0420: 20 22 76 65 72 73 69 6f 6e 20 24 76 65 72 73 69   "version $versi
0430: 6f 6e 22 0a 09 09 7d 0a 09 7d 0a 0a 09 72 65 74  on"...}..}...ret
0440: 75 72 6e 20 22 54 63 6c 20 24 76 65 72 73 69 6f  urn "Tcl $versio
0450: 6e 20 66 6f 72 20 5b 73 74 72 69 6e 67 20 74 6f  n for [string to
0460: 74 69 74 6c 65 20 24 6f 73 5d 20 6f 6e 20 24 63  title $os] on $c
0470: 70 75 22 0a 7d 0a 0a 70 72 6f 63 20 70 72 65 74  pu".}..proc pret
0480: 74 79 5f 70 72 69 6e 74 5f 62 75 69 6c 64 69 6e  ty_print_buildin
0490: 66 6f 20 7b 62 75 69 6c 64 69 6e 66 6f 7d 20 7b  fo {buildinfo} {
04a0: 0a 09 73 65 74 20 64 65 73 63 20 5b 6c 69 73 74  ..set desc [list
04b0: 5d 0a 09 66 6f 72 65 61 63 68 20 74 61 67 20 5b  ]..foreach tag [
04c0: 6c 69 73 74 20 6d 69 6e 20 73 74 61 74 69 63 20  list min static 
04d0: 6e 6f 74 6b 20 73 74 61 74 69 63 74 6b 20 75 6e  notk statictk un
04e0: 74 68 72 65 61 64 65 64 20 74 68 72 65 61 64 65  threaded threade
04f0: 64 20 7a 69 70 5d 20 7b 0a 09 09 69 66 20 7b 5b  d zip] {...if {[
0500: 6c 73 65 61 72 63 68 20 2d 65 78 61 63 74 20 24  lsearch -exact $
0510: 62 75 69 6c 64 69 6e 66 6f 20 24 74 61 67 5d 20  buildinfo $tag] 
0520: 21 3d 20 2d 31 7d 20 7b 0a 09 09 09 73 77 69 74  != -1} {....swit
0530: 63 68 20 2d 2d 20 24 74 61 67 20 7b 0a 09 09 09  ch -- $tag {....
0540: 09 22 6d 69 6e 22 20 7b 0a 09 09 09 09 09 6c 61  ."min" {......la
0550: 70 70 65 6e 64 20 64 65 73 63 20 22 4d 69 6e 69  ppend desc "Mini
0560: 6d 61 6c 6c 79 20 42 75 69 6c 74 22 0a 09 09 09  mally Built"....
0570: 09 7d 0a 09 09 09 09 22 73 74 61 74 69 63 22 20  .}....."static" 
0580: 7b 0a 09 09 09 09 09 6c 61 70 70 65 6e 64 20 64  {......lappend d
0590: 65 73 63 20 22 53 74 61 74 69 63 61 6c 6c 79 20  esc "Statically 
05a0: 4c 69 6e 6b 65 64 22 0a 09 09 09 09 7d 0a 09 09  Linked".....}...
05b0: 09 09 22 6e 6f 74 6b 22 20 7b 0a 09 09 09 09 09  .."notk" {......
05c0: 6c 61 70 70 65 6e 64 20 64 65 73 63 20 22 57 69  lappend desc "Wi
05d0: 74 68 6f 75 74 20 54 6b 22 0a 09 09 09 09 7d 0a  thout Tk".....}.
05e0: 09 09 09 09 22 73 74 61 74 69 63 74 6b 22 20 7b  ...."statictk" {
05f0: 0a 09 09 09 09 09 6c 61 70 70 65 6e 64 20 64 65  ......lappend de
0600: 73 63 20 22 54 6b 20 6c 69 6e 6b 65 64 20 74 6f  sc "Tk linked to
0610: 20 4b 69 74 22 0a 09 09 09 09 7d 0a 09 09 09 09   Kit".....}.....
0620: 22 74 68 72 65 61 64 65 64 22 20 7b 0a 09 09 09  "threaded" {....
0630: 09 09 6c 61 70 70 65 6e 64 20 64 65 73 63 20 22  ..lappend desc "
0640: 54 68 72 65 61 64 65 64 22 0a 09 09 09 09 7d 0a  Threaded".....}.
0650: 09 09 09 09 22 75 6e 74 68 72 65 61 64 65 64 22  ...."unthreaded"
0660: 20 7b 0a 09 09 09 09 09 6c 61 70 70 65 6e 64 20   {......lappend 
0670: 64 65 73 63 20 22 57 69 74 68 6f 75 74 20 54 68  desc "Without Th
0680: 72 65 61 64 73 22 0a 09 09 09 09 7d 0a 09 09 09  reads".....}....
0690: 09 22 7a 69 70 22 20 7b 0a 09 09 09 09 09 6c 61  ."zip" {......la
06a0: 70 70 65 6e 64 20 64 65 73 63 20 22 4b 69 74 20  ppend desc "Kit 
06b0: 46 69 6c 65 73 79 73 74 65 6d 20 69 6e 20 5a 69  Filesystem in Zi
06c0: 70 22 0a 09 09 09 09 7d 0a 09 09 09 7d 0a 09 09  p".....}....}...
06d0: 7d 0a 09 7d 0a 0a 09 69 66 20 7b 5b 6c 6c 65 6e  }..}...if {[llen
06e0: 67 74 68 20 24 64 65 73 63 5d 20 3d 3d 20 30 7d  gth $desc] == 0}
06f0: 20 7b 0a 09 09 72 65 74 75 72 6e 20 22 44 65 66   {...return "Def
0700: 61 75 6c 74 20 42 75 69 6c 64 22 0a 09 7d 0a 0a  ault Build"..}..
0710: 09 72 65 74 75 72 6e 20 5b 6a 6f 69 6e 20 24 64  .return [join $d
0720: 65 73 63 20 7b 2c 20 7d 5d 0a 7d 0a 0a 70 72 6f  esc {, }].}..pro
0730: 63 20 70 72 65 74 74 79 5f 70 72 69 6e 74 5f 73  c pretty_print_s
0740: 69 7a 65 20 7b 73 69 7a 65 7d 20 7b 0a 09 66 6f  ize {size} {..fo
0750: 72 65 61 63 68 20 75 6e 69 74 20 5b 6c 69 73 74  reach unit [list
0760: 20 22 22 20 4b 20 4d 20 47 20 54 20 50 5d 20 7b   "" K M G T P] {
0770: 0a 09 09 69 66 20 7b 24 73 69 7a 65 20 3c 20 31  ...if {$size < 1
0780: 30 32 34 7d 20 7b 0a 09 09 09 69 66 20 7b 24 73  024} {....if {$s
0790: 69 7a 65 20 3c 20 31 30 7d 20 7b 0a 09 09 09 09  ize < 10} {.....
07a0: 73 65 74 20 73 69 7a 65 20 5b 65 78 70 72 20 7b  set size [expr {
07b0: 72 6f 75 6e 64 28 24 73 69 7a 65 20 2a 20 31 30  round($size * 10
07c0: 29 20 2f 20 31 30 2e 30 7d 5d 0a 09 09 09 7d 20  ) / 10.0}]....} 
07d0: 65 6c 73 65 20 7b 0a 09 09 09 09 73 65 74 20 73  else {.....set s
07e0: 69 7a 65 20 5b 65 78 70 72 20 7b 72 6f 75 6e 64  ize [expr {round
07f0: 28 24 73 69 7a 65 29 7d 5d 0a 09 09 09 7d 0a 0a  ($size)}]....}..
0800: 09 09 09 72 65 74 75 72 6e 20 22 24 73 69 7a 65  ...return "$size
0810: 20 5b 73 74 72 69 6e 67 20 74 72 69 6d 20 24 7b   [string trim ${
0820: 75 6e 69 74 7d 42 5d 22 0a 09 09 7d 0a 0a 09 09  unit}B]"...}....
0830: 73 65 74 20 73 69 7a 65 20 5b 65 78 70 72 20 7b  set size [expr {
0840: 24 7b 73 69 7a 65 7d 20 2f 20 31 30 32 34 2e 30  ${size} / 1024.0
0850: 30 30 7d 5d 0a 09 7d 0a 7d 0a 0a 23 23 23 23 23  00}]..}.}..#####
0860: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0870: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0880: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0890: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
08a0: 23 23 23 23 23 0a 23 23 20 4d 41 49 4e 20 42 4f  #####.## MAIN BO
08b0: 44 59 20 23 23 23 23 23 23 23 23 23 23 23 23 23  DY #############
08c0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
08d0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
08e0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
08f0: 0a 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  .###############
0900: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0910: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0920: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0930: 23 23 23 23 23 23 23 23 23 23 23 0a 0a 66 69 6c  ###########..fil
0940: 65 20 64 65 6c 65 74 65 20 2d 66 6f 72 63 65 20  e delete -force 
0950: 2d 2d 20 24 57 45 42 44 49 52 0a 66 69 6c 65 20  -- $WEBDIR.file 
0960: 6d 6b 64 69 72 20 24 57 45 42 44 49 52 0a 0a 73  mkdir $WEBDIR..s
0970: 65 74 20 66 64 20 5b 6f 70 65 6e 20 5b 66 69 6c  et fd [open [fil
0980: 65 20 6a 6f 69 6e 20 24 57 45 42 44 49 52 20 69  e join $WEBDIR i
0990: 6e 64 65 78 2e 68 74 6d 6c 5d 20 77 5d 0a 0a 66  ndex.html] w]..f
09a0: 69 6c 65 20 63 6f 70 79 20 2d 66 6f 72 63 65 20  ile copy -force 
09b0: 2d 2d 20 7b 2a 7d 5b 67 6c 6f 62 20 6b 69 74 73  -- {*}[glob kits
09c0: 2f 2a 5d 20 24 57 45 42 44 49 52 0a 0a 73 65 74  /*] $WEBDIR..set
09d0: 20 74 6f 74 61 6c 74 65 73 74 73 5f 63 6f 75 6e   totaltests_coun
09e0: 74 20 5b 6c 6c 65 6e 67 74 68 20 5b 67 6c 6f 62  t [llength [glob
09f0: 20 74 65 73 74 73 2f 2a 2e 74 63 6c 5d 5d 0a 0a   tests/*.tcl]]..
0a00: 66 6f 72 65 61 63 68 20 66 69 6c 65 20 5b 6c 73  foreach file [ls
0a10: 6f 72 74 20 2d 64 69 63 74 69 6f 6e 61 72 79 20  ort -dictionary 
0a20: 5b 67 6c 6f 62 20 2d 64 69 72 65 63 74 6f 72 79  [glob -directory
0a30: 20 24 57 45 42 44 49 52 20 2a 5d 5d 20 7b 0a 09   $WEBDIR *]] {..
0a40: 69 66 20 7b 5b 66 69 6c 65 20 69 73 64 69 72 65  if {[file isdire
0a50: 63 74 6f 72 79 20 24 66 69 6c 65 5d 7d 20 7b 0a  ctory $file]} {.
0a60: 09 09 63 6f 6e 74 69 6e 75 65 0a 09 7d 0a 0a 09  ..continue..}...
0a70: 73 77 69 74 63 68 20 2d 67 6c 6f 62 20 2d 2d 20  switch -glob -- 
0a80: 24 66 69 6c 65 20 7b 0a 09 09 22 2a 2e 6c 6f 67  $file {..."*.log
0a90: 22 20 2d 20 22 2a 2e 74 74 6d 6c 22 20 2d 20 22  " - "*.ttml" - "
0aa0: 2a 2e 68 74 6d 6c 22 20 2d 20 22 2a 2e 64 65 73  *.html" - "*.des
0ab0: 63 22 20 7b 0a 09 09 09 63 6f 6e 74 69 6e 75 65  c" {....continue
0ac0: 0a 09 09 7d 0a 09 7d 0a 0a 09 23 20 44 65 72 69  ...}..}...# Deri
0ad0: 76 65 20 77 68 61 74 20 77 65 20 63 61 6e 20 66  ve what we can f
0ae0: 72 6f 6d 20 74 68 65 20 66 69 6c 65 6e 61 6d 65  rom the filename
0af0: 0a 09 73 65 74 20 73 68 6f 72 74 66 69 6c 65 20  ..set shortfile 
0b00: 5b 66 69 6c 65 20 74 61 69 6c 20 24 66 69 6c 65  [file tail $file
0b10: 5d 0a 09 73 65 74 20 62 75 69 6c 64 66 69 6c 65  ]..set buildfile
0b20: 20 22 24 7b 73 68 6f 72 74 66 69 6c 65 7d 2d 62   "${shortfile}-b
0b30: 75 69 6c 64 2e 6c 6f 67 22 0a 09 73 65 74 20 66  uild.log"..set f
0b40: 61 69 6c 65 64 74 65 73 74 73 20 5b 67 6c 6f 62  ailedtests [glob
0b50: 20 2d 6e 6f 63 6f 6d 70 6c 61 69 6e 20 2d 74 61   -nocomplain -ta
0b60: 69 6c 73 20 2d 64 69 72 65 63 74 6f 72 79 20 24  ils -directory $
0b70: 57 45 42 44 49 52 20 22 24 7b 73 68 6f 72 74 66  WEBDIR "${shortf
0b80: 69 6c 65 7d 2d 5c 5b 30 2d 39 5c 5d 5c 5b 30 2d  ile}-\[0-9\]\[0-
0b90: 39 5c 5d 2d 2a 2e 6c 6f 67 22 5d 0a 0a 09 23 23  9\]-*.log"]...##
0ba0: 20 53 70 6c 69 74 20 74 68 65 20 66 69 6c 65 6e   Split the filen
0bb0: 61 6d 65 20 69 6e 74 6f 20 70 61 72 74 73 20 61  ame into parts a
0bc0: 6e 64 20 73 74 6f 72 65 20 65 61 63 68 20 70 61  nd store each pa
0bd0: 72 74 0a 09 73 65 74 20 6b 69 74 62 75 69 6c 64  rt..set kitbuild
0be0: 69 6e 66 6f 20 5b 73 70 6c 69 74 20 24 73 68 6f  info [split $sho
0bf0: 72 74 66 69 6c 65 20 2d 5d 0a 09 73 65 74 20 74  rtfile -]..set t
0c00: 63 6c 76 65 72 73 69 6f 6e 20 5b 6c 69 6e 64 65  clversion [linde
0c10: 78 20 24 6b 69 74 62 75 69 6c 64 69 6e 66 6f 20  x $kitbuildinfo 
0c20: 31 5d 0a 09 73 65 74 20 6b 69 74 62 75 69 6c 64  1]..set kitbuild
0c30: 69 6e 66 6f 20 5b 6c 73 6f 72 74 20 2d 64 69 63  info [lsort -dic
0c40: 74 69 6f 6e 61 72 79 20 5b 6c 72 61 6e 67 65 20  tionary [lrange 
0c50: 24 6b 69 74 62 75 69 6c 64 69 6e 66 6f 20 32 20  $kitbuildinfo 2 
0c60: 65 6e 64 5d 5d 0a 0a 09 23 23 20 44 65 74 65 72  end]]...## Deter
0c70: 6d 69 6e 65 20 4b 69 74 20 4f 53 20 66 72 6f 6d  mine Kit OS from
0c80: 20 72 61 6e 64 6f 6d 20 66 69 6c 65 20 6e 61 6d   random file nam
0c90: 65 73 0a 09 75 6e 73 65 74 20 2d 6e 6f 63 6f 6d  es..unset -nocom
0ca0: 70 6c 61 69 6e 20 6b 69 74 6f 73 20 6b 69 74 63  plain kitos kitc
0cb0: 70 75 0a 09 69 66 20 7b 5b 6c 73 65 61 72 63 68  pu..if {[lsearch
0cc0: 20 2d 65 78 61 63 74 20 24 6b 69 74 62 75 69 6c   -exact $kitbuil
0cd0: 64 69 6e 66 6f 20 22 77 69 6e 33 32 22 5d 20 21  dinfo "win32"] !
0ce0: 3d 20 2d 31 7d 20 7b 0a 09 09 73 65 74 20 69 64  = -1} {...set id
0cf0: 78 20 5b 6c 73 65 61 72 63 68 20 2d 65 78 61 63  x [lsearch -exac
0d00: 74 20 24 6b 69 74 62 75 69 6c 64 69 6e 66 6f 20  t $kitbuildinfo 
0d10: 22 77 69 6e 33 32 22 5d 0a 09 09 73 65 74 20 6b  "win32"]...set k
0d20: 69 74 62 75 69 6c 64 69 6e 66 6f 20 5b 6c 72 65  itbuildinfo [lre
0d30: 70 6c 61 63 65 20 24 6b 69 74 62 75 69 6c 64 69  place $kitbuildi
0d40: 6e 66 6f 20 24 69 64 78 20 24 69 64 78 5d 0a 09  nfo $idx $idx]..
0d50: 09 73 65 74 20 6b 69 74 6f 73 20 22 77 69 6e 64  .set kitos "wind
0d60: 6f 77 73 22 0a 09 09 73 65 74 20 6b 69 74 63 70  ows"...set kitcp
0d70: 75 20 22 69 35 38 36 22 0a 09 7d 20 65 6c 73 65  u "i586"..} else
0d80: 69 66 20 7b 5b 6c 73 65 61 72 63 68 20 2d 65 78  if {[lsearch -ex
0d90: 61 63 74 20 24 6b 69 74 62 75 69 6c 64 69 6e 66  act $kitbuildinf
0da0: 6f 20 22 61 72 6d 22 5d 20 21 3d 20 2d 31 7d 20  o "arm"] != -1} 
0db0: 7b 0a 09 09 73 65 74 20 69 64 78 20 5b 6c 73 65  {...set idx [lse
0dc0: 61 72 63 68 20 2d 65 78 61 63 74 20 24 6b 69 74  arch -exact $kit
0dd0: 62 75 69 6c 64 69 6e 66 6f 20 22 61 72 6d 22 5d  buildinfo "arm"]
0de0: 0a 09 09 73 65 74 20 6b 69 74 62 75 69 6c 64 69  ...set kitbuildi
0df0: 6e 66 6f 20 5b 6c 72 65 70 6c 61 63 65 20 24 6b  nfo [lreplace $k
0e00: 69 74 62 75 69 6c 64 69 6e 66 6f 20 24 69 64 78  itbuildinfo $idx
0e10: 20 24 69 64 78 5d 0a 09 09 73 65 74 20 6b 69 74   $idx]...set kit
0e20: 6f 73 20 22 6c 69 6e 75 78 22 0a 09 09 73 65 74  os "linux"...set
0e30: 20 6b 69 74 63 70 75 20 22 61 72 6d 22 0a 09 7d   kitcpu "arm"..}
0e40: 20 65 6c 73 65 20 7b 0a 09 09 73 65 74 20 69 64   else {...set id
0e50: 78 20 5b 6c 73 65 61 72 63 68 20 2d 65 78 61 63  x [lsearch -exac
0e60: 74 20 24 6b 69 74 62 75 69 6c 64 69 6e 66 6f 20  t $kitbuildinfo 
0e70: 22 6e 6f 72 6d 61 6c 22 5d 0a 09 09 69 66 20 7b  "normal"]...if {
0e80: 24 69 64 78 20 21 3d 20 2d 31 7d 20 7b 0a 09 09  $idx != -1} {...
0e90: 09 73 65 74 20 6b 69 74 62 75 69 6c 64 69 6e 66  .set kitbuildinf
0ea0: 6f 20 5b 6c 72 65 70 6c 61 63 65 20 24 6b 69 74  o [lreplace $kit
0eb0: 62 75 69 6c 64 69 6e 66 6f 20 24 69 64 78 20 24  buildinfo $idx $
0ec0: 69 64 78 5d 0a 09 09 7d 0a 0a 09 09 73 65 74 20  idx]...}....set 
0ed0: 6b 69 74 6f 73 20 5b 73 74 72 69 6e 67 20 74 6f  kitos [string to
0ee0: 6c 6f 77 65 72 20 24 74 63 6c 5f 70 6c 61 74 66  lower $tcl_platf
0ef0: 6f 72 6d 28 6f 73 29 5d 0a 09 09 73 65 74 20 6b  orm(os)]...set k
0f00: 69 74 63 70 75 20 5b 73 74 72 69 6e 67 20 74 6f  itcpu [string to
0f10: 6c 6f 77 65 72 20 24 74 63 6c 5f 70 6c 61 74 66  lower $tcl_platf
0f20: 6f 72 6d 28 6d 61 63 68 69 6e 65 29 5d 0a 09 7d  orm(machine)]..}
0f30: 0a 0a 09 23 20 47 65 6e 65 72 61 74 65 20 61 72  ...# Generate ar
0f40: 72 61 79 20 74 6f 20 64 65 73 63 72 69 62 65 20  ray to describe 
0f50: 74 68 69 73 20 6b 69 74 0a 09 75 6e 73 65 74 20  this kit..unset 
0f60: 2d 6e 6f 63 6f 6d 70 6c 61 69 6e 20 6b 69 74 69  -nocomplain kiti
0f70: 6e 66 6f 0a 09 73 65 74 20 6b 69 74 69 6e 66 6f  nfo..set kitinfo
0f80: 28 76 65 72 73 69 6f 6e 29 20 24 74 63 6c 76 65  (version) $tclve
0f90: 72 73 69 6f 6e 0a 09 73 65 74 20 6b 69 74 69 6e  rsion..set kitin
0fa0: 66 6f 28 66 69 6c 65 29 20 24 73 68 6f 72 74 66  fo(file) $shortf
0fb0: 69 6c 65 0a 09 73 65 74 20 6b 69 74 69 6e 66 6f  ile..set kitinfo
0fc0: 28 62 75 69 6c 64 66 69 6c 65 29 20 24 62 75 69  (buildfile) $bui
0fd0: 6c 64 66 69 6c 65 0a 09 73 65 74 20 6b 69 74 69  ldfile..set kiti
0fe0: 6e 66 6f 28 66 61 69 6c 65 64 74 65 73 74 73 29  nfo(failedtests)
0ff0: 20 24 66 61 69 6c 65 64 74 65 73 74 73 0a 09 73   $failedtests..s
1000: 65 74 20 6b 69 74 69 6e 66 6f 28 62 75 69 6c 64  et kitinfo(build
1010: 66 6c 61 67 73 29 20 24 6b 69 74 62 75 69 6c 64  flags) $kitbuild
1020: 69 6e 66 6f 0a 09 73 65 74 20 6b 69 74 69 6e 66  info..set kitinf
1030: 6f 28 6f 73 29 20 24 6b 69 74 6f 73 0a 09 73 65  o(os) $kitos..se
1040: 74 20 6b 69 74 69 6e 66 6f 28 63 70 75 29 20 24  t kitinfo(cpu) $
1050: 6b 69 74 63 70 75 0a 0a 09 23 20 53 74 6f 72 65  kitcpu...# Store
1060: 20 6b 69 74 20 69 6e 66 6f 72 6d 61 74 69 6f 6e   kit information
1070: 20 77 69 74 68 20 61 6c 6c 20 6b 69 74 73 0a 09   with all kits..
1080: 73 65 74 20 6b 65 79 20 5b 6c 69 73 74 20 24 74  set key [list $t
1090: 63 6c 76 65 72 73 69 6f 6e 20 24 6b 69 74 6f 73  clversion $kitos
10a0: 20 24 6b 69 74 63 70 75 5d 0a 09 6c 61 70 70 65   $kitcpu]..lappe
10b0: 6e 64 20 61 6c 6c 6b 69 74 69 6e 66 6f 28 24 6b  nd allkitinfo($k
10c0: 65 79 29 20 5b 61 72 72 61 79 20 67 65 74 20 6b  ey) [array get k
10d0: 69 74 69 6e 66 6f 5d 0a 7d 0a 0a 70 75 74 73 20  itinfo].}..puts 
10e0: 24 66 64 20 22 3c 68 74 6d 6c 3e 22 0a 70 75 74  $fd "<html>".put
10f0: 73 20 24 66 64 20 22 20 20 3c 68 65 61 64 3e 22  s $fd "  <head>"
1100: 0a 70 75 74 73 20 24 66 64 20 22 20 20 20 20 3c  .puts $fd "    <
1110: 74 69 74 6c 65 3e 4b 69 74 43 72 65 61 74 6f 72  title>KitCreator
1120: 20 42 75 69 6c 64 20 61 6e 64 20 54 65 73 74 20   Build and Test 
1130: 53 74 61 74 75 73 3c 2f 74 69 74 6c 65 3e 22 0a  Status</title>".
1140: 70 75 74 73 20 24 66 64 20 22 20 20 3c 2f 68 65  puts $fd "  </he
1150: 61 64 3e 22 0a 70 75 74 73 20 24 66 64 20 22 20  ad>".puts $fd " 
1160: 20 3c 62 6f 64 79 3e 22 0a 70 75 74 73 20 24 66   <body>".puts $f
1170: 64 20 22 20 20 20 20 3c 68 31 3e 4b 69 74 43 72  d "    <h1>KitCr
1180: 65 61 74 6f 72 20 42 75 69 6c 64 20 61 6e 64 20  eator Build and 
1190: 54 65 73 74 20 53 74 61 74 75 73 3c 2f 68 31 3e  Test Status</h1>
11a0: 22 0a 70 75 74 73 20 24 66 64 20 22 20 20 20 20  ".puts $fd "    
11b0: 3c 70 3e 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67  <p>The following
11c0: 20 74 61 62 6c 65 20 72 65 70 72 65 73 65 6e 74   table represent
11d0: 73 20 74 68 65 20 73 74 61 74 75 73 20 6f 66 20  s the status of 
11e0: 74 68 65 20 74 65 73 74 20 72 65 73 75 6c 74 73  the test results
11f0: 20 66 72 6f 6d 20 74 68 65 20 4b 69 74 43 72 65   from the KitCre
1200: 61 74 6f 72 20 74 65 73 74 20 73 75 69 74 65 2e  ator test suite.
1210: 3c 2f 70 3e 22 0a 70 75 74 73 20 24 66 64 20 22  </p>".puts $fd "
1220: 20 20 20 20 3c 74 61 62 6c 65 20 63 65 6c 6c 70      <table cellp
1230: 61 64 64 69 6e 67 3d 5c 22 32 5c 22 20 62 6f 72  adding=\"2\" bor
1240: 64 65 72 3d 5c 22 31 5c 22 3e 22 0a 66 6f 72 65  der=\"1\">".fore
1250: 61 63 68 20 6b 65 79 20 5b 6c 73 6f 72 74 20 2d  ach key [lsort -
1260: 64 69 63 74 69 6f 6e 61 72 79 20 5b 61 72 72 61  dictionary [arra
1270: 79 20 6e 61 6d 65 73 20 61 6c 6c 6b 69 74 69 6e  y names allkitin
1280: 66 6f 5d 5d 20 7b 0a 09 70 75 74 73 20 24 66 64  fo]] {..puts $fd
1290: 20 22 20 20 20 20 20 20 3c 74 72 3e 22 0a 09 70   "      <tr>"..p
12a0: 75 74 73 20 24 66 64 20 22 20 20 20 20 20 20 20  uts $fd "       
12b0: 20 3c 74 68 3e 3c 75 3e 54 63 6c 6b 69 74 20 66   <th><u>Tclkit f
12c0: 6f 72 20 5b 70 72 65 74 74 79 5f 70 72 69 6e 74  or [pretty_print
12d0: 5f 6b 65 79 20 24 6b 65 79 5d 3c 2f 75 3e 3c 2f  _key $key]</u></
12e0: 74 68 3e 22 0a 09 70 75 74 73 20 24 66 64 20 22  th>"..puts $fd "
12f0: 20 20 20 20 20 20 20 20 3c 74 68 3e 4b 69 74 20          <th>Kit 
1300: 53 69 7a 65 3c 2f 74 68 3e 22 0a 09 70 75 74 73  Size</th>"..puts
1310: 20 24 66 64 20 22 20 20 20 20 20 20 20 20 3c 74   $fd "        <t
1320: 68 3e 53 74 61 74 75 73 3c 2f 74 68 3e 22 0a 09  h>Status</th>"..
1330: 70 75 74 73 20 24 66 64 20 22 20 20 20 20 20 20  puts $fd "      
1340: 20 20 3c 74 68 3e 4c 6f 67 3c 2f 74 68 3e 22 0a    <th>Log</th>".
1350: 09 70 75 74 73 20 24 66 64 20 22 20 20 20 20 20  .puts $fd "     
1360: 20 20 20 3c 74 68 3e 46 61 69 6c 65 64 20 54 65     <th>Failed Te
1370: 73 74 73 3c 2f 74 68 3e 22 0a 09 70 75 74 73 20  sts</th>"..puts 
1380: 24 66 64 20 22 20 20 20 20 20 20 3c 2f 74 72 3e  $fd "      </tr>
1390: 22 0a 09 66 6f 72 65 61 63 68 20 6b 69 74 69 6e  "..foreach kitin
13a0: 66 6f 5f 6c 69 73 74 20 24 61 6c 6c 6b 69 74 69  fo_list $allkiti
13b0: 6e 66 6f 28 24 6b 65 79 29 20 7b 0a 09 09 70 75  nfo($key) {...pu
13c0: 74 73 20 24 66 64 20 22 20 20 20 20 20 20 3c 74  ts $fd "      <t
13d0: 72 3e 22 0a 09 09 75 6e 73 65 74 20 2d 6e 6f 63  r>"...unset -noc
13e0: 6f 6d 70 6c 61 69 6e 20 6b 69 74 69 6e 66 6f 0a  omplain kitinfo.
13f0: 09 09 61 72 72 61 79 20 73 65 74 20 6b 69 74 69  ..array set kiti
1400: 6e 66 6f 20 24 6b 69 74 69 6e 66 6f 5f 6c 69 73  nfo $kitinfo_lis
1410: 74 0a 0a 09 09 69 66 20 7b 5b 6c 6c 65 6e 67 74  t....if {[llengt
1420: 68 20 24 6b 69 74 69 6e 66 6f 28 66 61 69 6c 65  h $kitinfo(faile
1430: 64 74 65 73 74 73 29 5d 20 3d 3d 20 30 7d 20 7b  dtests)] == 0} {
1440: 0a 09 09 09 73 65 74 20 73 74 61 74 75 73 20 22  ....set status "
1450: 4f 4b 22 0a 09 09 09 73 65 74 20 62 67 63 6f 6c  OK"....set bgcol
1460: 6f 72 20 22 67 72 65 65 6e 22 0a 09 09 7d 20 65  or "green"...} e
1470: 6c 73 65 20 7b 0a 09 09 09 73 65 74 20 73 74 61  lse {....set sta
1480: 74 75 73 20 22 46 41 49 4c 45 44 22 0a 09 09 09  tus "FAILED"....
1490: 73 65 74 20 62 67 63 6f 6c 6f 72 20 22 79 65 6c  set bgcolor "yel
14a0: 6c 6f 77 22 0a 09 09 7d 0a 0a 09 09 73 65 74 20  low"...}....set 
14b0: 66 61 69 6c 65 64 74 65 73 74 73 68 74 6d 6c 20  failedtestshtml 
14c0: 5b 6c 69 73 74 5d 0a 09 09 66 6f 72 65 61 63 68  [list]...foreach
14d0: 20 74 65 73 74 20 5b 6c 73 6f 72 74 20 2d 64 69   test [lsort -di
14e0: 63 74 69 6f 6e 61 72 79 20 24 6b 69 74 69 6e 66  ctionary $kitinf
14f0: 6f 28 66 61 69 6c 65 64 74 65 73 74 73 29 5d 20  o(failedtests)] 
1500: 7b 0a 09 09 09 73 65 74 20 74 65 73 74 6e 61 6d  {....set testnam
1510: 65 20 5b 66 69 6c 65 20 72 6f 6f 74 6e 61 6d 65  e [file rootname
1520: 20 24 74 65 73 74 5d 0a 09 09 09 73 65 74 20 74   $test]....set t
1530: 65 73 74 6e 61 6d 65 20 5b 73 70 6c 69 74 20 24  estname [split $
1540: 74 65 73 74 6e 61 6d 65 20 2d 5d 0a 0a 09 09 09  testname -].....
1550: 66 6f 72 20 7b 73 65 74 20 69 64 78 20 30 7d 20  for {set idx 0} 
1560: 7b 24 69 64 78 20 3c 20 5b 6c 6c 65 6e 67 74 68  {$idx < [llength
1570: 20 24 74 65 73 74 6e 61 6d 65 5d 7d 20 7b 69 6e   $testname]} {in
1580: 63 72 20 69 64 78 7d 20 7b 0a 09 09 09 09 73 65  cr idx} {.....se
1590: 74 20 76 61 6c 20 5b 6c 69 6e 64 65 78 20 24 74  t val [lindex $t
15a0: 65 73 74 6e 61 6d 65 20 24 69 64 78 5d 0a 09 09  estname $idx]...
15b0: 09 09 69 66 20 7b 5b 73 74 72 69 6e 67 20 6d 61  ..if {[string ma
15c0: 74 63 68 20 7b 5b 30 2d 39 5d 5b 30 2d 39 5d 7d  tch {[0-9][0-9]}
15d0: 20 24 76 61 6c 5d 7d 20 7b 0a 09 09 09 09 09 73   $val]} {......s
15e0: 65 74 20 74 65 73 74 6e 61 6d 65 20 5b 6a 6f 69  et testname [joi
15f0: 6e 20 5b 6c 72 61 6e 67 65 20 24 74 65 73 74 6e  n [lrange $testn
1600: 61 6d 65 20 24 69 64 78 20 65 6e 64 5d 20 2d 5d  ame $idx end] -]
1610: 0a 0a 09 09 09 09 09 62 72 65 61 6b 0a 09 09 09  .......break....
1620: 09 7d 0a 09 09 09 7d 0a 0a 09 09 09 69 66 20 7b  .}....}.....if {
1630: 5b 6c 73 65 61 72 63 68 20 2d 65 78 61 63 74 20  [lsearch -exact 
1640: 24 6e 6f 6e 63 72 69 74 69 63 61 6c 74 65 73 74  $noncriticaltest
1650: 73 20 24 74 65 73 74 6e 61 6d 65 5d 20 3d 3d 20  s $testname] == 
1660: 2d 31 7d 20 7b 0a 09 09 09 09 73 65 74 20 62 67  -1} {.....set bg
1670: 63 6f 6c 6f 72 20 22 72 65 64 22 0a 09 09 09 7d  color "red"....}
1680: 0a 0a 09 09 09 6c 61 70 70 65 6e 64 20 66 61 69  .....lappend fai
1690: 6c 65 64 74 65 73 74 73 68 74 6d 6c 20 22 3c 73  ledtestshtml "<s
16a0: 6d 61 6c 6c 3e 3c 61 20 68 72 65 66 3d 5c 22 24  mall><a href=\"$
16b0: 74 65 73 74 5c 22 3e 24 74 65 73 74 6e 61 6d 65  test\">$testname
16c0: 3c 2f 61 3e 3c 2f 73 6d 61 6c 6c 3e 22 0a 09 09  </a></small>"...
16d0: 7d 0a 0a 0a 09 09 70 75 74 73 20 24 66 64 20 22  }.....puts $fd "
16e0: 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 61 20 68          <td><a h
16f0: 72 65 66 3d 5c 22 24 6b 69 74 69 6e 66 6f 28 66  ref=\"$kitinfo(f
1700: 69 6c 65 29 5c 22 3e 5b 70 72 65 74 74 79 5f 70  ile)\">[pretty_p
1710: 72 69 6e 74 5f 62 75 69 6c 64 69 6e 66 6f 20 24  rint_buildinfo $
1720: 6b 69 74 69 6e 66 6f 28 62 75 69 6c 64 66 6c 61  kitinfo(buildfla
1730: 67 73 29 5d 3c 2f 61 3e 3c 2f 74 64 3e 22 0a 09  gs)]</a></td>"..
1740: 09 70 75 74 73 20 24 66 64 20 22 20 20 20 20 20  .puts $fd "     
1750: 20 20 20 3c 74 64 3e 5b 70 72 65 74 74 79 5f 70     <td>[pretty_p
1760: 72 69 6e 74 5f 73 69 7a 65 20 5b 66 69 6c 65 20  rint_size [file 
1770: 73 69 7a 65 20 5b 66 69 6c 65 20 6a 6f 69 6e 20  size [file join 
1780: 24 57 45 42 44 49 52 20 24 6b 69 74 69 6e 66 6f  $WEBDIR $kitinfo
1790: 28 66 69 6c 65 29 5d 5d 5d 3c 2f 74 64 3e 22 0a  (file)]]]</td>".
17a0: 09 09 70 75 74 73 20 24 66 64 20 22 20 20 20 20  ..puts $fd "    
17b0: 20 20 20 20 3c 74 64 20 62 67 63 6f 6c 6f 72 3d      <td bgcolor=
17c0: 5c 22 24 62 67 63 6f 6c 6f 72 5c 22 3e 24 73 74  \"$bgcolor\">$st
17d0: 61 74 75 73 3c 2f 74 64 3e 22 0a 09 09 70 75 74  atus</td>"...put
17e0: 73 20 24 66 64 20 22 20 20 20 20 20 20 20 20 3c  s $fd "        <
17f0: 74 64 3e 3c 73 6d 61 6c 6c 3e 3c 61 20 68 72 65  td><small><a hre
1800: 66 3d 5c 22 24 6b 69 74 69 6e 66 6f 28 62 75 69  f=\"$kitinfo(bui
1810: 6c 64 66 69 6c 65 29 5c 22 3e 28 5b 70 72 65 74  ldfile)\">([pret
1820: 74 79 5f 70 72 69 6e 74 5f 73 69 7a 65 20 5b 66  ty_print_size [f
1830: 69 6c 65 20 73 69 7a 65 20 5b 66 69 6c 65 20 6a  ile size [file j
1840: 6f 69 6e 20 24 57 45 42 44 49 52 20 24 6b 69 74  oin $WEBDIR $kit
1850: 69 6e 66 6f 28 62 75 69 6c 64 66 69 6c 65 29 5d  info(buildfile)]
1860: 5d 5d 29 3c 2f 61 3e 3c 2f 73 6d 61 6c 6c 3e 3c  ]])</a></small><
1870: 2f 74 64 3e 22 0a 09 09 70 75 74 73 20 24 66 64  /td>"...puts $fd
1880: 20 22 20 20 20 20 20 20 20 20 3c 74 64 3e 5b 6a   "        <td>[j
1890: 6f 69 6e 20 24 66 61 69 6c 65 64 74 65 73 74 73  oin $failedtests
18a0: 68 74 6d 6c 20 7b 2c 20 7d 5d 3c 2f 74 64 3e 22  html {, }]</td>"
18b0: 0a 09 09 70 75 74 73 20 24 66 64 20 22 20 20 20  ...puts $fd "   
18c0: 20 20 20 3c 2f 74 72 3e 22 0a 09 7d 0a 0a 7d 0a     </tr>"..}..}.
18d0: 70 75 74 73 20 24 66 64 20 22 20 20 20 20 3c 2f  puts $fd "    </
18e0: 74 61 62 6c 65 3e 22 0a 70 75 74 73 20 24 66 64  table>".puts $fd
18f0: 20 22 20 20 20 20 3c 70 3e 47 65 6e 65 72 61 74   "    <p>Generat
1900: 65 64 20 6f 6e 20 5b 63 6c 6f 63 6b 20 66 6f 72  ed on [clock for
1910: 6d 61 74 20 5b 63 6c 6f 63 6b 20 73 65 63 6f 6e  mat [clock secon
1920: 64 73 5d 5d 3c 2f 70 3e 22 0a 70 75 74 73 20 24  ds]]</p>".puts $
1930: 66 64 20 22 20 20 3c 2f 62 6f 64 79 3e 22 0a 70  fd "  </body>".p
1940: 75 74 73 20 24 66 64 20 22 3c 2f 68 74 6d 6c 3e  uts $fd "</html>
1950: 22 0a 0a 63 6c 6f 73 65 20 24 66 64 0a           "..close $fd.