Artifact
3cc17ecae4f5dff5b0a9b7c8b4bd081cbd4e9dca:
0000: 3b 3b 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ;;==============
0010: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0020: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0030: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0040: 3d 3d 3d 3d 3d 3d 3d 3d 0a 3b 3b 20 43 6f 70 79 ========.;; Copy
0050: 72 69 67 68 74 20 32 30 30 36 2d 32 30 31 36 2c right 2006-2016,
0060: 20 4d 61 74 74 68 65 77 20 57 65 6c 6c 61 6e 64 Matthew Welland
0070: 2e 0a 3b 3b 20 0a 3b 3b 20 54 68 69 73 20 66 69 ..;; .;; This fi
0080: 6c 65 20 69 73 20 70 61 72 74 20 6f 66 20 4d 65 le is part of Me
0090: 67 61 74 65 73 74 2e 0a 3b 3b 20 0a 3b 3b 20 20 gatest..;; .;;
00a0: 20 20 20 4d 65 67 61 74 65 73 74 20 69 73 20 66 Megatest is f
00b0: 72 65 65 20 73 6f 66 74 77 61 72 65 3a 20 79 6f ree software: yo
00c0: 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 u can redistribu
00d0: 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 te it and/or mod
00e0: 69 66 79 0a 3b 3b 20 20 20 20 20 69 74 20 75 6e ify.;; it un
00f0: 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 der the terms of
0100: 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c the GNU General
0110: 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 Public License
0120: 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a as published by.
0130: 3b 3b 20 20 20 20 20 74 68 65 20 46 72 65 65 20 ;; the Free
0140: 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 Software Foundat
0150: 69 6f 6e 2c 20 65 69 74 68 65 72 20 76 65 72 73 ion, either vers
0160: 69 6f 6e 20 33 20 6f 66 20 74 68 65 20 4c 69 63 ion 3 of the Lic
0170: 65 6e 73 65 2c 20 6f 72 0a 3b 3b 20 20 20 20 20 ense, or.;;
0180: 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 (at your option)
0190: 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 any later versi
01a0: 6f 6e 2e 0a 3b 3b 20 0a 3b 3b 20 20 20 20 20 4d on..;; .;; M
01b0: 65 67 61 74 65 73 74 20 69 73 20 64 69 73 74 72 egatest is distr
01c0: 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f ibuted in the ho
01d0: 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 pe that it will
01e0: 62 65 20 75 73 65 66 75 6c 2c 0a 3b 3b 20 20 20 be useful,.;;
01f0: 20 20 62 75 74 20 57 49 54 48 4f 55 54 20 41 4e but WITHOUT AN
0200: 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 Y WARRANTY; with
0210: 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 out even the imp
0220: 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 lied warranty of
0230: 0a 3b 3b 20 20 20 20 20 4d 45 52 43 48 41 4e 54 .;; MERCHANT
0240: 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 ABILITY or FITNE
0250: 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 SS FOR A PARTICU
0260: 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 LAR PURPOSE. Se
0270: 65 20 74 68 65 0a 3b 3b 20 20 20 20 20 47 4e 55 e the.;; GNU
0280: 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 General Public
0290: 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 License for more
02a0: 20 64 65 74 61 69 6c 73 2e 0a 3b 3b 20 0a 3b 3b details..;; .;;
02b0: 20 20 20 20 20 59 6f 75 20 73 68 6f 75 6c 64 20 You should
02c0: 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 have received a
02d0: 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 copy of the GNU
02e0: 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c General Public L
02f0: 69 63 65 6e 73 65 0a 3b 3b 20 20 20 20 20 61 6c icense.;; al
0300: 6f 6e 67 20 77 69 74 68 20 4d 65 67 61 74 65 73 ong with Megates
0310: 74 2e 20 20 49 66 20 6e 6f 74 2c 20 73 65 65 20 t. If not, see
0320: 3c 68 74 74 70 3a 2f 2f 77 77 77 2e 67 6e 75 2e <http://www.gnu.
0330: 6f 72 67 2f 6c 69 63 65 6e 73 65 73 2f 3e 2e 0a org/licenses/>..
0340: 0a 3b 3b 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d .;;=============
0350: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0360: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0370: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0380: 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 28 75 73 65 20 =========..(use
0390: 66 6f 72 6d 61 74 29 0a 0a 28 75 73 65 20 28 70 format)..(use (p
03a0: 72 65 66 69 78 20 69 75 70 20 69 75 70 3a 29 29 refix iup iup:))
03b0: 0a 0a 28 75 73 65 20 63 61 6e 76 61 73 2d 64 72 ..(use canvas-dr
03c0: 61 77 29 0a 28 69 6d 70 6f 72 74 20 63 61 6e 76 aw).(import canv
03d0: 61 73 2d 64 72 61 77 2d 69 75 70 29 0a 0a 28 75 as-draw-iup)..(u
03e0: 73 65 20 73 71 6c 2d 64 65 2d 6c 69 74 65 20 73 se sql-de-lite s
03f0: 72 66 69 2d 31 20 70 6f 73 69 78 20 72 65 67 65 rfi-1 posix rege
0400: 78 20 72 65 67 65 78 2d 63 61 73 65 20 73 72 66 x regex-case srf
0410: 69 2d 36 39 20 74 79 70 65 64 2d 72 65 63 6f 72 i-69 typed-recor
0420: 64 73 20 73 70 61 72 73 65 2d 76 65 63 74 6f 72 ds sparse-vector
0430: 73 20 3b 3b 20 64 65 66 73 74 72 75 63 74 0a 20 s ;; defstruct.
0440: 20 20 20 20 28 70 72 65 66 69 78 20 64 62 69 20 (prefix dbi
0450: 64 62 69 3a 29 29 0a 0a 28 64 65 63 6c 61 72 65 dbi:))..(declare
0460: 20 28 75 73 65 73 20 63 6f 6d 6d 6f 6e 29 29 0a (uses common)).
0470: 28 64 65 63 6c 61 72 65 20 28 75 73 65 73 20 6d (declare (uses m
0480: 65 67 61 74 65 73 74 2d 76 65 72 73 69 6f 6e 29 egatest-version)
0490: 29 0a 28 64 65 63 6c 61 72 65 20 28 75 73 65 73 ).(declare (uses
04a0: 20 6d 61 72 67 73 29 29 0a 0a 3b 3b 20 28 64 65 margs))..;; (de
04b0: 63 6c 61 72 65 20 28 75 73 65 73 20 6c 61 75 6e clare (uses laun
04c0: 63 68 29 29 0a 3b 3b 20 28 64 65 63 6c 61 72 65 ch)).;; (declare
04d0: 20 28 75 73 65 73 20 67 75 74 69 6c 73 29 29 0a (uses gutils)).
04e0: 3b 3b 20 28 64 65 63 6c 61 72 65 20 28 75 73 65 ;; (declare (use
04f0: 73 20 64 62 29 29 0a 3b 3b 20 28 64 65 63 6c 61 s db)).;; (decla
0500: 72 65 20 28 75 73 65 73 20 73 65 72 76 65 72 29 re (uses server)
0510: 29 0a 3b 3b 20 28 64 65 63 6c 61 72 65 20 28 75 ).;; (declare (u
0520: 73 65 73 20 73 79 6e 63 68 61 73 68 29 29 0a 28 ses synchash)).(
0530: 64 65 63 6c 61 72 65 20 28 75 73 65 73 20 64 63 declare (uses dc
0540: 6f 6d 6d 6f 6e 29 29 0a 3b 3b 20 28 64 65 63 6c ommon)).;; (decl
0550: 61 72 65 20 28 75 73 65 73 20 74 72 65 65 29 29 are (uses tree))
0560: 0a 3b 3b 20 0a 3b 3b 20 28 69 6e 63 6c 75 64 65 .;; .;; (include
0570: 20 22 63 6f 6d 6d 6f 6e 5f 72 65 63 6f 72 64 73 "common_records
0580: 2e 73 63 6d 22 29 0a 3b 3b 20 28 69 6e 63 6c 75 .scm").;; (inclu
0590: 64 65 20 22 64 62 5f 72 65 63 6f 72 64 73 2e 73 de "db_records.s
05a0: 63 6d 22 29 0a 3b 3b 20 28 69 6e 63 6c 75 64 65 cm").;; (include
05b0: 20 22 6b 65 79 5f 72 65 63 6f 72 64 73 2e 73 63 "key_records.sc
05c0: 6d 22 29 0a 0a 28 64 65 66 69 6e 65 20 68 65 6c m")..(define hel
05d0: 70 20 28 63 6f 6e 63 20 0a 22 4d 65 67 61 74 65 p (conc ."Megate
05e0: 73 74 20 44 61 73 68 62 6f 61 72 64 2c 20 64 6f st Dashboard, do
05f0: 63 75 6d 65 6e 74 61 74 69 6f 6e 20 61 74 20 68 cumentation at h
0600: 74 74 70 3a 2f 2f 77 77 77 2e 6b 69 61 74 6f 61 ttp://www.kiatoa
0610: 2e 63 6f 6d 2f 66 6f 73 73 69 6c 73 2f 6d 65 67 .com/fossils/meg
0620: 61 74 65 73 74 0a 20 20 76 65 72 73 69 6f 6e 20 atest. version
0630: 22 20 6d 65 67 61 74 65 73 74 2d 76 65 72 73 69 " megatest-versi
0640: 6f 6e 20 22 0a 20 20 6c 69 63 65 6e 73 65 20 47 on ". license G
0650: 50 4c 2c 20 43 6f 70 79 72 69 67 68 74 20 28 43 PL, Copyright (C
0660: 29 20 4d 61 74 74 20 57 65 6c 6c 61 6e 64 20 32 ) Matt Welland 2
0670: 30 31 31 0a 0a 55 73 61 67 65 3a 20 64 61 73 68 011..Usage: dash
0680: 62 6f 61 72 64 20 5b 6f 70 74 69 6f 6e 73 5d 0a board [options].
0690: 20 20 2d 68 20 20 20 20 20 20 20 20 20 20 20 20 -h
06a0: 20 20 20 20 3a 20 74 68 69 73 20 68 65 6c 70 0a : this help.
06b0: 20 20 2d 73 65 72 76 65 72 20 68 6f 73 74 3a 70 -server host:p
06c0: 6f 72 74 20 3a 20 63 6f 6e 6e 65 63 74 20 74 6f ort : connect to
06d0: 20 68 6f 73 74 3a 70 6f 72 74 20 69 6e 73 74 65 host:port inste
06e0: 61 64 20 6f 66 20 64 62 20 61 63 63 65 73 73 0a ad of db access.
06f0: 20 20 2d 74 65 73 74 20 74 65 73 74 69 64 20 20 -test testid
0700: 20 20 20 20 3a 20 63 6f 6e 74 72 6f 6c 20 74 65 : control te
0710: 73 74 20 69 64 65 6e 74 69 66 69 65 64 20 62 79 st identified by
0720: 20 74 65 73 74 69 64 0a 20 20 2d 67 75 69 6d 6f testid. -guimo
0730: 6e 69 74 6f 72 20 20 20 20 20 20 20 3a 20 63 6f nitor : co
0740: 6e 74 72 6f 6c 20 70 61 6e 65 6c 20 66 6f 72 20 ntrol panel for
0750: 72 75 6e 73 0a 0a 4d 69 73 63 0a 20 20 2d 72 6f runs..Misc. -ro
0760: 77 73 20 4e 20 20 20 20 20 20 20 20 20 3a 20 73 ws N : s
0770: 65 74 20 6e 75 6d 62 65 72 20 6f 66 20 72 6f 77 et number of row
0780: 73 0a 22 29 29 0a 0a 3b 3b 20 70 72 6f 63 65 73 s."))..;; proces
0790: 73 20 61 72 67 73 0a 28 64 65 66 69 6e 65 20 72 s args.(define r
07a0: 65 6d 61 72 67 73 20 28 61 72 67 73 3a 67 65 74 emargs (args:get
07b0: 2d 61 72 67 73 20 0a 09 09 20 28 61 72 67 76 29 -args ... (argv)
07c0: 0a 09 09 20 28 6c 69 73 74 20 20 22 2d 72 6f 77 ... (list "-row
07d0: 73 22 0a 09 09 09 22 2d 72 75 6e 22 0a 09 09 09 s"...."-run"....
07e0: 22 2d 74 65 73 74 22 0a 09 09 09 22 2d 64 65 62 "-test"...."-deb
07f0: 75 67 22 0a 09 09 09 22 2d 68 6f 73 74 22 20 0a ug"...."-host" .
0800: 09 09 09 29 20 0a 09 09 20 28 6c 69 73 74 20 20 ...) ... (list
0810: 22 2d 68 22 0a 09 09 09 22 2d 67 75 69 6d 6f 6e "-h"...."-guimon
0820: 69 74 6f 72 22 0a 09 09 09 22 2d 6d 61 69 6e 22 itor"...."-main"
0830: 0a 09 09 09 22 2d 76 22 0a 09 09 09 22 2d 71 22 ...."-v"...."-q"
0840: 0a 09 09 20 20 20 20 20 20 20 29 0a 09 09 20 61 ... )... a
0850: 72 67 73 3a 61 72 67 2d 68 61 73 68 0a 09 09 20 rgs:arg-hash...
0860: 30 29 29 0a 0a 28 69 66 20 28 61 72 67 73 3a 67 0))..(if (args:g
0870: 65 74 2d 61 72 67 20 22 2d 68 22 29 0a 20 20 20 et-arg "-h").
0880: 20 28 62 65 67 69 6e 0a 20 20 20 20 20 20 28 70 (begin. (p
0890: 72 69 6e 74 20 68 65 6c 70 29 0a 20 20 20 20 20 rint help).
08a0: 20 28 65 78 69 74 29 29 29 0a 0a 3b 3b 20 65 61 (exit)))..;; ea
08b0: 73 65 20 64 65 62 75 67 67 69 6e 67 20 62 79 20 se debugging by
08c0: 6c 6f 61 64 69 6e 67 20 7e 2f 2e 64 61 73 68 62 loading ~/.dashb
08d0: 6f 61 72 64 72 63 0a 28 6c 65 74 20 28 28 64 65 oardrc.(let ((de
08e0: 62 75 67 63 6f 6e 74 72 6f 6c 66 20 28 63 6f 6e bugcontrolf (con
08f0: 63 20 28 67 65 74 2d 65 6e 76 69 72 6f 6e 6d 65 c (get-environme
0900: 6e 74 2d 76 61 72 69 61 62 6c 65 20 22 48 4f 4d nt-variable "HOM
0910: 45 22 29 20 22 2f 2e 64 61 73 68 62 6f 61 72 64 E") "/.dashboard
0920: 72 63 22 29 29 29 0a 20 20 28 69 66 20 28 63 6f rc"))). (if (co
0930: 6d 6d 6f 6e 3a 66 69 6c 65 2d 65 78 69 73 74 73 mmon:file-exists
0940: 3f 20 64 65 62 75 67 63 6f 6e 74 72 6f 6c 66 29 ? debugcontrolf)
0950: 0a 20 20 20 20 20 20 28 6c 6f 61 64 20 64 65 62 . (load deb
0960: 75 67 63 6f 6e 74 72 6f 6c 66 29 29 29 0a 0a 28 ugcontrolf)))..(
0970: 64 65 62 75 67 3a 73 65 74 75 70 29 0a 0a 28 64 debug:setup)..(d
0980: 65 66 69 6e 65 20 2a 74 69 6d 2a 20 28 69 75 70 efine *tim* (iup
0990: 3a 74 69 6d 65 72 29 29 0a 28 64 65 66 69 6e 65 :timer)).(define
09a0: 20 2a 6f 72 64 2a 20 23 66 29 0a 0a 28 69 75 70 *ord* #f)..(iup
09b0: 3a 61 74 74 72 69 62 75 74 65 2d 73 65 74 21 20 :attribute-set!
09c0: 2a 74 69 6d 2a 20 22 54 49 4d 45 22 20 33 30 30 *tim* "TIME" 300
09d0: 29 0a 28 69 75 70 3a 61 74 74 72 69 62 75 74 65 ).(iup:attribute
09e0: 2d 73 65 74 21 20 2a 74 69 6d 2a 20 22 52 55 4e -set! *tim* "RUN
09f0: 22 20 22 59 45 53 22 29 0a 0a 28 64 65 66 69 6e " "YES")..(defin
0a00: 65 20 28 6d 65 73 73 61 67 65 2d 77 69 6e 64 6f e (message-windo
0a10: 77 20 6d 73 67 29 0a 20 20 28 69 75 70 3a 73 68 w msg). (iup:sh
0a20: 6f 77 0a 20 20 20 28 69 75 70 3a 64 69 61 6c 6f ow. (iup:dialo
0a30: 67 0a 20 20 20 20 28 69 75 70 3a 76 62 6f 78 20 g. (iup:vbox
0a40: 0a 20 20 20 20 20 28 69 75 70 3a 6c 61 62 65 6c . (iup:label
0a50: 20 6d 73 67 20 23 3a 6d 61 72 67 69 6e 20 22 34 msg #:margin "4
0a60: 30 78 34 30 22 29 29 29 29 29 0a 0a 28 64 65 66 0x40")))))..(def
0a70: 69 6e 65 20 28 69 75 70 6c 69 73 74 62 6f 78 2d ine (iuplistbox-
0a80: 66 69 6c 6c 2d 6c 69 73 74 20 6c 62 20 69 74 65 fill-list lb ite
0a90: 6d 73 20 2e 20 64 65 66 61 75 6c 74 29 0a 20 20 ms . default).
0aa0: 28 6c 65 74 20 28 28 69 20 31 29 0a 09 28 73 65 (let ((i 1)..(se
0ab0: 6c 65 63 74 65 64 2d 69 74 65 6d 20 28 69 66 20 lected-item (if
0ac0: 28 6e 75 6c 6c 3f 20 64 65 66 61 75 6c 74 29 20 (null? default)
0ad0: 23 66 20 28 63 61 72 20 64 65 66 61 75 6c 74 29 #f (car default)
0ae0: 29 29 29 0a 20 20 20 20 28 69 75 70 3a 61 74 74 ))). (iup:att
0af0: 72 69 62 75 74 65 2d 73 65 74 21 20 6c 62 20 22 ribute-set! lb "
0b00: 56 41 4c 55 45 22 20 28 69 66 20 73 65 6c 65 63 VALUE" (if selec
0b10: 74 65 64 2d 69 74 65 6d 20 73 65 6c 65 63 74 65 ted-item selecte
0b20: 64 2d 69 74 65 6d 20 22 22 29 29 0a 20 20 20 20 d-item "")).
0b30: 28 66 6f 72 2d 65 61 63 68 20 28 6c 61 6d 62 64 (for-each (lambd
0b40: 61 20 28 69 74 65 6d 29 0a 09 09 28 69 75 70 3a a (item)...(iup:
0b50: 61 74 74 72 69 62 75 74 65 2d 73 65 74 21 20 6c attribute-set! l
0b60: 62 20 28 6e 75 6d 62 65 72 2d 3e 73 74 72 69 6e b (number->strin
0b70: 67 20 69 29 20 69 74 65 6d 29 0a 09 09 28 69 66 g i) item)...(if
0b80: 20 73 65 6c 65 63 74 65 64 2d 69 74 65 6d 0a 09 selected-item..
0b90: 09 20 20 20 20 28 69 66 20 28 65 71 75 61 6c 3f . (if (equal?
0ba0: 20 73 65 6c 65 63 74 65 64 2d 69 74 65 6d 20 69 selected-item i
0bb0: 74 65 6d 29 0a 09 09 09 28 69 75 70 3a 61 74 74 tem)....(iup:att
0bc0: 72 69 62 75 74 65 2d 73 65 74 21 20 6c 62 20 22 ribute-set! lb "
0bd0: 56 41 4c 55 45 22 20 69 74 65 6d 29 29 29 20 3b VALUE" item))) ;
0be0: 3b 20 28 6e 75 6d 62 65 72 2d 3e 73 74 72 69 6e ; (number->strin
0bf0: 67 20 69 29 29 29 29 0a 09 09 28 73 65 74 21 20 g i))))...(set!
0c00: 69 20 28 2b 20 69 20 31 29 29 29 0a 09 20 20 20 i (+ i 1)))..
0c10: 20 20 20 69 74 65 6d 73 29 0a 20 20 20 20 69 29 items). i)
0c20: 29 0a 0a 28 64 65 66 69 6e 65 20 28 70 61 64 2d )..(define (pad-
0c30: 6c 69 73 74 20 6c 20 6e 29 28 61 70 70 65 6e 64 list l n)(append
0c40: 20 6c 20 28 6d 61 6b 65 2d 6c 69 73 74 20 28 2d l (make-list (-
0c50: 20 6e 20 28 6c 65 6e 67 74 68 20 6c 29 29 29 29 n (length l))))
0c60: 29 0a 0a 0a 28 64 65 66 69 6e 65 20 28 6d 6b 73 )...(define (mks
0c70: 74 72 20 2e 20 78 29 0a 20 20 28 73 74 72 69 6e tr . x). (strin
0c80: 67 2d 69 6e 74 65 72 73 70 65 72 73 65 20 28 6d g-intersperse (m
0c90: 61 70 20 63 6f 6e 63 20 78 29 20 22 2c 22 29 29 ap conc x) ","))
0ca0: 0a 0a 28 64 65 66 69 6e 65 20 28 75 70 64 61 74 ..(define (updat
0cb0: 65 2d 73 65 61 72 63 68 20 78 20 76 61 6c 29 0a e-search x val).
0cc0: 20 20 28 68 61 73 68 2d 74 61 62 6c 65 2d 73 65 (hash-table-se
0cd0: 74 21 20 2a 73 65 61 72 63 68 70 61 74 74 73 2a t! *searchpatts*
0ce0: 20 78 20 76 61 6c 29 29 0a 0a 0a 3b 3b 20 64 61 x val))...;; da
0cf0: 74 61 20 66 6f 72 20 65 61 63 68 20 73 70 65 63 ta for each spec
0d00: 69 66 69 63 20 74 61 62 20 67 6f 65 73 20 68 65 ific tab goes he
0d10: 72 65 0a 3b 3b 0a 28 64 65 66 73 74 72 75 63 74 re.;;.(defstruct
0d20: 20 64 62 6f 61 72 64 3a 74 61 62 64 61 74 20 0a dboard:tabdat .
0d30: 20 20 3b 3b 20 72 75 6e 73 0a 20 20 28 28 61 6c ;; runs. ((al
0d40: 6c 72 75 6e 73 20 20 20 20 20 20 20 20 20 27 28 lruns '(
0d50: 29 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ))
0d60: 20 20 20 3a 20 6c 69 73 74 29 20 20 20 20 20 20 : list)
0d70: 20 20 3b 3b 20 6c 69 73 74 20 6f 66 20 64 62 6f ;; list of dbo
0d80: 61 72 64 3a 72 75 6e 64 61 74 20 72 65 63 6f 72 ard:rundat recor
0d90: 64 73 0a 20 20 28 28 61 6c 6c 72 75 6e 73 2d 62 ds. ((allruns-b
0da0: 79 2d 69 64 20 20 20 20 28 6d 61 6b 65 2d 68 61 y-id (make-ha
0db0: 73 68 2d 74 61 62 6c 65 29 29 20 20 3a 20 68 61 sh-table)) : ha
0dc0: 73 68 2d 74 61 62 6c 65 29 20 20 3b 3b 20 68 61 sh-table) ;; ha
0dd0: 73 68 20 6f 66 20 72 75 6e 2d 69 64 20 2d 3e 20 sh of run-id ->
0de0: 64 62 6f 61 72 64 3a 72 75 6e 64 61 74 20 72 65 dboard:rundat re
0df0: 63 6f 72 64 73 0a 20 20 28 28 64 6f 6e 65 2d 72 cords. ((done-r
0e00: 75 6e 73 20 20 20 20 20 20 20 27 28 29 29 20 20 uns '())
0e10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a :
0e20: 20 6c 69 73 74 29 20 20 20 20 20 20 20 20 3b 3b list) ;;
0e30: 20 6c 69 73 74 20 6f 66 20 72 75 6e 73 20 61 6c list of runs al
0e40: 72 65 61 64 79 20 64 72 61 77 6e 0a 20 20 28 28 ready drawn. ((
0e50: 6e 6f 74 2d 64 6f 6e 65 2d 72 75 6e 73 20 20 20 not-done-runs
0e60: 27 28 29 29 20 20 20 20 20 20 20 20 20 20 20 20 '())
0e70: 20 20 20 20 20 3a 20 6c 69 73 74 29 20 20 20 20 : list)
0e80: 20 20 20 20 3b 3b 20 6c 69 73 74 20 6f 66 20 72 ;; list of r
0e90: 75 6e 73 20 6e 6f 74 20 79 65 74 20 64 72 61 77 uns not yet draw
0ea0: 6e 0a 20 20 28 68 65 61 64 65 72 20 20 20 20 20 n. (header
0eb0: 20 20 20 20 20 20 20 23 66 29 20 20 20 20 20 20 #f)
0ec0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0ed0: 20 20 20 20 20 20 20 20 20 20 3b 3b 20 68 65 61 ;; hea
0ee0: 64 65 72 20 66 6f 72 20 64 65 63 6f 64 69 6e 67 der for decoding
0ef0: 20 74 68 65 20 72 75 6e 20 72 65 63 6f 72 64 73 the run records
0f00: 0a 20 20 28 6b 65 79 73 20 20 20 20 20 20 20 20 . (keys
0f10: 20 20 20 20 20 20 23 66 29 20 20 20 20 20 20 20 #f)
0f20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0f30: 20 20 20 20 20 20 20 20 20 3b 3b 20 6b 65 79 73 ;; keys
0f40: 20 66 6f 72 20 74 68 69 73 20 72 75 6e 20 28 69 for this run (i
0f50: 2e 65 2e 20 74 61 72 67 65 74 20 63 6f 6d 70 6f .e. target compo
0f60: 6e 65 6e 74 73 29 0a 20 20 28 28 6e 75 6d 72 75 nents). ((numru
0f70: 6e 73 20 20 20 20 20 20 20 20 20 20 28 73 74 72 ns (str
0f80: 69 6e 67 2d 3e 6e 75 6d 62 65 72 20 28 6f 72 20 ing->number (or
0f90: 28 61 72 67 73 3a 67 65 74 2d 61 72 67 20 22 2d (args:get-arg "-
0fa0: 63 6f 6c 73 22 29 20 22 31 30 22 29 29 29 20 20 cols") "10")))
0fb0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a :
0fc0: 20 6e 75 6d 62 65 72 29 20 20 20 20 20 20 3b 3b number) ;;
0fd0: 20 0a 20 20 28 28 74 6f 74 2d 72 75 6e 73 20 20 . ((tot-runs
0fe0: 20 20 20 20 20 20 20 20 30 29 20 20 20 20 20 20 0)
0ff0: 20 20 20 20 20 20 20 20 20 20 20 3a 20 6e 75 6d : num
1000: 62 65 72 29 0a 20 20 28 28 6c 61 73 74 2d 64 61 ber). ((last-da
1010: 74 61 2d 75 70 64 61 74 65 20 20 30 29 20 20 20 ta-update 0)
1020: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 20 :
1030: 6e 75 6d 62 65 72 29 20 20 20 20 20 20 3b 3b 20 number) ;;
1040: 6c 61 73 74 20 74 69 6d 65 20 74 68 65 20 64 61 last time the da
1050: 74 61 20 69 6e 20 61 6c 6c 72 75 6e 73 20 77 61 ta in allruns wa
1060: 73 20 75 70 64 61 74 65 64 0a 20 20 28 28 6c 61 s updated. ((la
1070: 73 74 2d 72 75 6e 73 2d 75 70 64 61 74 65 20 20 st-runs-update
1080: 30 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0)
1090: 20 20 20 3a 20 6e 75 6d 62 65 72 29 20 20 20 20 : number)
10a0: 20 20 3b 3b 20 6c 61 73 74 20 74 69 6d 65 20 77 ;; last time w
10b0: 65 20 70 75 6c 6c 65 64 20 74 68 65 20 72 75 6e e pulled the run
10c0: 73 20 69 6e 66 6f 20 74 6f 20 75 70 64 61 74 65 s info to update
10d0: 20 74 68 65 20 74 72 65 65 0a 20 20 28 72 75 6e the tree. (run
10e0: 73 2d 6d 75 74 65 78 20 20 20 20 20 20 20 20 20 s-mutex
10f0: 28 6d 61 6b 65 2d 6d 75 74 65 78 29 29 20 20 20 (make-mutex))
1100: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1110: 20 20 3b 3b 20 75 73 65 20 74 6f 20 70 72 65 76 ;; use to prev
1120: 65 6e 74 20 70 61 72 61 6c 6c 65 6c 20 61 63 63 ent parallel acc
1130: 65 73 73 20 74 6f 20 64 72 61 77 20 6f 62 6a 65 ess to draw obje
1140: 63 74 73 0a 20 20 28 28 72 75 6e 2d 75 70 64 61 cts. ((run-upda
1150: 74 65 2d 74 69 6d 65 73 20 20 28 6d 61 6b 65 2d te-times (make-
1160: 68 61 73 68 2d 74 61 62 6c 65 29 29 20 3a 20 68 hash-table)) : h
1170: 61 73 68 2d 74 61 62 6c 65 29 20 20 3b 3b 20 75 ash-table) ;; u
1180: 70 64 61 74 65 20 74 69 6d 65 73 20 69 6e 64 65 pdate times inde
1190: 78 65 64 20 62 79 20 72 75 6e 2d 69 64 0a 20 20 xed by run-id.
11a0: 28 28 6c 61 73 74 2d 74 65 73 74 2d 64 61 74 20 ((last-test-dat
11b0: 20 20 20 20 20 28 6d 61 6b 65 2d 68 61 73 68 2d (make-hash-
11c0: 74 61 62 6c 65 29 29 20 3a 20 68 61 73 68 2d 74 table)) : hash-t
11d0: 61 62 6c 65 29 20 20 3b 3b 20 63 61 63 68 65 20 able) ;; cache
11e0: 6c 61 73 74 20 74 65 73 74 73 20 64 61 74 20 62 last tests dat b
11f0: 79 20 72 75 6e 2d 69 64 0a 20 20 28 28 72 75 6e y run-id. ((run
1200: 2d 64 62 2d 70 61 74 68 73 20 20 20 20 20 20 28 -db-paths (
1210: 6d 61 6b 65 2d 68 61 73 68 2d 74 61 62 6c 65 29 make-hash-table)
1220: 29 20 3a 20 68 61 73 68 2d 74 61 62 6c 65 29 20 ) : hash-table)
1230: 20 3b 3b 20 63 61 63 68 65 20 74 68 65 20 70 61 ;; cache the pa
1240: 74 68 73 20 74 6f 20 74 68 65 20 72 75 6e 20 64 ths to the run d
1250: 62 20 66 69 6c 65 73 0a 0a 20 20 3b 3b 20 52 75 b files.. ;; Ru
1260: 6e 73 20 76 69 65 77 0a 20 20 28 28 62 75 74 74 ns view. ((butt
1270: 6f 6e 64 61 74 20 20 20 20 20 20 20 20 20 28 6d ondat (m
1280: 61 6b 65 2d 68 61 73 68 2d 74 61 62 6c 65 29 29 ake-hash-table))
1290: 20 3a 20 68 61 73 68 2d 74 61 62 6c 65 29 20 20 : hash-table)
12a0: 3b 3b 20 20 20 20 20 0a 20 20 28 28 69 74 65 6d ;; . ((item
12b0: 2d 74 65 73 74 2d 6e 61 6d 65 73 20 20 27 28 29 -test-names '()
12c0: 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 )
12d0: 20 3a 20 6c 69 73 74 29 20 20 20 20 20 20 20 20 : list)
12e0: 3b 3b 20 6c 69 73 74 20 6f 66 20 69 74 65 6d 69 ;; list of itemi
12f0: 7a 65 64 20 74 65 73 74 73 0a 20 20 28 28 72 75 zed tests. ((ru
1300: 6e 2d 6b 65 79 73 20 20 20 20 20 20 20 20 20 20 n-keys
1310: 28 6d 61 6b 65 2d 68 61 73 68 2d 74 61 62 6c 65 (make-hash-table
1320: 29 29 20 3a 20 68 61 73 68 2d 74 61 62 6c 65 29 )) : hash-table)
1330: 0a 20 20 28 72 75 6e 73 2d 6d 61 74 72 69 78 20 . (runs-matrix
1340: 20 20 20 20 20 20 20 23 66 29 20 20 20 20 20 20 #f)
1350: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1360: 20 20 20 20 20 20 20 20 20 3b 3b 20 75 73 65 64 ;; used
1370: 20 69 6e 20 6e 65 77 64 61 73 68 62 6f 61 72 64 in newdashboard
1380: 0a 20 20 28 28 73 74 61 72 74 2d 72 75 6e 2d 6f . ((start-run-o
1390: 66 66 73 65 74 20 20 20 30 29 20 20 20 20 20 20 ffset 0)
13a0: 20 20 20 20 20 20 20 20 20 20 3a 20 6e 75 6d 62 : numb
13b0: 65 72 29 20 20 20 20 20 20 3b 3b 20 6c 65 66 74 er) ;; left
13c0: 2d 72 69 67 68 74 20 73 6c 69 64 65 72 20 76 61 -right slider va
13d0: 6c 75 65 0a 20 20 28 28 73 74 61 72 74 2d 74 65 lue. ((start-te
13e0: 73 74 2d 6f 66 66 73 65 74 20 20 30 29 20 20 20 st-offset 0)
13f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 20 6e : n
1400: 75 6d 62 65 72 29 20 20 20 20 20 20 3b 3b 20 75 umber) ;; u
1410: 70 2d 64 6f 77 6e 20 73 6c 69 64 65 72 20 76 61 p-down slider va
1420: 6c 75 65 0a 20 20 28 28 72 75 6e 73 2d 62 74 6e lue. ((runs-btn
1430: 2d 68 65 69 67 68 74 20 20 20 20 28 6f 72 20 28 -height (or (
1440: 63 6f 6e 66 69 67 66 3a 6c 6f 6f 6b 75 70 20 2a configf:lookup *
1450: 63 6f 6e 66 69 67 64 61 74 2a 20 22 64 61 73 68 configdat* "dash
1460: 62 6f 61 72 64 22 20 22 62 74 6e 2d 68 65 69 67 board" "btn-heig
1470: 68 74 22 29 20 22 78 31 36 22 29 29 20 3a 20 73 ht") "x16")) : s
1480: 74 72 69 6e 67 29 20 20 3b 3b 20 77 61 73 20 31 tring) ;; was 1
1490: 32 0a 20 20 28 28 72 75 6e 73 2d 62 74 6e 2d 66 2. ((runs-btn-f
14a0: 6f 6e 74 73 7a 20 20 20 20 28 6f 72 20 28 63 6f ontsz (or (co
14b0: 6e 66 69 67 66 3a 6c 6f 6f 6b 75 70 20 2a 63 6f nfigf:lookup *co
14c0: 6e 66 69 67 64 61 74 2a 20 22 64 61 73 68 62 6f nfigdat* "dashbo
14d0: 61 72 64 22 20 22 62 74 6e 2d 66 6f 6e 74 73 7a ard" "btn-fontsz
14e0: 22 29 20 22 31 30 22 29 29 20 3a 20 73 74 72 69 ") "10")) : stri
14f0: 6e 67 29 20 20 20 3b 3b 20 77 61 73 20 38 0a 20 ng) ;; was 8.
1500: 20 28 28 72 75 6e 73 2d 63 65 6c 6c 2d 77 69 64 ((runs-cell-wid
1510: 74 68 20 20 20 20 28 6f 72 20 28 63 6f 6e 66 69 th (or (confi
1520: 67 66 3a 6c 6f 6f 6b 75 70 20 2a 63 6f 6e 66 69 gf:lookup *confi
1530: 67 64 61 74 2a 20 22 64 61 73 68 62 6f 61 72 64 gdat* "dashboard
1540: 22 20 22 63 65 6c 6c 2d 77 69 64 74 68 22 29 20 " "cell-width")
1550: 22 36 30 22 29 29 20 3a 20 73 74 72 69 6e 67 29 "60")) : string)
1560: 20 20 20 3b 3b 20 77 61 73 20 35 30 0a 20 20 28 ;; was 50. (
1570: 28 61 6c 6c 2d 74 65 73 74 2d 6e 61 6d 65 73 20 (all-test-names
1580: 20 20 20 20 27 28 29 29 20 20 20 20 20 20 20 20 '())
1590: 20 20 20 20 20 20 3a 20 6c 69 73 74 29 0a 20 20 : list).
15a0: 0a 20 20 3b 3b 20 43 61 6e 76 61 73 20 61 6e 64 . ;; Canvas and
15b0: 20 64 72 61 77 69 6e 67 20 64 61 74 61 0a 20 20 drawing data.
15c0: 28 63 6e 76 20 20 20 20 20 20 20 20 20 20 20 20 (cnv
15d0: 20 20 20 20 23 66 29 0a 20 20 28 63 6e 76 2d 6f #f). (cnv-o
15e0: 62 6a 20 20 20 20 20 20 20 20 20 20 20 20 23 66 bj #f
15f0: 29 0a 20 20 28 64 72 61 77 69 6e 67 20 20 20 20 ). (drawing
1600: 20 20 20 20 20 20 20 20 23 66 29 0a 20 20 28 28 #f). ((
1610: 72 75 6e 2d 73 74 61 72 74 2d 72 6f 77 20 20 20 run-start-row
1620: 20 20 30 29 20 20 20 20 20 20 20 20 20 20 20 20 0)
1630: 20 20 20 20 20 3a 20 6e 75 6d 62 65 72 29 0a 20 : number).
1640: 20 28 28 6d 61 78 2d 72 6f 77 20 20 20 20 20 20 ((max-row
1650: 20 20 20 20 20 30 29 20 20 20 20 20 20 20 20 20 0)
1660: 20 20 20 20 20 20 20 20 3a 20 6e 75 6d 62 65 72 : number
1670: 29 0a 20 20 28 28 72 75 6e 6e 69 6e 67 2d 6c 61 ). ((running-la
1680: 79 6f 75 74 20 20 20 20 23 66 29 20 20 20 20 20 yout #f)
1690: 20 20 20 20 20 20 20 20 20 20 20 3a 20 62 6f 6f : boo
16a0: 6c 65 61 6e 29 0a 20 20 28 6f 72 69 67 69 6e 78 lean). (originx
16b0: 20 20 20 20 20 20 20 20 20 20 20 20 23 66 29 0a #f).
16c0: 20 20 28 6f 72 69 67 69 6e 79 20 20 20 20 20 20 (originy
16d0: 20 20 20 20 20 20 23 66 29 0a 20 20 28 28 6c 61 #f). ((la
16e0: 79 6f 75 74 2d 75 70 64 61 74 65 2d 6f 6b 20 20 yout-update-ok
16f0: 23 74 29 20 20 20 20 20 20 20 20 20 20 20 20 20 #t)
1700: 20 20 20 3a 20 62 6f 6f 6c 65 61 6e 29 0a 20 20 : boolean).
1710: 28 28 63 6f 6d 70 61 63 74 2d 6c 61 79 6f 75 74 ((compact-layout
1720: 20 20 20 20 23 74 29 20 20 20 20 20 20 20 20 20 #t)
1730: 20 20 20 20 20 20 20 3a 20 62 6f 6f 6c 65 61 6e : boolean
1740: 29 0a 0a 20 20 3b 3b 20 52 75 6e 20 74 69 6d 65 ).. ;; Run time
1750: 73 20 6c 61 79 6f 75 74 0a 20 20 3b 3b 20 28 67 s layout. ;; (g
1760: 72 61 70 68 2d 62 75 74 74 6f 6e 2d 62 6f 78 20 raph-button-box
1770: 23 66 29 20 3b 3b 20 52 41 20 3d 3e 20 54 68 69 #f) ;; RA => Thi
1780: 6e 6b 20 69 74 20 69 73 20 6e 6f 74 20 72 65 66 nk it is not ref
1790: 65 72 65 6e 63 65 64 20 61 6e 79 77 68 65 72 65 erenced anywhere
17a0: 0a 20 20 28 67 72 61 70 68 2d 6d 61 74 72 69 78 . (graph-matrix
17b0: 20 20 20 20 20 23 66 29 0a 20 20 28 28 67 72 61 #f). ((gra
17c0: 70 68 2d 6d 61 74 72 69 78 2d 74 61 62 6c 65 20 ph-matrix-table
17d0: 28 6d 61 6b 65 2d 68 61 73 68 2d 74 61 62 6c 65 (make-hash-table
17e0: 29 29 20 3a 20 68 61 73 68 2d 74 61 62 6c 65 29 )) : hash-table)
17f0: 20 3b 3b 20 67 72 61 70 68 2d 64 61 74 73 20 72 ;; graph-dats r
1800: 65 66 65 72 65 6e 63 65 64 20 74 68 72 75 20 67 eferenced thru g
1810: 72 61 70 68 20 6e 61 6d 65 20 69 6e 66 6f 0a 20 raph name info.
1820: 20 28 28 67 72 61 70 68 2d 63 65 6c 6c 2d 74 61 ((graph-cell-ta
1830: 62 6c 65 20 28 6d 61 6b 65 2d 68 61 73 68 2d 74 ble (make-hash-t
1840: 61 62 6c 65 29 29 20 3a 20 68 61 73 68 2d 74 61 able)) : hash-ta
1850: 62 6c 65 29 20 3b 3b 20 67 72 61 70 68 2d 64 61 ble) ;; graph-da
1860: 74 73 20 72 65 66 65 72 65 6e 63 65 64 20 74 68 ts referenced th
1870: 72 75 20 6d 61 74 72 69 78 20 63 65 6c 6c 20 69 ru matrix cell i
1880: 6e 66 6f 0a 20 20 28 28 67 72 61 70 68 2d 6d 61 nfo. ((graph-ma
1890: 74 72 69 78 2d 72 6f 77 20 31 29 20 3a 20 6e 75 trix-row 1) : nu
18a0: 6d 62 65 72 29 0a 20 20 28 28 67 72 61 70 68 2d mber). ((graph-
18b0: 6d 61 74 72 69 78 2d 63 6f 6c 20 31 29 20 3a 20 matrix-col 1) :
18c0: 6e 75 6d 62 65 72 29 0a 0a 20 20 3b 3b 20 43 6f number).. ;; Co
18d0: 6e 74 72 6f 6c 73 20 75 73 65 64 20 74 6f 20 6c ntrols used to l
18e0: 61 75 6e 63 68 20 72 75 6e 73 20 65 74 63 2e 0a aunch runs etc..
18f0: 20 20 28 28 63 6f 6d 6d 61 6e 64 20 20 20 20 20 ((command
1900: 20 20 20 20 20 22 22 29 20 20 20 20 20 20 20 20 "")
1910: 20 20 20 20 20 20 20 20 20 3a 20 73 74 72 69 6e : strin
1920: 67 29 20 20 20 20 20 20 3b 3b 20 66 6f 72 20 72 g) ;; for r
1930: 75 6e 20 63 6f 6e 74 72 6f 6c 20 74 68 69 73 20 un control this
1940: 69 73 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 62 is the command b
1950: 65 69 6e 67 20 62 75 69 6c 74 20 75 70 0a 20 20 eing built up.
1960: 28 63 6f 6d 6d 61 6e 64 2d 74 62 20 20 20 20 20 (command-tb
1970: 20 20 20 23 66 29 09 20 20 20 20 20 20 20 20 20 #f).
1980: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b ;
1990: 3b 20 77 69 64 67 65 74 20 66 6f 72 20 74 68 65 ; widget for the
19a0: 20 74 79 70 65 20 6f 66 20 63 6f 6d 6d 61 6e 64 type of command
19b0: 3b 20 72 75 6e 2c 20 72 65 6d 6f 76 65 2d 72 75 ; run, remove-ru
19c0: 6e 73 20 65 74 63 2e 0a 20 20 28 74 65 73 74 2d ns etc.. (test-
19d0: 70 61 74 74 65 72 6e 73 2d 74 65 78 74 62 6f 78 patterns-textbox
19e0: 20 23 66 29 20 20 20 20 20 20 20 20 20 20 20 20 #f)
19f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1a00: 3b 3b 20 74 65 78 74 20 62 6f 78 20 77 69 64 67 ;; text box widg
1a10: 65 74 20 66 6f 72 20 65 64 69 74 69 6e 67 20 61 et for editing a
1a20: 20 6c 69 73 74 20 6f 66 20 74 65 73 74 20 70 61 list of test pa
1a30: 74 74 65 72 6e 73 0a 20 20 28 6b 65 79 2d 6c 69 tterns. (key-li
1a40: 73 74 62 6f 78 65 73 20 20 20 20 20 23 66 29 09 stboxes #f).
1a50: 09 09 20 20 20 20 20 20 20 20 20 0a 20 20 28 6b .. . (k
1a60: 65 79 2d 6c 62 73 20 20 20 20 20 20 20 20 20 20 ey-lbs
1a70: 20 23 66 29 09 09 09 20 20 20 20 20 20 20 20 20 #f)...
1a80: 0a 20 20 72 75 6e 2d 6e 61 6d 65 20 20 20 20 20 . run-name
1a90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1aa0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1ab0: 20 20 20 20 20 20 20 20 20 3b 3b 20 66 72 6f 6d ;; from
1ac0: 20 72 75 6e 20 6e 61 6d 65 20 73 65 74 74 69 6e run name settin
1ad0: 67 20 77 69 64 67 65 74 0a 20 20 73 74 61 74 65 g widget. state
1ae0: 73 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s
1af0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1b00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1b10: 20 3b 3b 20 73 74 61 74 65 73 20 66 6f 72 20 2d ;; states for -
1b20: 73 74 61 74 65 20 73 31 2c 73 32 20 2e 2e 2e 0a state s1,s2 ....
1b30: 20 20 73 74 61 74 75 73 65 73 20 20 20 20 20 20 statuses
1b40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1b50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1b60: 20 20 20 20 20 20 20 20 3b 3b 20 73 74 61 74 75 ;; statu
1b70: 73 65 73 20 66 6f 72 20 2d 73 74 61 74 75 73 20 ses for -status
1b80: 73 31 2c 73 32 20 2e 2e 2e 0a 09 09 09 09 09 09 s1,s2 ..........
1b90: 20 20 20 20 20 20 20 20 20 0a 20 20 3b 3b 20 53 . ;; S
1ba0: 65 6c 65 63 74 6f 72 20 76 61 72 69 61 62 6c 65 elector variable
1bb0: 73 09 09 09 09 20 20 20 20 20 20 20 20 20 0a 20 s.... .
1bc0: 20 63 75 72 72 2d 72 75 6e 2d 69 64 20 20 20 20 curr-run-id
1bd0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1be0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1bf0: 20 20 20 20 20 20 20 3b 3b 20 63 75 72 72 65 6e ;; curren
1c00: 74 20 72 6f 77 20 74 6f 20 64 69 73 70 6c 61 79 t row to display
1c10: 20 69 6e 20 52 75 6e 20 73 75 6d 6d 61 72 79 20 in Run summary
1c20: 76 69 65 77 0a 20 20 70 72 65 76 2d 72 75 6e 2d view. prev-run-
1c30: 69 64 20 20 20 20 20 20 20 20 20 20 20 20 20 20 id
1c40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1c50: 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 ;;
1c60: 70 72 65 76 69 6f 75 73 20 72 75 6e 69 64 20 73 previous runid s
1c70: 65 6c 65 63 74 65 64 20 62 65 66 6f 72 65 20 63 elected before c
1c80: 75 72 72 65 6e 74 20 72 75 6e 69 64 20 77 61 73 urrent runid was
1c90: 20 73 65 6c 65 63 74 65 64 20 28 75 73 65 64 20 selected (used
1ca0: 69 6e 20 78 6f 72 2d 74 77 6f 2d 72 75 6e 73 20 in xor-two-runs
1cb0: 72 75 6e 73 20 73 75 6d 6d 61 72 79 20 6d 6f 64 runs summary mod
1cc0: 65 0a 20 20 63 75 72 72 2d 74 65 73 74 2d 69 64 e. curr-test-id
1cd0: 73 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s
1ce0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1cf0: 20 20 20 20 20 20 20 20 20 20 3b 3b 20 75 73 65 ;; use
1d00: 64 20 6f 6e 6c 79 20 69 6e 20 64 63 6f 6d 6d 6f d only in dcommo
1d10: 6e 3a 72 75 6e 2d 75 70 64 61 74 65 20 77 68 69 n:run-update whi
1d20: 63 68 20 69 73 20 75 73 65 64 20 69 6e 20 6e 65 ch is used in ne
1d30: 77 64 61 73 68 62 6f 61 72 64 0a 20 20 28 28 66 wdashboard. ((f
1d40: 69 6c 74 65 72 73 2d 63 68 61 6e 67 65 64 20 20 ilters-changed
1d50: 23 74 29 20 20 20 20 20 20 20 20 20 20 20 20 20 #t)
1d60: 20 20 20 20 20 3a 20 62 6f 6f 6c 65 61 6e 29 20 : boolean)
1d70: 20 20 20 3b 3b 20 74 6f 20 69 6e 64 69 63 61 74 ;; to indicat
1d80: 65 20 74 68 61 74 20 74 68 65 20 75 73 65 72 20 e that the user
1d90: 63 68 61 6e 67 65 64 20 66 69 6c 74 65 72 73 20 changed filters
1da0: 66 6f 72 20 74 68 69 73 20 74 61 62 0a 20 20 28 for this tab. (
1db0: 28 6c 61 73 74 2d 66 69 6c 74 65 72 2d 73 74 72 (last-filter-str
1dc0: 20 20 22 22 29 20 20 20 20 20 20 20 20 20 20 20 "")
1dd0: 20 20 20 20 20 20 20 3a 20 73 74 72 69 6e 67 29 : string)
1de0: 20 20 20 20 20 20 3b 3b 20 63 6f 6e 63 20 74 68 ;; conc th
1df0: 65 20 74 61 72 67 65 74 20 72 75 6e 6e 61 6d 65 e target runname
1e00: 20 61 6e 64 20 74 65 73 74 70 61 74 74 20 66 6f and testpatt fo
1e10: 72 20 61 20 73 69 67 6e 61 74 75 72 65 20 6f 66 r a signature of
1e20: 20 63 68 61 6e 67 65 64 20 66 69 6c 74 65 72 73 changed filters
1e30: 0a 20 20 28 28 68 69 64 65 2d 65 6d 70 74 79 2d . ((hide-empty-
1e40: 72 75 6e 73 20 20 23 66 29 20 20 20 20 20 20 20 runs #f)
1e50: 20 20 20 20 20 20 20 20 20 20 20 3a 20 62 6f 6f : boo
1e60: 6c 65 61 6e 29 20 20 20 20 20 0a 20 20 28 28 68 lean) . ((h
1e70: 69 64 65 2d 6e 6f 74 2d 68 69 64 65 20 20 20 20 ide-not-hide
1e80: 23 74 29 20 20 20 20 20 20 20 20 20 20 20 20 20 #t)
1e90: 20 20 20 20 20 3a 20 62 6f 6f 6c 65 61 6e 29 20 : boolean)
1ea0: 20 20 20 20 3b 3b 20 74 6f 67 67 6c 65 20 66 6f ;; toggle fo
1eb0: 72 20 68 69 64 65 2f 6e 6f 74 20 68 69 64 65 20 r hide/not hide
1ec0: 65 6d 70 74 79 20 72 75 6e 73 0a 20 20 28 68 69 empty runs. (hi
1ed0: 64 65 2d 6e 6f 74 2d 68 69 64 65 2d 62 75 74 74 de-not-hide-butt
1ee0: 6f 6e 20 23 66 29 0a 20 20 28 28 73 65 61 72 63 on #f). ((searc
1ef0: 68 70 61 74 74 73 20 20 20 20 20 20 20 20 28 6d hpatts (m
1f00: 61 6b 65 2d 68 61 73 68 2d 74 61 62 6c 65 29 29 ake-hash-table))
1f10: 20 3a 20 68 61 73 68 2d 74 61 62 6c 65 29 20 20 : hash-table)
1f20: 3b 3b 0a 20 20 28 28 73 74 61 74 65 2d 69 67 6e ;;. ((state-ign
1f30: 6f 72 65 2d 68 61 73 68 20 20 28 6d 61 6b 65 2d ore-hash (make-
1f40: 68 61 73 68 2d 74 61 62 6c 65 29 29 20 3a 20 68 hash-table)) : h
1f50: 61 73 68 2d 74 61 62 6c 65 29 20 20 3b 3b 20 68 ash-table) ;; h
1f60: 61 73 68 20 6f 66 20 20 53 54 41 54 45 20 3d 3e ash of STATE =>
1f70: 20 23 74 2f 23 66 20 66 6f 72 20 64 69 73 70 6c #t/#f for displ
1f80: 61 79 20 63 6f 6e 74 72 6f 6c 0a 20 20 28 28 73 ay control. ((s
1f90: 74 61 74 75 73 2d 69 67 6e 6f 72 65 2d 68 61 73 tatus-ignore-has
1fa0: 68 20 28 6d 61 6b 65 2d 68 61 73 68 2d 74 61 62 h (make-hash-tab
1fb0: 6c 65 29 29 20 3a 20 68 61 73 68 2d 74 61 62 6c le)) : hash-tabl
1fc0: 65 29 20 20 3b 3b 20 68 61 73 68 20 6f 66 20 53 e) ;; hash of S
1fd0: 54 41 54 55 53 20 3d 3e 20 23 74 2f 23 66 0a 20 TATUS => #t/#f.
1fe0: 20 28 74 61 72 67 65 74 20 20 20 20 20 20 20 20 (target
1ff0: 20 20 20 20 20 20 23 66 29 0a 20 20 28 74 65 73 #f). (tes
2000: 74 2d 70 61 74 74 73 20 20 20 20 20 20 20 20 20 t-patts
2010: 20 23 66 29 0a 0a 20 20 3b 3b 20 64 62 20 69 6e #f).. ;; db in
2020: 66 6f 20 74 6f 20 66 69 6c 65 20 74 68 65 20 2e fo to file the .
2030: 64 62 20 66 69 6c 65 73 20 66 6f 72 20 74 68 65 db files for the
2040: 20 61 72 65 61 0a 20 20 28 61 63 63 65 73 73 2d area. (access-
2050: 6d 6f 64 65 20 20 20 20 20 20 20 20 28 64 62 3a mode (db:
2060: 67 65 74 2d 61 63 63 65 73 73 2d 6d 6f 64 65 29 get-access-mode)
2070: 29 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b ) ;;
2080: 20 75 73 65 20 63 61 63 68 65 64 20 64 62 20 6f use cached db o
2090: 72 20 6e 6f 74 0a 20 20 28 64 62 64 69 72 20 20 r not. (dbdir
20a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 23 66 29 #f)
20b0: 0a 20 20 28 64 62 66 70 61 74 68 20 20 20 20 20 . (dbfpath
20c0: 20 20 20 20 20 20 20 20 23 66 29 0a 20 20 28 64 #f). (d
20d0: 62 6b 65 79 73 20 20 20 20 20 20 20 20 20 20 20 bkeys
20e0: 20 20 20 23 66 29 0a 20 20 28 28 6c 61 73 74 2d #f). ((last-
20f0: 64 62 2d 75 70 64 61 74 65 20 20 20 20 20 28 6d db-update (m
2100: 61 6b 65 2d 68 61 73 68 2d 74 61 62 6c 65 29 29 ake-hash-table))
2110: 20 3a 20 68 61 73 68 2d 74 61 62 6c 65 29 20 3b : hash-table) ;
2120: 3b 20 6c 61 73 74 20 64 62 20 66 69 6c 65 20 74 ; last db file t
2130: 69 6d 65 73 74 61 6d 70 0a 20 20 28 6d 6f 6e 69 imestamp. (moni
2140: 74 6f 72 2d 64 62 2d 70 61 74 68 20 20 20 20 20 tor-db-path
2150: 23 66 29 20 20 20 20 20 20 20 20 20 20 20 20 20 #f)
2160: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2170: 20 3b 3b 20 77 68 65 72 65 20 74 6f 20 66 69 6e ;; where to fin
2180: 64 20 6d 6f 6e 69 74 6f 72 2e 64 62 0a 20 20 72 d monitor.db. r
2190: 6f 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 o
21a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
21b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
21c0: 20 20 20 20 20 3b 3b 20 69 73 20 74 68 65 20 64 ;; is the d
21d0: 61 74 61 62 61 73 65 20 72 65 61 64 2d 6f 6e 6c atabase read-onl
21e0: 79 3f 0a 0a 20 20 3b 3b 20 74 65 73 74 73 20 64 y?.. ;; tests d
21f0: 61 74 61 0a 20 20 28 28 6e 75 6d 2d 74 65 73 74 ata. ((num-test
2200: 73 20 20 20 20 20 20 20 20 20 20 31 30 29 20 20 s 10)
2210: 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 20 6e : n
2220: 75 6d 62 65 72 29 20 20 20 20 20 20 3b 3b 20 74 umber) ;; t
2230: 6f 74 61 6c 20 6e 75 6d 62 65 72 20 6f 66 20 74 otal number of t
2240: 65 73 74 73 20 74 6f 20 73 68 6f 77 20 28 75 73 ests to show (us
2250: 65 64 20 69 6e 20 74 68 65 20 6f 6c 64 20 72 75 ed in the old ru
2260: 6e 73 20 64 69 73 70 6c 61 79 29 0a 0a 20 20 3b ns display).. ;
2270: 3b 20 72 75 6e 73 20 74 72 65 65 0a 20 20 28 28 ; runs tree. ((
2280: 70 61 74 68 2d 72 75 6e 2d 69 64 73 20 20 20 20 path-run-ids
2290: 20 20 20 28 6d 61 6b 65 2d 68 61 73 68 2d 74 61 (make-hash-ta
22a0: 62 6c 65 29 29 20 3a 20 68 61 73 68 2d 74 61 62 ble)) : hash-tab
22b0: 6c 65 29 20 3b 3b 20 70 61 74 68 20 28 74 61 72 le) ;; path (tar
22c0: 67 65 74 20 2f 20 72 75 6e 6e 61 6d 65 29 20 3d get / runname) =
22d0: 3e 20 69 64 0a 20 20 28 72 75 6e 73 2d 74 72 65 > id. (runs-tre
22e0: 65 20 20 20 20 20 20 20 20 20 20 20 23 66 29 0a e #f).
22f0: 20 20 28 28 72 75 6e 73 2d 74 72 65 65 2d 68 74 ((runs-tree-ht
2300: 20 20 20 20 20 20 20 28 6d 61 6b 65 2d 68 61 73 (make-has
2310: 68 2d 74 61 62 6c 65 29 29 20 3a 20 68 61 73 68 h-table)) : hash
2320: 2d 74 61 62 6c 65 29 20 3b 3b 20 74 72 61 63 6b -table) ;; track
2330: 20 77 68 69 63 68 20 74 61 72 67 65 74 73 20 61 which targets a
2340: 64 64 65 64 20 74 6f 20 74 72 65 65 20 28 6d 65 dded to tree (me
2350: 72 67 65 20 66 75 6e 63 74 69 6f 6e 61 6c 69 74 rge functionalit
2360: 79 20 77 69 74 68 20 70 61 74 68 2d 72 75 6e 2d y with path-run-
2370: 69 64 73 3f 29 0a 0a 20 20 3b 3b 20 74 61 62 20 ids?).. ;; tab
2380: 64 61 74 61 0a 20 20 28 28 76 69 65 77 2d 63 68 data. ((view-ch
2390: 61 6e 67 65 64 20 20 20 20 20 20 20 23 74 29 20 anged #t)
23a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a :
23b0: 20 62 6f 6f 6c 65 61 6e 29 20 20 20 0a 20 20 28 boolean) . (
23c0: 28 78 61 64 6a 20 20 20 20 20 20 20 20 20 20 20 (xadj
23d0: 20 20 20 20 30 29 20 20 20 20 20 20 20 20 20 20 0)
23e0: 20 20 20 20 20 20 20 3a 20 6e 75 6d 62 65 72 29 : number)
23f0: 20 20 20 20 20 3b 3b 20 78 20 73 6c 69 64 65 72 ;; x slider
2400: 20 6e 75 6d 62 65 72 20 28 69 66 20 75 73 69 6e number (if usin
2410: 67 20 63 61 6e 76 61 73 29 0a 20 20 28 28 79 61 g canvas). ((ya
2420: 64 6a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 dj
2430: 20 30 29 20 20 20 20 20 20 20 20 20 20 20 20 20 0)
2440: 20 20 20 20 3a 20 6e 75 6d 62 65 72 29 20 20 20 : number)
2450: 20 20 3b 3b 20 79 20 73 6c 69 64 65 72 20 6e 75 ;; y slider nu
2460: 6d 62 65 72 20 28 69 66 20 75 73 69 6e 67 20 63 mber (if using c
2470: 61 6e 76 61 73 29 0a 20 20 3b 3b 20 72 75 6e 73 anvas). ;; runs
2480: 2d 73 75 6d 6d 61 72 79 20 74 61 62 20 73 74 61 -summary tab sta
2490: 74 65 0a 20 20 28 28 72 75 6e 73 2d 73 75 6d 6d te. ((runs-summ
24a0: 61 72 79 2d 6d 6f 64 65 73 20 27 28 28 6f 6e 65 ary-modes '((one
24b0: 2d 72 75 6e 20 2e 20 22 53 68 6f 77 20 4f 6e 65 -run . "Show One
24c0: 20 52 75 6e 22 29 20 28 78 6f 72 2d 74 77 6f 2d Run") (xor-two-
24d0: 72 75 6e 73 20 2e 20 22 58 4f 52 20 54 77 6f 20 runs . "XOR Two
24e0: 52 75 6e 73 22 29 20 28 78 6f 72 2d 74 77 6f 2d Runs") (xor-two-
24f0: 72 75 6e 73 2d 68 69 64 65 2d 63 6c 65 61 6e 20 runs-hide-clean
2500: 2e 20 22 58 4f 52 3b 20 48 69 64 65 20 43 6c 65 . "XOR; Hide Cle
2510: 61 6e 22 29 29 20 29 20 20 20 3a 20 6c 69 73 74 an")) ) : list
2520: 29 0a 20 20 28 28 72 75 6e 73 2d 73 75 6d 6d 61 ). ((runs-summa
2530: 72 79 2d 6d 6f 64 65 2d 62 75 74 74 6f 6e 73 20 ry-mode-buttons
2540: 27 28 29 29 20 20 20 20 20 20 20 20 20 20 20 20 '())
2550: 20 20 20 3a 20 6c 69 73 74 29 0a 20 20 28 28 72 : list). ((r
2560: 75 6e 73 2d 73 75 6d 6d 61 72 79 2d 6d 6f 64 65 uns-summary-mode
2570: 20 20 27 6f 6e 65 2d 72 75 6e 29 20 20 20 20 20 'one-run)
2580: 20 20 20 20 20 20 20 3a 20 73 79 6d 62 6f 6c 29 : symbol)
2590: 0a 20 20 28 28 72 75 6e 73 2d 73 75 6d 6d 61 72 . ((runs-summar
25a0: 79 2d 6d 6f 64 65 2d 63 68 61 6e 67 65 2d 63 61 y-mode-change-ca
25b0: 6c 6c 62 61 63 6b 73 20 27 28 29 29 20 3a 20 6c llbacks '()) : l
25c0: 69 73 74 29 0a 20 20 28 72 75 6e 73 2d 73 75 6d ist). (runs-sum
25d0: 6d 61 72 79 2d 73 6f 75 72 63 65 2d 72 75 6e 6e mary-source-runn
25e0: 61 6d 65 2d 6c 61 62 65 6c 20 23 66 29 0a 20 20 ame-label #f).
25f0: 28 72 75 6e 73 2d 73 75 6d 6d 61 72 79 2d 64 65 (runs-summary-de
2600: 73 74 2d 72 75 6e 6e 61 6d 65 2d 6c 61 62 65 6c st-runname-label
2610: 20 23 66 29 0a 20 20 3b 3b 20 72 75 6e 73 20 73 #f). ;; runs s
2620: 75 6d 6d 61 72 79 20 76 69 65 77 0a 20 20 0a 20 ummary view. .
2630: 20 74 65 73 74 73 2d 74 72 65 65 20 20 20 20 20 tests-tree
2640: 20 20 3b 3b 20 75 73 65 64 20 69 6e 20 6e 65 77 ;; used in new
2650: 64 61 73 68 62 6f 61 72 64 0a 20 20 29 0a 0a 0a dashboard. )...
2660: 0a 3b 3b 20 6d 74 65 73 74 20 69 73 20 61 63 74 .;; mtest is act
2670: 75 61 6c 6c 79 20 74 68 65 20 6d 65 67 61 74 65 ually the megate
2680: 73 74 2e 63 6f 6e 66 69 67 20 66 69 6c 65 0a 3b st.config file.;
2690: 3b 0a 28 64 65 66 69 6e 65 20 28 6d 74 65 73 74 ;.(define (mtest
26a0: 20 74 6f 70 70 61 74 68 20 77 69 6e 64 6f 77 2d toppath window-
26b0: 69 64 29 0a 20 20 28 6c 65 74 2a 20 28 28 63 75 id). (let* ((cu
26c0: 72 72 2d 72 6f 77 2d 6e 75 6d 20 20 20 20 20 30 rr-row-num 0
26d0: 29 0a 09 20 3b 3b 20 28 72 61 77 63 6f 6e 66 69 ).. ;; (rawconfi
26e0: 67 20 20 20 20 20 20 20 20 28 72 65 61 64 2d 63 g (read-c
26f0: 6f 6e 66 69 67 20 28 63 6f 6e 63 20 74 6f 70 70 onfig (conc topp
2700: 61 74 68 20 22 2f 6d 65 67 61 74 65 73 74 2e 63 ath "/megatest.c
2710: 6f 6e 66 69 67 22 29 20 23 66 20 27 72 65 74 75 onfig") #f 'retu
2720: 72 6e 2d 73 74 72 69 6e 67 29 29 0a 09 20 28 6b rn-string)).. (k
2730: 65 79 73 2d 6d 61 74 72 69 78 20 20 20 20 20 20 eys-matrix
2740: 28 69 75 70 3a 6d 61 74 72 69 78 29 29 20 3b 3b (iup:matrix)) ;;
2750: 20 28 64 63 6f 6d 6d 6f 6e 3a 6b 65 79 73 2d 6d (dcommon:keys-m
2760: 61 74 72 69 78 20 72 61 77 63 6f 6e 66 69 67 29 atrix rawconfig)
2770: 29 0a 09 20 28 73 65 74 75 70 2d 6d 61 74 72 69 ).. (setup-matri
2780: 78 20 20 20 20 20 28 69 75 70 3a 6d 61 74 72 69 x (iup:matri
2790: 78 29 29 20 3b 3b 20 28 64 63 6f 6d 6d 6f 6e 3a x)) ;; (dcommon:
27a0: 73 65 63 74 69 6f 6e 2d 6d 61 74 72 69 78 20 72 section-matrix r
27b0: 61 77 63 6f 6e 66 69 67 20 22 73 65 74 75 70 22 awconfig "setup"
27c0: 20 22 56 61 72 6e 61 6d 65 22 20 22 56 61 6c 75 "Varname" "Valu
27d0: 65 22 29 29 0a 09 20 28 6a 6f 62 74 6f 6f 6c 73 e")).. (jobtools
27e0: 2d 6d 61 74 72 69 78 20 20 28 69 75 70 3a 6d 61 -matrix (iup:ma
27f0: 74 72 69 78 0a 09 09 09 20 20 20 20 23 3a 65 78 trix.... #:ex
2800: 70 61 6e 64 20 22 59 45 53 22 0a 09 09 09 20 20 pand "YES"....
2810: 20 20 23 3a 6e 75 6d 63 6f 6c 20 31 0a 09 09 09 #:numcol 1....
2820: 20 20 20 20 23 3a 6e 75 6d 6c 69 6e 20 35 0a 09 #:numlin 5..
2830: 09 09 20 20 20 20 23 3a 6e 75 6d 63 6f 6c 2d 76 .. #:numcol-v
2840: 69 73 69 62 6c 65 20 31 0a 09 09 09 20 20 20 20 isible 1....
2850: 23 3a 6e 75 6d 6c 69 6e 2d 76 69 73 69 62 6c 65 #:numlin-visible
2860: 20 33 29 29 0a 09 20 28 76 61 6c 69 64 76 61 6c 3)).. (validval
2870: 73 2d 6d 61 74 72 69 78 20 28 69 75 70 3a 6d 61 s-matrix (iup:ma
2880: 74 72 69 78 0a 09 09 09 20 20 20 20 23 3a 65 78 trix.... #:ex
2890: 70 61 6e 64 20 22 59 45 53 22 0a 09 09 09 20 20 pand "YES"....
28a0: 20 20 23 3a 6e 75 6d 63 6f 6c 20 31 0a 09 09 09 #:numcol 1....
28b0: 20 20 20 20 23 3a 6e 75 6d 6c 69 6e 20 32 0a 09 #:numlin 2..
28c0: 09 09 20 20 20 20 23 3a 6e 75 6d 63 6f 6c 2d 76 .. #:numcol-v
28d0: 69 73 69 62 6c 65 20 31 0a 09 09 09 20 20 20 20 isible 1....
28e0: 23 3a 6e 75 6d 6c 69 6e 2d 76 69 73 69 62 6c 65 #:numlin-visible
28f0: 20 32 29 29 0a 09 20 28 65 6e 76 6f 76 72 64 2d 2)).. (envovrd-
2900: 6d 61 74 72 69 78 20 20 20 28 69 75 70 3a 6d 61 matrix (iup:ma
2910: 74 72 69 78 0a 09 09 09 20 20 20 20 23 3a 65 78 trix.... #:ex
2920: 70 61 6e 64 20 22 59 45 53 22 0a 09 09 09 20 20 pand "YES"....
2930: 20 20 23 3a 6e 75 6d 63 6f 6c 20 31 0a 09 09 09 #:numcol 1....
2940: 20 20 20 20 23 3a 6e 75 6d 6c 69 6e 20 32 30 0a #:numlin 20.
2950: 09 09 09 20 20 20 20 23 3a 6e 75 6d 63 6f 6c 2d ... #:numcol-
2960: 76 69 73 69 62 6c 65 20 31 0a 09 09 09 20 20 20 visible 1....
2970: 20 23 3a 6e 75 6d 6c 69 6e 2d 76 69 73 69 62 6c #:numlin-visibl
2980: 65 20 38 29 29 0a 09 20 28 64 69 73 6b 73 2d 6d e 8)).. (disks-m
2990: 61 74 72 69 78 20 20 20 20 20 28 69 75 70 3a 6d atrix (iup:m
29a0: 61 74 72 69 78 0a 09 09 09 20 20 20 20 23 3a 65 atrix.... #:e
29b0: 78 70 61 6e 64 20 22 59 45 53 22 0a 09 09 09 20 xpand "YES"....
29c0: 20 20 20 23 3a 6e 75 6d 63 6f 6c 20 31 0a 09 09 #:numcol 1...
29d0: 09 20 20 20 20 23 3a 6e 75 6d 6c 69 6e 20 32 30 . #:numlin 20
29e0: 0a 09 09 09 20 20 20 20 23 3a 6e 75 6d 63 6f 6c .... #:numcol
29f0: 2d 76 69 73 69 62 6c 65 20 31 0a 09 09 09 20 20 -visible 1....
2a00: 20 20 23 3a 6e 75 6d 6c 69 6e 2d 76 69 73 69 62 #:numlin-visib
2a10: 6c 65 20 38 29 29 0a 09 20 29 0a 20 20 20 20 28 le 8)).. ). (
2a20: 69 75 70 3a 61 74 74 72 69 62 75 74 65 2d 73 65 iup:attribute-se
2a30: 74 21 20 64 69 73 6b 73 2d 6d 61 74 72 69 78 20 t! disks-matrix
2a40: 22 30 3a 30 22 20 22 44 69 73 6b 20 4e 61 6d 65 "0:0" "Disk Name
2a50: 22 29 0a 20 20 20 20 28 69 75 70 3a 61 74 74 72 "). (iup:attr
2a60: 69 62 75 74 65 2d 73 65 74 21 20 64 69 73 6b 73 ibute-set! disks
2a70: 2d 6d 61 74 72 69 78 20 22 30 3a 31 22 20 22 44 -matrix "0:1" "D
2a80: 69 73 6b 20 50 61 74 68 22 29 0a 20 20 20 20 28 isk Path"). (
2a90: 69 75 70 3a 61 74 74 72 69 62 75 74 65 2d 73 65 iup:attribute-se
2aa0: 74 21 20 64 69 73 6b 73 2d 6d 61 74 72 69 78 20 t! disks-matrix
2ab0: 22 57 49 44 54 48 31 22 20 22 31 32 30 22 29 0a "WIDTH1" "120").
2ac0: 20 20 20 20 28 69 75 70 3a 61 74 74 72 69 62 75 (iup:attribu
2ad0: 74 65 2d 73 65 74 21 20 64 69 73 6b 73 2d 6d 61 te-set! disks-ma
2ae0: 74 72 69 78 20 22 57 49 44 54 48 30 22 20 22 31 trix "WIDTH0" "1
2af0: 30 30 22 29 0a 20 20 20 20 28 69 75 70 3a 61 74 00"). (iup:at
2b00: 74 72 69 62 75 74 65 2d 73 65 74 21 20 64 69 73 tribute-set! dis
2b10: 6b 73 2d 6d 61 74 72 69 78 20 22 41 4c 49 47 4e ks-matrix "ALIGN
2b20: 4d 45 4e 54 31 22 20 22 41 4c 45 46 54 22 29 0a MENT1" "ALEFT").
2b30: 20 20 20 20 28 69 75 70 3a 61 74 74 72 69 62 75 (iup:attribu
2b40: 74 65 2d 73 65 74 21 20 64 69 73 6b 73 2d 6d 61 te-set! disks-ma
2b50: 74 72 69 78 20 22 46 49 58 54 4f 54 45 58 54 22 trix "FIXTOTEXT"
2b60: 20 22 43 31 22 29 0a 20 20 20 20 28 69 75 70 3a "C1"). (iup:
2b70: 61 74 74 72 69 62 75 74 65 2d 73 65 74 21 20 64 attribute-set! d
2b80: 69 73 6b 73 2d 6d 61 74 72 69 78 20 22 52 45 53 isks-matrix "RES
2b90: 49 5a 45 4d 41 54 52 49 58 22 20 22 59 45 53 22 IZEMATRIX" "YES"
2ba0: 29 0a 0a 20 20 20 20 3b 3b 20 66 69 6c 6c 20 69 ).. ;; fill i
2bb0: 6e 20 65 78 69 73 74 69 6e 67 20 69 6e 66 6f 0a n existing info.
2bc0: 20 20 20 20 28 66 6f 72 2d 65 61 63 68 20 0a 20 (for-each .
2bd0: 20 20 20 20 28 6c 61 6d 62 64 61 20 28 6d 61 74 (lambda (mat
2be0: 20 66 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 28 fname). (
2bf0: 73 65 74 21 20 63 75 72 72 2d 72 6f 77 2d 6e 75 set! curr-row-nu
2c00: 6d 20 31 29 0a 20 20 20 20 20 20 20 28 66 6f 72 m 1). (for
2c10: 2d 65 61 63 68 0a 09 28 6c 61 6d 62 64 61 20 28 -each..(lambda (
2c20: 76 61 72 29 0a 09 20 20 28 69 75 70 3a 61 74 74 var).. (iup:att
2c30: 72 69 62 75 74 65 2d 73 65 74 21 20 6d 61 74 20 ribute-set! mat
2c40: 28 63 6f 6e 63 20 63 75 72 72 2d 72 6f 77 2d 6e (conc curr-row-n
2c50: 75 6d 20 22 3a 30 22 29 20 76 61 72 29 0a 09 20 um ":0") var)..
2c60: 20 3b 3b 20 28 69 75 70 3a 61 74 74 72 69 62 75 ;; (iup:attribu
2c70: 74 65 2d 73 65 74 21 20 6d 61 74 20 28 63 6f 6e te-set! mat (con
2c80: 63 20 63 75 72 72 2d 72 6f 77 2d 6e 75 6d 20 22 c curr-row-num "
2c90: 3a 31 22 29 20 28 63 6f 6e 66 69 67 2d 6c 6f 6f :1") (config-loo
2ca0: 6b 75 70 20 72 61 77 63 6f 6e 66 69 67 20 66 6e kup rawconfig fn
2cb0: 61 6d 65 20 76 61 72 29 29 0a 09 20 20 28 73 65 ame var)).. (se
2cc0: 74 21 20 63 75 72 72 2d 72 6f 77 2d 6e 75 6d 20 t! curr-row-num
2cd0: 28 2b 20 63 75 72 72 2d 72 6f 77 2d 6e 75 6d 20 (+ curr-row-num
2ce0: 31 29 29 29 0a 09 27 28 29 29 29 3b 3b 20 28 63 1)))..'()));; (c
2cf0: 6f 6e 66 69 67 66 3a 73 65 63 74 69 6f 6e 2d 76 onfigf:section-v
2d00: 61 72 73 20 72 61 77 63 6f 6e 66 69 67 20 66 6e ars rawconfig fn
2d10: 61 6d 65 29 29 29 0a 20 20 20 20 20 28 6c 69 73 ame))). (lis
2d20: 74 20 73 65 74 75 70 2d 6d 61 74 72 69 78 20 6a t setup-matrix j
2d30: 6f 62 74 6f 6f 6c 73 2d 6d 61 74 72 69 78 20 76 obtools-matrix v
2d40: 61 6c 69 64 76 61 6c 73 2d 6d 61 74 72 69 78 20 alidvals-matrix
2d50: 65 6e 76 6f 76 72 64 2d 6d 61 74 72 69 78 20 64 envovrd-matrix d
2d60: 69 73 6b 73 2d 6d 61 74 72 69 78 29 0a 20 20 20 isks-matrix).
2d70: 20 20 28 6c 69 73 74 20 22 73 65 74 75 70 22 20 (list "setup"
2d80: 20 20 20 20 20 22 6a 6f 62 74 6f 6f 6c 73 22 20 "jobtools"
2d90: 20 20 20 20 20 22 76 61 6c 69 64 76 61 6c 75 65 "validvalue
2da0: 73 22 20 20 20 20 20 20 22 65 6e 76 2d 6f 76 65 s" "env-ove
2db0: 72 72 69 64 65 22 20 22 64 69 73 6b 73 22 29 29 rride" "disks"))
2dc0: 0a 0a 20 20 20 20 28 66 6f 72 2d 65 61 63 68 0a .. (for-each.
2dd0: 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 6d 61 (lambda (ma
2de0: 74 29 0a 20 20 20 20 20 20 20 28 69 75 70 3a 61 t). (iup:a
2df0: 74 74 72 69 62 75 74 65 2d 73 65 74 21 20 6d 61 ttribute-set! ma
2e00: 74 20 22 30 3a 31 22 20 22 56 61 6c 75 65 22 29 t "0:1" "Value")
2e10: 0a 20 20 20 20 20 20 20 28 69 75 70 3a 61 74 74 . (iup:att
2e20: 72 69 62 75 74 65 2d 73 65 74 21 20 6d 61 74 20 ribute-set! mat
2e30: 22 30 3a 30 22 20 22 56 61 72 22 29 0a 20 20 20 "0:0" "Var").
2e40: 20 20 20 20 28 69 75 70 3a 61 74 74 72 69 62 75 (iup:attribu
2e50: 74 65 2d 73 65 74 21 20 6d 61 74 20 22 41 4c 49 te-set! mat "ALI
2e60: 47 4e 4d 45 4e 54 31 22 20 22 41 4c 45 46 54 22 GNMENT1" "ALEFT"
2e70: 29 0a 20 20 20 20 20 20 20 28 69 75 70 3a 61 74 ). (iup:at
2e80: 74 72 69 62 75 74 65 2d 73 65 74 21 20 6d 61 74 tribute-set! mat
2e90: 20 22 46 49 58 54 4f 54 45 58 54 22 20 22 43 31 "FIXTOTEXT" "C1
2ea0: 22 29 0a 20 20 20 20 20 20 20 28 69 75 70 3a 61 "). (iup:a
2eb0: 74 74 72 69 62 75 74 65 2d 73 65 74 21 20 6d 61 ttribute-set! ma
2ec0: 74 20 22 52 45 53 49 5a 45 4d 41 54 52 49 58 22 t "RESIZEMATRIX"
2ed0: 20 22 59 45 53 22 29 0a 20 20 20 20 20 20 20 28 "YES"). (
2ee0: 69 75 70 3a 61 74 74 72 69 62 75 74 65 2d 73 65 iup:attribute-se
2ef0: 74 21 20 6d 61 74 20 22 57 49 44 54 48 31 22 20 t! mat "WIDTH1"
2f00: 22 31 32 30 22 29 0a 20 20 20 20 20 20 20 28 69 "120"). (i
2f10: 75 70 3a 61 74 74 72 69 62 75 74 65 2d 73 65 74 up:attribute-set
2f20: 21 20 6d 61 74 20 22 57 49 44 54 48 30 22 20 22 ! mat "WIDTH0" "
2f30: 31 30 30 22 29 0a 20 20 20 20 20 20 20 29 0a 20 100"). ).
2f40: 20 20 20 20 28 6c 69 73 74 20 73 65 74 75 70 2d (list setup-
2f50: 6d 61 74 72 69 78 20 6a 6f 62 74 6f 6f 6c 73 2d matrix jobtools-
2f60: 6d 61 74 72 69 78 20 76 61 6c 69 64 76 61 6c 73 matrix validvals
2f70: 2d 6d 61 74 72 69 78 20 65 6e 76 6f 76 72 64 2d -matrix envovrd-
2f80: 6d 61 74 72 69 78 29 29 0a 0a 20 20 20 20 28 69 matrix)).. (i
2f90: 75 70 3a 61 74 74 72 69 62 75 74 65 2d 73 65 74 up:attribute-set
2fa0: 21 20 76 61 6c 69 64 76 61 6c 73 2d 6d 61 74 72 ! validvals-matr
2fb0: 69 78 20 22 57 49 44 54 48 31 22 20 22 32 39 30 ix "WIDTH1" "290
2fc0: 22 29 0a 20 20 20 20 28 69 75 70 3a 61 74 74 72 "). (iup:attr
2fd0: 69 62 75 74 65 2d 73 65 74 21 20 65 6e 76 6f 76 ibute-set! envov
2fe0: 72 64 2d 6d 61 74 72 69 78 20 20 20 22 57 49 44 rd-matrix "WID
2ff0: 54 48 31 22 20 22 32 39 30 22 29 0a 0a 20 20 20 TH1" "290")..
3000: 20 28 69 75 70 3a 76 62 6f 78 0a 20 20 20 20 20 (iup:vbox.
3010: 28 69 75 70 3a 68 62 6f 78 0a 20 20 20 20 20 20 (iup:hbox.
3020: 20 0a 20 20 20 20 20 20 28 69 75 70 3a 76 62 6f . (iup:vbo
3030: 78 0a 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 x. (let ((
3040: 74 61 62 73 20 28 69 75 70 3a 74 61 62 73 20 0a tabs (iup:tabs .
3050: 09 09 20 20 20 20 3b 3b 20 54 68 65 20 72 65 71 .. ;; The req
3060: 75 69 72 65 64 20 74 61 62 0a 09 09 20 20 20 20 uired tab...
3070: 28 69 75 70 3a 68 62 6f 78 0a 09 09 20 20 20 20 (iup:hbox...
3080: 20 3b 3b 20 54 68 65 20 6b 65 79 73 0a 09 09 20 ;; The keys...
3090: 20 20 20 20 28 69 75 70 3a 66 72 61 6d 65 20 0a (iup:frame .
30a0: 09 09 20 20 20 20 20 20 23 3a 74 69 74 6c 65 20 .. #:title
30b0: 22 4b 65 79 73 20 28 72 65 71 75 69 72 65 64 29 "Keys (required)
30c0: 22 0a 09 09 20 20 20 20 20 20 28 69 75 70 3a 76 "... (iup:v
30d0: 62 6f 78 0a 09 09 20 20 20 20 20 20 20 28 69 75 box... (iu
30e0: 70 3a 6c 61 62 65 6c 20 28 63 6f 6e 63 20 22 53 p:label (conc "S
30f0: 65 74 20 74 68 65 20 66 69 65 6c 64 73 20 66 6f et the fields fo
3100: 72 20 6f 72 67 61 6e 69 73 69 6e 67 20 79 6f 75 r organising you
3110: 72 20 72 75 6e 73 5c 6e 22 0a 09 09 09 09 09 22 r runs\n"......"
3120: 68 65 72 65 2e 20 4e 6f 74 65 3a 20 63 61 6e 20 here. Note: can
3130: 6f 6e 6c 79 20 62 65 20 63 68 61 6e 67 65 64 20 only be changed
3140: 62 65 66 6f 72 65 5c 6e 22 0a 09 09 09 09 09 22 before\n"......"
3150: 72 75 6e 6e 69 6e 67 20 74 68 65 20 66 69 72 73 running the firs
3160: 74 20 72 75 6e 20 77 68 65 6e 20 6d 65 67 61 74 t run when megat
3170: 65 73 74 2e 64 62 5c 6e 22 0a 09 09 09 09 09 22 est.db\n"......"
3180: 69 73 20 63 72 65 61 74 65 64 2e 22 29 29 0a 09 is created."))..
3190: 09 20 20 20 20 20 20 20 6b 65 79 73 2d 6d 61 74 . keys-mat
31a0: 72 69 78 29 29 0a 09 09 20 20 20 20 20 28 69 75 rix))... (iu
31b0: 70 3a 76 62 6f 78 0a 09 09 20 20 20 20 20 20 3b p:vbox... ;
31c0: 3b 20 54 68 65 20 73 65 74 75 70 20 73 65 63 74 ; The setup sect
31d0: 69 6f 6e 0a 09 09 20 20 20 20 20 20 28 69 75 70 ion... (iup
31e0: 3a 66 72 61 6d 65 0a 09 09 20 20 20 20 20 20 20 :frame...
31f0: 23 3a 74 69 74 6c 65 20 22 53 65 74 75 70 22 0a #:title "Setup".
3200: 09 09 20 20 20 20 20 20 20 28 69 75 70 3a 76 62 .. (iup:vb
3210: 6f 78 0a 09 09 09 28 69 75 70 3a 6c 61 62 65 6c ox....(iup:label
3220: 20 28 63 6f 6e 63 20 22 6d 61 78 5f 63 6f 6e 63 (conc "max_conc
3230: 75 72 72 65 6e 74 5f 6a 6f 62 73 20 3a 20 6c 69 urrent_jobs : li
3240: 6d 69 74 73 20 74 6f 74 61 6c 20 63 6f 6e 63 75 mits total concu
3250: 72 72 65 6e 74 20 6a 6f 62 73 20 28 6f 70 74 69 rrent jobs (opti
3260: 6f 6e 61 6c 29 5c 6e 22 0a 09 09 09 09 09 20 22 onal)\n"...... "
3270: 6c 69 6e 6b 74 72 65 65 20 3a 20 64 69 72 65 63 linktree : direc
3280: 74 6f 72 79 20 77 68 65 72 65 20 6c 69 6e 6b 74 tory where linkt
3290: 72 65 65 20 77 69 6c 6c 20 62 65 20 63 72 65 61 ree will be crea
32a0: 74 65 64 2e 22 29 29 0a 09 09 09 73 65 74 75 70 ted."))....setup
32b0: 2d 6d 61 74 72 69 78 29 29 0a 09 09 20 20 20 20 -matrix))...
32c0: 20 20 3b 3b 20 54 68 65 20 6a 6f 62 74 6f 6f 6c ;; The jobtool
32d0: 73 0a 09 09 20 20 20 20 20 20 28 69 75 70 3a 66 s... (iup:f
32e0: 72 61 6d 65 0a 09 09 20 20 20 20 20 20 20 23 3a rame... #:
32f0: 74 69 74 6c 65 20 22 4a 6f 62 74 6f 6f 6c 73 22 title "Jobtools"
3300: 0a 09 09 20 20 20 20 20 20 20 28 69 75 70 3a 76 ... (iup:v
3310: 62 6f 78 20 0a 09 09 09 28 69 75 70 3a 6c 61 62 box ....(iup:lab
3320: 65 6c 20 28 63 6f 6e 63 20 22 6c 61 75 6e 63 68 el (conc "launch
3330: 65 72 20 3a 20 74 6f 6f 6c 20 6f 72 20 73 63 72 er : tool or scr
3340: 69 70 74 20 74 6f 20 72 75 6e 20 6a 6f 62 73 20 ipt to run jobs
3350: 28 74 72 79 20 6e 62 66 61 6b 65 29 5c 6e 22 0a (try nbfake)\n".
3360: 09 09 09 09 09 20 22 75 73 65 73 68 65 6c 6c 20 ..... "useshell
3370: 3a 20 75 73 65 20 73 79 73 74 65 6d 20 74 6f 20 : use system to
3380: 72 75 6e 20 79 6f 75 72 20 6c 61 75 6e 63 68 65 run your launche
3390: 72 5c 6e 22 0a 09 09 09 09 09 20 22 77 6f 72 6b r\n"...... "work
33a0: 68 6f 73 74 73 20 3a 20 73 70 72 65 61 64 20 6a hosts : spread j
33b0: 6f 62 73 20 6f 75 74 20 6f 6e 20 74 68 65 73 65 obs out on these
33c0: 20 68 6f 73 74 73 22 29 29 0a 09 09 09 6a 6f 62 hosts"))....job
33d0: 74 6f 6f 6c 73 2d 6d 61 74 72 69 78 29 29 0a 09 tools-matrix))..
33e0: 09 20 20 20 20 20 20 3b 3b 20 54 68 65 20 64 69 . ;; The di
33f0: 73 6b 73 0a 09 09 20 20 20 20 20 20 28 69 75 70 sks... (iup
3400: 3a 66 72 61 6d 65 0a 09 09 20 20 20 20 20 20 20 :frame...
3410: 23 3a 74 69 74 6c 65 20 22 44 69 73 6b 73 22 0a #:title "Disks".
3420: 09 09 20 20 20 20 20 20 20 28 69 75 70 3a 76 62 .. (iup:vb
3430: 6f 78 0a 09 09 09 28 69 75 70 3a 6c 61 62 65 6c ox....(iup:label
3440: 20 28 63 6f 6e 63 20 22 45 6e 74 65 72 20 6e 61 (conc "Enter na
3450: 6d 65 73 20 61 6e 64 20 65 78 69 73 74 69 6e 67 mes and existing
3460: 20 70 61 74 68 73 20 6f 66 20 6c 6f 63 61 74 69 paths of locati
3470: 6f 6e 73 20 74 6f 20 72 75 6e 20 74 65 73 74 73 ons to run tests
3480: 22 29 29 20 0a 09 09 09 64 69 73 6b 73 2d 6d 61 ")) ....disks-ma
3490: 74 72 69 78 29 29 29 29 0a 09 09 20 20 20 20 3b trix))))... ;
34a0: 3b 20 54 68 65 20 6f 70 74 69 6f 6e 61 6c 20 74 ; The optional t
34b0: 61 62 0a 09 09 20 20 20 20 28 69 75 70 3a 76 62 ab... (iup:vb
34c0: 6f 78 0a 09 09 20 20 20 20 20 3b 3b 20 54 68 65 ox... ;; The
34d0: 20 45 6e 76 69 72 6f 6e 6d 65 6e 74 20 4f 76 65 Environment Ove
34e0: 72 72 69 64 65 73 0a 09 09 20 20 20 20 20 28 69 rrides... (i
34f0: 75 70 3a 66 72 61 6d 65 20 0a 09 09 20 20 20 20 up:frame ...
3500: 20 20 23 3a 74 69 74 6c 65 20 22 45 6e 76 20 6f #:title "Env o
3510: 76 65 72 72 69 64 65 22 0a 09 09 20 20 20 20 20 verride"...
3520: 20 65 6e 76 6f 76 72 64 2d 6d 61 74 72 69 78 29 envovrd-matrix)
3530: 0a 09 09 20 20 20 20 20 3b 3b 20 54 68 65 20 76 ... ;; The v
3540: 61 6c 69 64 20 76 61 6c 75 65 73 0a 09 09 20 20 alid values...
3550: 20 20 20 28 69 75 70 3a 66 72 61 6d 65 0a 09 09 (iup:frame...
3560: 20 20 20 20 20 20 23 3a 74 69 74 6c 65 20 22 56 #:title "V
3570: 61 6c 69 64 76 61 6c 75 65 73 22 0a 09 09 20 20 alidvalues"...
3580: 20 20 20 20 76 61 6c 69 64 76 61 6c 73 2d 6d 61 validvals-ma
3590: 74 72 69 78 29 0a 09 09 20 20 20 20 20 29 29 29 trix)... )))
35a0: 29 0a 09 20 28 69 75 70 3a 61 74 74 72 69 62 75 ).. (iup:attribu
35b0: 74 65 2d 73 65 74 21 20 74 61 62 73 20 22 54 41 te-set! tabs "TA
35c0: 42 54 49 54 4c 45 30 22 20 22 52 65 71 75 69 72 BTITLE0" "Requir
35d0: 65 64 20 73 65 74 74 69 6e 67 73 22 29 0a 09 20 ed settings")..
35e0: 28 69 75 70 3a 61 74 74 72 69 62 75 74 65 2d 73 (iup:attribute-s
35f0: 65 74 21 20 74 61 62 73 20 22 54 41 42 54 49 54 et! tabs "TABTIT
3600: 4c 45 31 22 20 22 4f 70 74 69 6f 6e 61 6c 20 73 LE1" "Optional s
3610: 65 74 74 69 6e 67 73 22 29 0a 09 20 74 61 62 73 ettings").. tabs
3620: 29 29 0a 20 20 20 20 20 20 20 29 29 29 29 0a 0a )). ))))..
3630: 3b 3b 20 54 68 65 20 72 75 6e 63 6f 6e 66 69 67 ;; The runconfig
3640: 73 2e 63 6f 6e 66 69 67 20 66 69 6c 65 0a 3b 3b s.config file.;;
3650: 0a 28 64 65 66 69 6e 65 20 28 72 63 6f 6e 66 69 .(define (rconfi
3660: 67 20 77 69 6e 64 6f 77 2d 69 64 29 0a 20 20 28 g window-id). (
3670: 69 75 70 3a 76 62 6f 78 0a 20 20 20 28 69 75 70 iup:vbox. (iup
3680: 3a 66 72 61 6d 65 20 23 3a 74 69 74 6c 65 20 22 :frame #:title "
3690: 44 65 66 61 75 6c 74 22 29 29 29 0a 0a 3b 3b 3d Default")))..;;=
36a0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
36b0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
36c0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
36d0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
36e0: 3d 3d 3d 3d 3d 0a 3b 3b 20 54 20 45 20 53 20 54 =====.;; T E S T
36f0: 20 53 0a 3b 3b 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d S.;;===========
3700: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
3710: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
3720: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
3730: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 28 64 65 ===========..(de
3740: 66 69 6e 65 20 28 74 72 65 65 2d 70 61 74 68 2d fine (tree-path-
3750: 3e 74 65 73 74 2d 69 64 20 70 61 74 68 29 0a 20 >test-id path).
3760: 20 28 69 66 20 28 6e 6f 74 20 28 6e 75 6c 6c 3f (if (not (null?
3770: 20 70 61 74 68 29 29 0a 20 20 20 20 20 20 28 68 path)). (h
3780: 61 73 68 2d 74 61 62 6c 65 2d 72 65 66 2f 64 65 ash-table-ref/de
3790: 66 61 75 6c 74 20 28 64 62 6f 61 72 64 3a 64 61 fault (dboard:da
37a0: 74 61 2d 70 61 74 68 2d 74 65 73 74 2d 69 64 73 ta-path-test-ids
37b0: 20 2a 64 61 74 61 2a 29 20 70 61 74 68 20 23 66 *data*) path #f
37c0: 29 0a 20 20 20 20 20 20 23 66 29 29 0a 0a 28 64 ). #f))..(d
37d0: 65 66 69 6e 65 20 28 74 65 73 74 2d 70 61 6e 65 efine (test-pane
37e0: 6c 20 77 69 6e 64 6f 77 2d 69 64 29 0a 20 20 28 l window-id). (
37f0: 6c 65 74 2a 20 28 28 63 75 72 72 2d 72 6f 77 2d let* ((curr-row-
3800: 6e 75 6d 20 30 29 0a 09 20 28 76 69 65 77 6c 6f num 0).. (viewlo
3810: 67 20 20 20 20 28 6c 61 6d 62 64 61 20 28 78 29 g (lambda (x)
3820: 0a 09 09 20 20 20 20 20 20 20 28 69 66 20 28 63 ... (if (c
3830: 6f 6d 6d 6f 6e 3a 66 69 6c 65 2d 65 78 69 73 74 ommon:file-exist
3840: 73 3f 20 6c 6f 67 66 69 6c 65 29 0a 09 09 09 09 s? logfile).....
3850: 09 3b 28 73 79 73 74 65 6d 20 28 63 6f 6e 63 20 .;(system (conc
3860: 22 66 69 72 65 66 6f 78 20 22 20 6c 6f 67 66 69 "firefox " logfi
3870: 6c 65 20 22 26 22 29 29 0a 09 09 09 20 20 20 28 le "&")).... (
3880: 69 75 70 3a 73 65 6e 64 2d 75 72 6c 20 6c 6f 67 iup:send-url log
3890: 66 69 6c 65 29 0a 09 09 09 20 20 20 28 6d 65 73 file).... (mes
38a0: 73 61 67 65 2d 77 69 6e 64 6f 77 20 28 63 6f 6e sage-window (con
38b0: 63 20 22 46 69 6c 65 20 22 20 6c 6f 67 66 69 6c c "File " logfil
38c0: 65 20 22 20 6e 6f 74 20 66 6f 75 6e 64 22 29 29 e " not found"))
38d0: 29 29 29 0a 09 20 28 78 74 65 72 6d 20 20 20 20 ))).. (xterm
38e0: 20 20 28 6c 61 6d 62 64 61 20 28 78 29 0a 09 09 (lambda (x)...
38f0: 20 20 20 20 20 20 20 28 69 66 20 28 64 69 72 65 (if (dire
3900: 63 74 6f 72 79 2d 65 78 69 73 74 73 3f 20 72 75 ctory-exists? ru
3910: 6e 64 69 72 29 0a 09 09 09 20 20 20 28 6c 65 74 ndir).... (let
3920: 20 28 28 73 68 65 6c 6c 20 28 69 66 20 28 67 65 ((shell (if (ge
3930: 74 2d 65 6e 76 69 72 6f 6e 6d 65 6e 74 2d 76 61 t-environment-va
3940: 72 69 61 62 6c 65 20 22 53 48 45 4c 4c 22 29 20 riable "SHELL")
3950: 0a 09 09 09 09 09 20 20 20 20 28 63 6f 6e 63 20 ...... (conc
3960: 22 2d 65 20 22 20 28 67 65 74 2d 65 6e 76 69 72 "-e " (get-envir
3970: 6f 6e 6d 65 6e 74 2d 76 61 72 69 61 62 6c 65 20 onment-variable
3980: 22 53 48 45 4c 4c 22 29 29 0a 09 09 09 09 09 20 "SHELL"))......
3990: 20 20 20 22 22 29 29 29 0a 09 09 09 20 20 20 20 "")))....
39a0: 20 28 73 79 73 74 65 6d 20 28 63 6f 6e 63 20 22 (system (conc "
39b0: 63 64 20 22 20 72 75 6e 64 69 72 20 0a 09 09 09 cd " rundir ....
39c0: 09 09 20 20 20 22 3b 78 74 65 72 6d 20 2d 54 20 .. ";xterm -T
39d0: 5c 22 22 20 28 73 74 72 69 6e 67 2d 74 72 61 6e \"" (string-tran
39e0: 73 6c 61 74 65 20 74 65 73 74 66 75 6c 6c 6e 61 slate testfullna
39f0: 6d 65 20 22 28 29 22 20 22 20 20 22 29 20 22 5c me "()" " ") "\
3a00: 22 20 22 20 73 68 65 6c 6c 20 22 26 22 29 29 29 " " shell "&")))
3a10: 0a 09 09 09 20 20 20 28 6d 65 73 73 61 67 65 2d .... (message-
3a20: 77 69 6e 64 6f 77 20 20 28 63 6f 6e 63 20 22 44 window (conc "D
3a30: 69 72 65 63 74 6f 72 79 20 22 20 72 75 6e 64 69 irectory " rundi
3a40: 72 20 22 20 6e 6f 74 20 66 6f 75 6e 64 22 29 29 r " not found"))
3a50: 29 29 29 0a 09 20 28 63 6f 6d 6d 61 6e 64 2d 74 ))).. (command-t
3a60: 65 78 74 2d 62 6f 78 20 28 69 75 70 3a 74 65 78 ext-box (iup:tex
3a70: 74 62 6f 78 20 23 3a 65 78 70 61 6e 64 20 22 48 tbox #:expand "H
3a80: 4f 52 49 5a 4f 4e 54 41 4c 22 20 23 3a 66 6f 6e ORIZONTAL" #:fon
3a90: 74 20 22 43 6f 75 72 69 65 72 20 4e 65 77 2c 20 t "Courier New,
3aa0: 2d 31 32 22 29 29 0a 09 20 28 63 6f 6d 6d 61 6e -12")).. (comman
3ab0: 64 2d 6c 61 75 6e 63 68 2d 62 75 74 74 6f 6e 20 d-launch-button
3ac0: 28 69 75 70 3a 62 75 74 74 6f 6e 20 22 45 78 65 (iup:button "Exe
3ad0: 63 75 74 65 21 22 20 0a 09 09 09 09 09 20 20 20 cute!" ......
3ae0: 20 3b 3b 20 23 3a 65 78 70 61 6e 64 20 22 48 4f ;; #:expand "HO
3af0: 52 49 5a 4f 4e 54 41 4c 22 0a 09 09 09 09 09 20 RIZONTAL"......
3b00: 20 20 20 23 3a 73 69 7a 65 20 22 35 30 78 22 0a #:size "50x".
3b10: 09 09 09 09 09 20 20 20 20 23 3a 61 63 74 69 6f ..... #:actio
3b20: 6e 20 28 6c 61 6d 62 64 61 20 28 78 29 0a 09 09 n (lambda (x)...
3b30: 09 09 09 09 20 20 20 20 20 20 20 28 6c 65 74 20 .... (let
3b40: 28 28 63 6d 64 20 28 69 75 70 3a 61 74 74 72 69 ((cmd (iup:attri
3b50: 62 75 74 65 20 63 6f 6d 6d 61 6e 64 2d 74 65 78 bute command-tex
3b60: 74 2d 62 6f 78 20 22 56 41 4c 55 45 22 29 29 29 t-box "VALUE")))
3b70: 0a 09 09 09 09 09 09 09 20 28 73 79 73 74 65 6d ........ (system
3b80: 20 28 63 6f 6e 63 20 63 6d 64 20 22 20 20 26 22 (conc cmd " &"
3b90: 29 29 29 29 29 29 0a 09 20 28 72 75 6e 2d 74 65 )))))).. (run-te
3ba0: 73 74 20 20 28 6c 61 6d 62 64 61 20 28 78 29 0a st (lambda (x).
3bb0: 09 09 20 20 20 20 20 20 28 69 75 70 3a 61 74 74 .. (iup:att
3bc0: 72 69 62 75 74 65 2d 73 65 74 21 20 0a 09 09 20 ribute-set! ...
3bd0: 20 20 20 20 20 20 63 6f 6d 6d 61 6e 64 2d 74 65 command-te
3be0: 78 74 2d 62 6f 78 20 22 56 41 4c 55 45 22 0a 09 xt-box "VALUE"..
3bf0: 09 20 20 20 20 20 20 20 28 63 6f 6e 63 20 22 78 . (conc "x
3c00: 74 65 72 6d 20 2d 67 65 6f 6d 65 74 72 79 20 31 term -geometry 1
3c10: 38 30 78 32 30 20 2d 65 20 5c 22 6d 65 67 61 74 80x20 -e \"megat
3c20: 65 73 74 20 2d 74 61 72 67 65 74 20 22 20 6b 65 est -target " ke
3c30: 79 73 74 72 69 6e 67 20 22 20 3a 72 75 6e 6e 61 ystring " :runna
3c40: 6d 65 20 22 20 72 75 6e 6e 61 6d 65 20 0a 09 09 me " runname ...
3c50: 09 20 20 20 20 20 22 20 2d 72 75 6e 74 65 73 74 . " -runtest
3c60: 73 20 22 20 28 63 6f 6e 63 20 74 65 73 74 6e 61 s " (conc testna
3c70: 6d 65 20 22 2f 22 20 28 69 66 20 28 65 71 75 61 me "/" (if (equa
3c80: 6c 3f 20 69 74 65 6d 2d 70 61 74 68 20 22 22 29 l? item-path "")
3c90: 0a 09 09 09 09 09 09 09 09 20 20 22 25 22 20 0a ......... "%" .
3ca0: 09 09 09 09 09 09 09 09 20 20 69 74 65 6d 2d 70 ........ item-p
3cb0: 61 74 68 29 29 0a 09 09 09 20 20 20 20 20 22 3b ath)).... ";
3cc0: 65 63 68 6f 20 50 72 65 73 73 20 61 6e 79 20 6b echo Press any k
3cd0: 65 79 20 74 6f 20 63 6f 6e 74 69 6e 75 65 3b 62 ey to continue;b
3ce0: 61 73 68 20 2d 63 20 27 72 65 61 64 20 2d 6e 20 ash -c 'read -n
3cf0: 31 20 2d 73 27 5c 22 22 29 29 29 29 0a 09 20 28 1 -s'\"")))).. (
3d00: 72 65 6d 6f 76 65 2d 74 65 73 74 20 28 6c 61 6d remove-test (lam
3d10: 62 64 61 20 28 78 29 0a 09 09 09 28 69 75 70 3a bda (x)....(iup:
3d20: 61 74 74 72 69 62 75 74 65 2d 73 65 74 21 0a 09 attribute-set!..
3d30: 09 09 20 63 6f 6d 6d 61 6e 64 2d 74 65 78 74 2d .. command-text-
3d40: 62 6f 78 20 22 56 41 4c 55 45 22 0a 09 09 09 20 box "VALUE"....
3d50: 28 63 6f 6e 63 20 22 78 74 65 72 6d 20 2d 67 65 (conc "xterm -ge
3d60: 6f 6d 65 74 72 79 20 31 38 30 78 32 30 20 2d 65 ometry 180x20 -e
3d70: 20 5c 22 6d 65 67 61 74 65 73 74 20 2d 72 65 6d \"megatest -rem
3d80: 6f 76 65 2d 72 75 6e 73 20 2d 74 61 72 67 65 74 ove-runs -target
3d90: 20 22 20 6b 65 79 73 74 72 69 6e 67 20 22 20 3a " keystring " :
3da0: 72 75 6e 6e 61 6d 65 20 22 20 72 75 6e 6e 61 6d runname " runnam
3db0: 65 0a 09 09 09 20 20 20 20 20 20 20 22 20 2d 74 e.... " -t
3dc0: 65 73 74 70 61 74 74 20 22 20 28 63 6f 6e 63 20 estpatt " (conc
3dd0: 74 65 73 74 6e 61 6d 65 20 22 2f 22 20 28 69 66 testname "/" (if
3de0: 20 28 65 71 75 61 6c 3f 20 69 74 65 6d 2d 70 61 (equal? item-pa
3df0: 74 68 20 22 22 29 0a 09 09 09 09 09 09 09 09 20 th "").........
3e00: 20 20 20 22 25 22 0a 09 09 09 09 09 09 09 09 20 "%".........
3e10: 20 20 20 69 74 65 6d 2d 70 61 74 68 29 29 0a 09 item-path))..
3e20: 09 09 20 20 20 20 20 20 20 22 20 2d 76 3b 65 63 .. " -v;ec
3e30: 68 6f 20 50 72 65 73 73 20 61 6e 79 20 6b 65 79 ho Press any key
3e40: 20 74 6f 20 63 6f 6e 74 69 6e 75 65 3b 62 61 73 to continue;bas
3e50: 68 20 2d 63 20 27 72 65 61 64 20 2d 6e 20 31 20 h -c 'read -n 1
3e60: 2d 73 27 5c 22 22 29 29 29 29 0a 20 20 20 20 09 -s'\"")))). .
3e70: 20 28 72 75 6e 2d 69 6e 66 6f 2d 6d 61 74 72 69 (run-info-matri
3e80: 78 20 20 28 69 75 70 3a 6d 61 74 72 69 78 20 09 x (iup:matrix .
3e90: 09 20 20 20 20 20 20 20 20 20 20 20 20 0a 09 09 . ...
3ea0: 09 20 20 20 20 23 3a 65 78 70 61 6e 64 20 22 59 . #:expand "Y
3eb0: 45 53 22 0a 09 09 09 20 20 20 20 3b 3b 20 23 3a ES".... ;; #:
3ec0: 73 63 72 6f 6c 6c 62 61 72 20 22 59 45 53 22 0a scrollbar "YES".
3ed0: 09 09 09 20 20 20 20 23 3a 6e 75 6d 63 6f 6c 20 ... #:numcol
3ee0: 31 0a 09 09 09 20 20 20 20 23 3a 6e 75 6d 6c 69 1.... #:numli
3ef0: 6e 20 34 0a 09 09 09 20 20 20 20 23 3a 6e 75 6d n 4.... #:num
3f00: 63 6f 6c 2d 76 69 73 69 62 6c 65 20 31 0a 09 09 col-visible 1...
3f10: 09 20 20 20 20 23 3a 6e 75 6d 6c 69 6e 2d 76 69 . #:numlin-vi
3f20: 73 69 62 6c 65 20 34 0a 09 09 09 20 20 20 20 23 sible 4.... #
3f30: 3a 63 6c 69 63 6b 2d 63 62 20 28 6c 61 6d 62 64 :click-cb (lambd
3f40: 61 20 28 6f 62 6a 20 6c 69 6e 20 63 6f 6c 20 73 a (obj lin col s
3f50: 74 61 74 75 73 29 0a 09 09 09 09 09 20 28 70 72 tatus)...... (pr
3f60: 69 6e 74 20 22 6f 62 6a 3a 20 22 20 6f 62 6a 20 int "obj: " obj
3f70: 22 20 6c 69 6e 3a 20 22 20 6c 69 6e 20 22 20 63 " lin: " lin " c
3f80: 6f 6c 3a 20 22 20 63 6f 6c 20 22 20 73 74 61 74 ol: " col " stat
3f90: 75 73 3a 20 22 20 73 74 61 74 75 73 29 29 29 29 us: " status))))
3fa0: 0a 09 20 28 74 65 73 74 2d 69 6e 66 6f 2d 6d 61 .. (test-info-ma
3fb0: 74 72 69 78 20 28 69 75 70 3a 6d 61 74 72 69 78 trix (iup:matrix
3fc0: 0a 09 09 20 20 20 20 20 20 20 20 20 20 20 20 23 ... #
3fd0: 3a 65 78 70 61 6e 64 20 22 59 45 53 22 0a 09 09 :expand "YES"...
3fe0: 20 20 20 20 20 20 20 20 20 20 20 20 23 3a 6e 75 #:nu
3ff0: 6d 63 6f 6c 20 31 0a 09 09 20 20 20 20 20 20 20 mcol 1...
4000: 20 20 20 20 20 23 3a 6e 75 6d 6c 69 6e 20 37 0a #:numlin 7.
4010: 09 09 20 20 20 20 20 20 20 20 20 20 20 20 23 3a .. #:
4020: 6e 75 6d 63 6f 6c 2d 76 69 73 69 62 6c 65 20 31 numcol-visible 1
4030: 0a 09 09 20 20 20 20 20 20 20 20 20 20 20 20 23 ... #
4040: 3a 6e 75 6d 6c 69 6e 2d 76 69 73 69 62 6c 65 20 :numlin-visible
4050: 37 29 29 0a 09 20 28 74 65 73 74 2d 72 75 6e 2d 7)).. (test-run-
4060: 6d 61 74 72 69 78 20 20 28 69 75 70 3a 6d 61 74 matrix (iup:mat
4070: 72 69 78 0a 09 09 09 20 20 20 20 23 3a 65 78 70 rix.... #:exp
4080: 61 6e 64 20 22 59 45 53 22 0a 09 09 09 20 20 20 and "YES"....
4090: 20 23 3a 6e 75 6d 63 6f 6c 20 31 0a 09 09 09 20 #:numcol 1....
40a0: 20 20 20 23 3a 6e 75 6d 6c 69 6e 20 35 0a 09 09 #:numlin 5...
40b0: 09 20 20 20 20 23 3a 6e 75 6d 63 6f 6c 2d 76 69 . #:numcol-vi
40c0: 73 69 62 6c 65 20 31 0a 09 09 09 20 20 20 20 23 sible 1.... #
40d0: 3a 6e 75 6d 6c 69 6e 2d 76 69 73 69 62 6c 65 20 :numlin-visible
40e0: 35 29 29 0a 09 20 28 6d 65 74 61 2d 64 61 74 2d 5)).. (meta-dat-
40f0: 6d 61 74 72 69 78 20 20 28 69 75 70 3a 6d 61 74 matrix (iup:mat
4100: 72 69 78 0a 09 09 09 20 20 20 20 23 3a 65 78 70 rix.... #:exp
4110: 61 6e 64 20 22 59 45 53 22 0a 09 09 09 20 20 20 and "YES"....
4120: 20 23 3a 6e 75 6d 63 6f 6c 20 31 0a 09 09 09 20 #:numcol 1....
4130: 20 20 20 23 3a 6e 75 6d 6c 69 6e 20 35 0a 09 09 #:numlin 5...
4140: 09 20 20 20 20 23 3a 6e 75 6d 63 6f 6c 2d 76 69 . #:numcol-vi
4150: 73 69 62 6c 65 20 31 0a 09 09 09 20 20 20 20 23 sible 1.... #
4160: 3a 6e 75 6d 6c 69 6e 2d 76 69 73 69 62 6c 65 20 :numlin-visible
4170: 35 29 29 0a 09 20 28 73 74 65 70 73 2d 6d 61 74 5)).. (steps-mat
4180: 72 69 78 20 20 20 20 20 28 69 75 70 3a 6d 61 74 rix (iup:mat
4190: 72 69 78 0a 09 09 09 20 20 20 20 23 3a 65 78 70 rix.... #:exp
41a0: 61 6e 64 20 22 59 45 53 22 0a 09 09 09 20 20 20 and "YES"....
41b0: 20 23 3a 6e 75 6d 63 6f 6c 20 36 0a 09 09 09 20 #:numcol 6....
41c0: 20 20 20 23 3a 6e 75 6d 6c 69 6e 20 35 30 0a 09 #:numlin 50..
41d0: 09 09 20 20 20 20 23 3a 6e 75 6d 63 6f 6c 2d 76 .. #:numcol-v
41e0: 69 73 69 62 6c 65 20 36 0a 09 09 09 20 20 20 20 isible 6....
41f0: 23 3a 6e 75 6d 6c 69 6e 2d 76 69 73 69 62 6c 65 #:numlin-visible
4200: 20 38 29 29 0a 09 20 28 64 61 74 61 2d 6d 61 74 8)).. (data-mat
4210: 72 69 78 20 20 20 20 20 20 28 69 75 70 3a 6d 61 rix (iup:ma
4220: 74 72 69 78 0a 09 09 09 20 20 20 20 23 3a 65 78 trix.... #:ex
4230: 70 61 6e 64 20 22 59 45 53 22 0a 09 09 09 20 20 pand "YES"....
4240: 20 20 23 3a 6e 75 6d 63 6f 6c 20 38 0a 09 09 09 #:numcol 8....
4250: 20 20 20 20 23 3a 6e 75 6d 6c 69 6e 20 35 30 0a #:numlin 50.
4260: 09 09 09 20 20 20 20 23 3a 6e 75 6d 63 6f 6c 2d ... #:numcol-
4270: 76 69 73 69 62 6c 65 20 38 0a 09 09 09 20 20 20 visible 8....
4280: 20 23 3a 6e 75 6d 6c 69 6e 2d 76 69 73 69 62 6c #:numlin-visibl
4290: 65 20 38 29 29 0a 09 20 28 75 70 64 61 74 65 72 e 8)).. (updater
42a0: 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 (lambd
42b0: 61 20 28 74 65 73 74 64 61 74 29 0a 09 09 09 20 a (testdat)....
42c0: 20 20 20 20 28 74 65 73 74 2d 75 70 64 61 74 65 (test-update
42d0: 20 77 69 6e 64 6f 77 2d 69 64 20 74 65 73 74 64 window-id testd
42e0: 61 74 20 72 75 6e 2d 69 6e 66 6f 2d 6d 61 74 72 at run-info-matr
42f0: 69 78 20 74 65 73 74 2d 69 6e 66 6f 2d 6d 61 74 ix test-info-mat
4300: 72 69 78 20 74 65 73 74 2d 72 75 6e 2d 6d 61 74 rix test-run-mat
4310: 72 69 78 20 6d 65 74 61 2d 64 61 74 2d 6d 61 74 rix meta-dat-mat
4320: 72 69 78 20 73 74 65 70 73 2d 6d 61 74 72 69 78 rix steps-matrix
4330: 20 64 61 74 61 2d 6d 61 74 72 69 78 29 29 29 29 data-matrix))))
4340: 0a 0a 20 20 20 20 3b 3b 20 53 65 74 20 74 68 65 .. ;; Set the
4350: 20 75 70 64 61 74 65 72 20 69 6e 20 75 70 64 61 updater in upda
4360: 74 65 72 73 0a 20 20 20 20 3b 3b 20 28 68 61 73 ters. ;; (has
4370: 68 2d 74 61 62 6c 65 2d 73 65 74 21 20 28 64 62 h-table-set! (db
4380: 6f 61 72 64 3a 64 61 74 61 2d 75 70 64 61 74 65 oard:data-update
4390: 72 73 20 2a 64 61 74 61 2a 29 20 77 69 6e 64 6f rs *data*) windo
43a0: 77 2d 69 64 20 75 70 64 61 74 65 72 29 0a 20 20 w-id updater).
43b0: 20 20 3b 3b 20 0a 20 20 20 20 28 66 6f 72 2d 65 ;; . (for-e
43c0: 61 63 68 0a 20 20 20 20 20 28 6c 61 6d 62 64 61 ach. (lambda
43d0: 20 28 6d 61 74 29 0a 20 20 20 20 20 20 20 3b 3b (mat). ;;
43e0: 20 28 69 75 70 3a 61 74 74 72 69 62 75 74 65 2d (iup:attribute-
43f0: 73 65 74 21 20 6d 61 74 20 22 30 3a 31 22 20 22 set! mat "0:1" "
4400: 56 61 6c 75 65 22 29 0a 20 20 20 20 20 20 20 3b Value"). ;
4410: 3b 20 28 69 75 70 3a 61 74 74 72 69 62 75 74 65 ; (iup:attribute
4420: 2d 73 65 74 21 20 6d 61 74 20 22 30 3a 30 22 20 -set! mat "0:0"
4430: 22 56 61 72 22 29 0a 20 20 20 20 20 20 20 28 69 "Var"). (i
4440: 75 70 3a 61 74 74 72 69 62 75 74 65 2d 73 65 74 up:attribute-set
4450: 21 20 6d 61 74 20 22 48 45 49 47 48 54 30 22 20 ! mat "HEIGHT0"
4460: 30 29 0a 20 20 20 20 20 20 20 28 69 75 70 3a 61 0). (iup:a
4470: 74 74 72 69 62 75 74 65 2d 73 65 74 21 20 6d 61 ttribute-set! ma
4480: 74 20 22 41 4c 49 47 4e 4d 45 4e 54 31 22 20 22 t "ALIGNMENT1" "
4490: 41 4c 45 46 54 22 29 0a 20 20 20 20 20 20 20 3b ALEFT"). ;
44a0: 3b 20 28 69 75 70 3a 61 74 74 72 69 62 75 74 65 ; (iup:attribute
44b0: 2d 73 65 74 21 20 6d 61 74 20 22 46 49 58 54 4f -set! mat "FIXTO
44c0: 54 45 58 54 22 20 22 43 31 22 29 0a 20 20 20 20 TEXT" "C1").
44d0: 20 20 20 28 69 75 70 3a 61 74 74 72 69 62 75 74 (iup:attribut
44e0: 65 2d 73 65 74 21 20 6d 61 74 20 22 52 45 53 49 e-set! mat "RESI
44f0: 5a 45 4d 41 54 52 49 58 22 20 22 59 45 53 22 29 ZEMATRIX" "YES")
4500: 29 0a 20 20 20 20 20 20 20 3b 3b 20 28 69 75 70 ). ;; (iup
4510: 3a 61 74 74 72 69 62 75 74 65 2d 73 65 74 21 20 :attribute-set!
4520: 6d 61 74 20 22 57 49 44 54 48 31 22 20 22 31 32 mat "WIDTH1" "12
4530: 30 22 29 0a 20 20 20 20 20 20 20 3b 3b 20 28 69 0"). ;; (i
4540: 75 70 3a 61 74 74 72 69 62 75 74 65 2d 73 65 74 up:attribute-set
4550: 21 20 6d 61 74 20 22 57 49 44 54 48 30 22 20 22 ! mat "WIDTH0" "
4560: 31 30 30 22 29 29 0a 20 20 20 20 20 28 6c 69 73 100")). (lis
4570: 74 20 72 75 6e 2d 69 6e 66 6f 2d 6d 61 74 72 69 t run-info-matri
4580: 78 20 74 65 73 74 2d 69 6e 66 6f 2d 6d 61 74 72 x test-info-matr
4590: 69 78 20 74 65 73 74 2d 72 75 6e 2d 6d 61 74 72 ix test-run-matr
45a0: 69 78 20 6d 65 74 61 2d 64 61 74 2d 6d 61 74 72 ix meta-dat-matr
45b0: 69 78 29 29 0a 0a 20 20 20 20 3b 3b 20 53 74 65 ix)).. ;; Ste
45c0: 70 73 20 6d 61 74 72 69 78 0a 20 20 20 20 28 69 ps matrix. (i
45d0: 75 70 3a 61 74 74 72 69 62 75 74 65 2d 73 65 74 up:attribute-set
45e0: 21 20 73 74 65 70 73 2d 6d 61 74 72 69 78 20 22 ! steps-matrix "
45f0: 30 3a 31 22 20 22 53 74 65 70 20 4e 61 6d 65 22 0:1" "Step Name"
4600: 29 0a 20 20 20 20 28 69 75 70 3a 61 74 74 72 69 ). (iup:attri
4610: 62 75 74 65 2d 73 65 74 21 20 73 74 65 70 73 2d bute-set! steps-
4620: 6d 61 74 72 69 78 20 22 30 3a 32 22 20 22 53 74 matrix "0:2" "St
4630: 61 72 74 22 29 0a 20 20 20 20 28 69 75 70 3a 61 art"). (iup:a
4640: 74 74 72 69 62 75 74 65 2d 73 65 74 21 20 73 74 ttribute-set! st
4650: 65 70 73 2d 6d 61 74 72 69 78 20 22 57 49 44 54 eps-matrix "WIDT
4660: 48 32 22 20 22 34 30 22 29 0a 20 20 20 20 28 69 H2" "40"). (i
4670: 75 70 3a 61 74 74 72 69 62 75 74 65 2d 73 65 74 up:attribute-set
4680: 21 20 73 74 65 70 73 2d 6d 61 74 72 69 78 20 22 ! steps-matrix "
4690: 30 3a 33 22 20 22 45 6e 64 22 29 0a 20 20 20 20 0:3" "End").
46a0: 28 69 75 70 3a 61 74 74 72 69 62 75 74 65 2d 73 (iup:attribute-s
46b0: 65 74 21 20 73 74 65 70 73 2d 6d 61 74 72 69 78 et! steps-matrix
46c0: 20 22 57 49 44 54 48 33 22 20 22 34 30 22 29 0a "WIDTH3" "40").
46d0: 20 20 20 20 28 69 75 70 3a 61 74 74 72 69 62 75 (iup:attribu
46e0: 74 65 2d 73 65 74 21 20 73 74 65 70 73 2d 6d 61 te-set! steps-ma
46f0: 74 72 69 78 20 22 30 3a 34 22 20 22 53 74 61 74 trix "0:4" "Stat
4700: 75 73 22 29 0a 20 20 20 20 28 69 75 70 3a 61 74 us"). (iup:at
4710: 74 72 69 62 75 74 65 2d 73 65 74 21 20 73 74 65 tribute-set! ste
4720: 70 73 2d 6d 61 74 72 69 78 20 22 57 49 44 54 48 ps-matrix "WIDTH
4730: 34 22 20 22 34 30 22 29 0a 20 20 20 20 28 69 75 4" "40"). (iu
4740: 70 3a 61 74 74 72 69 62 75 74 65 2d 73 65 74 21 p:attribute-set!
4750: 20 73 74 65 70 73 2d 6d 61 74 72 69 78 20 22 30 steps-matrix "0
4760: 3a 35 22 20 22 44 75 72 61 74 69 6f 6e 22 29 0a :5" "Duration").
4770: 20 20 20 20 28 69 75 70 3a 61 74 74 72 69 62 75 (iup:attribu
4780: 74 65 2d 73 65 74 21 20 73 74 65 70 73 2d 6d 61 te-set! steps-ma
4790: 74 72 69 78 20 22 57 49 44 54 48 35 22 20 22 34 trix "WIDTH5" "4
47a0: 30 22 29 0a 20 20 20 20 28 69 75 70 3a 61 74 74 0"). (iup:att
47b0: 72 69 62 75 74 65 2d 73 65 74 21 20 73 74 65 70 ribute-set! step
47c0: 73 2d 6d 61 74 72 69 78 20 22 30 3a 36 22 20 22 s-matrix "0:6" "
47d0: 4c 6f 67 20 46 69 6c 65 22 29 0a 20 20 20 20 28 Log File"). (
47e0: 69 75 70 3a 61 74 74 72 69 62 75 74 65 2d 73 65 iup:attribute-se
47f0: 74 21 20 73 74 65 70 73 2d 6d 61 74 72 69 78 20 t! steps-matrix
4800: 22 41 4c 49 47 4e 4d 45 4e 54 31 22 20 22 41 4c "ALIGNMENT1" "AL
4810: 45 46 54 22 29 0a 20 20 20 20 3b 3b 20 28 69 75 EFT"). ;; (iu
4820: 70 3a 61 74 74 72 69 62 75 74 65 2d 73 65 74 21 p:attribute-set!
4830: 20 73 74 65 70 73 2d 6d 61 74 72 69 78 20 22 46 steps-matrix "F
4840: 49 58 54 4f 54 45 58 54 22 20 22 43 31 22 29 0a IXTOTEXT" "C1").
4850: 20 20 20 20 28 69 75 70 3a 61 74 74 72 69 62 75 (iup:attribu
4860: 74 65 2d 73 65 74 21 20 73 74 65 70 73 2d 6d 61 te-set! steps-ma
4870: 74 72 69 78 20 22 52 45 53 49 5a 45 4d 41 54 52 trix "RESIZEMATR
4880: 49 58 22 20 22 59 45 53 22 29 0a 20 20 20 20 3b IX" "YES"). ;
4890: 3b 20 28 69 75 70 3a 61 74 74 72 69 62 75 74 65 ; (iup:attribute
48a0: 2d 73 65 74 21 20 73 74 65 70 73 2d 6d 61 74 72 -set! steps-matr
48b0: 69 78 20 22 57 49 44 54 48 31 22 20 22 31 32 30 ix "WIDTH1" "120
48c0: 22 29 0a 20 20 20 20 3b 3b 20 28 69 75 70 3a 61 "). ;; (iup:a
48d0: 74 74 72 69 62 75 74 65 2d 73 65 74 21 20 73 74 ttribute-set! st
48e0: 65 70 73 2d 6d 61 74 72 69 78 20 22 57 49 44 54 eps-matrix "WIDT
48f0: 48 30 22 20 22 31 30 30 22 29 0a 0a 20 20 20 20 H0" "100")..
4900: 3b 3b 20 44 61 74 61 20 6d 61 74 72 69 78 0a 20 ;; Data matrix.
4910: 20 20 20 3b 3b 20 0a 20 20 20 20 28 6c 65 74 20 ;; . (let
4920: 28 28 72 6f 77 6e 75 6d 20 31 29 29 0a 20 20 20 ((rownum 1)).
4930: 20 20 20 28 66 6f 72 2d 65 61 63 68 0a 20 20 20 (for-each.
4940: 20 20 20 20 28 6c 61 6d 62 64 61 20 28 78 29 0a (lambda (x).
4950: 09 20 28 69 75 70 3a 61 74 74 72 69 62 75 74 65 . (iup:attribute
4960: 2d 73 65 74 21 20 64 61 74 61 2d 6d 61 74 72 69 -set! data-matri
4970: 78 20 28 63 6f 6e 63 20 22 30 3a 22 20 72 6f 77 x (conc "0:" row
4980: 6e 75 6d 29 20 78 29 0a 09 20 28 69 75 70 3a 61 num) x).. (iup:a
4990: 74 74 72 69 62 75 74 65 2d 73 65 74 21 20 64 61 ttribute-set! da
49a0: 74 61 2d 6d 61 74 72 69 78 20 28 63 6f 6e 63 20 ta-matrix (conc
49b0: 22 57 49 44 54 48 22 20 72 6f 77 6e 75 6d 29 20 "WIDTH" rownum)
49c0: 22 35 30 22 29 0a 09 20 28 73 65 74 21 20 72 6f "50").. (set! ro
49d0: 77 6e 75 6d 20 28 2b 20 72 6f 77 6e 75 6d 20 31 wnum (+ rownum 1
49e0: 29 29 29 0a 20 20 20 20 20 20 20 28 6c 69 73 74 ))). (list
49f0: 20 22 43 61 74 65 67 6f 72 79 22 20 22 56 61 72 "Category" "Var
4a00: 69 61 62 6c 65 22 20 22 56 61 6c 75 65 22 20 22 iable" "Value" "
4a10: 45 78 70 65 63 74 65 64 22 20 22 54 6f 6c 65 72 Expected" "Toler
4a20: 61 6e 63 65 22 20 20 22 53 74 61 74 75 73 22 20 ance" "Status"
4a30: 22 55 6e 69 74 73 22 20 22 54 79 70 65 22 20 22 "Units" "Type" "
4a40: 43 6f 6d 6d 65 6e 74 22 29 29 29 0a 20 20 20 20 Comment"))).
4a50: 28 69 75 70 3a 61 74 74 72 69 62 75 74 65 2d 73 (iup:attribute-s
4a60: 65 74 21 20 64 61 74 61 2d 6d 61 74 72 69 78 20 et! data-matrix
4a70: 22 52 45 44 52 41 57 22 20 22 41 4c 4c 22 29 0a "REDRAW" "ALL").
4a80: 20 20 20 20 0a 20 20 20 20 28 66 6f 72 2d 65 61 . (for-ea
4a90: 63 68 20 0a 20 20 20 20 20 28 6c 61 6d 62 64 61 ch . (lambda
4aa0: 20 28 64 61 74 61 29 0a 20 20 20 20 20 20 20 28 (data). (
4ab0: 6c 65 74 20 28 28 6d 61 74 20 20 20 20 28 63 61 let ((mat (ca
4ac0: 72 20 64 61 74 61 29 29 0a 09 20 20 20 20 20 28 r data)).. (
4ad0: 6b 65 79 73 20 20 20 28 63 61 64 72 20 64 61 74 keys (cadr dat
4ae0: 61 29 29 0a 09 20 20 20 20 20 28 72 6f 77 6e 75 a)).. (rownu
4af0: 6d 20 31 29 29 0a 09 20 28 66 6f 72 2d 65 61 63 m 1)).. (for-eac
4b00: 68 0a 09 20 20 28 6c 61 6d 62 64 61 20 28 6b 65 h.. (lambda (ke
4b10: 79 29 0a 09 20 20 20 20 28 69 75 70 3a 61 74 74 y).. (iup:att
4b20: 72 69 62 75 74 65 2d 73 65 74 21 20 6d 61 74 20 ribute-set! mat
4b30: 28 63 6f 6e 63 20 72 6f 77 6e 75 6d 20 22 3a 30 (conc rownum ":0
4b40: 22 29 20 6b 65 79 29 0a 09 20 20 20 20 28 73 65 ") key).. (se
4b50: 74 21 20 72 6f 77 6e 75 6d 20 28 2b 20 72 6f 77 t! rownum (+ row
4b60: 6e 75 6d 20 31 29 29 29 0a 09 20 20 6b 65 79 73 num 1))).. keys
4b70: 29 0a 09 20 28 69 75 70 3a 61 74 74 72 69 62 75 ).. (iup:attribu
4b80: 74 65 2d 73 65 74 21 20 6d 61 74 20 22 52 45 44 te-set! mat "RED
4b90: 52 41 57 22 20 22 41 4c 4c 22 29 29 29 0a 20 20 RAW" "ALL"))).
4ba0: 20 20 20 28 6c 69 73 74 0a 20 20 20 20 20 20 28 (list. (
4bb0: 6c 69 73 74 20 72 75 6e 2d 69 6e 66 6f 2d 6d 61 list run-info-ma
4bc0: 74 72 69 78 20 20 27 28 22 52 75 6e 20 49 64 22 trix '("Run Id"
4bd0: 20 20 22 54 61 72 67 65 74 22 20 20 20 22 52 75 "Target" "Ru
4be0: 6e 6e 61 6d 65 22 20 22 52 75 6e 20 53 74 61 72 nname" "Run Star
4bf0: 74 20 54 69 6d 65 22 20 29 29 0a 20 20 20 20 20 t Time" )).
4c00: 20 28 6c 69 73 74 20 74 65 73 74 2d 69 6e 66 6f (list test-info
4c10: 2d 6d 61 74 72 69 78 20 27 28 22 54 65 73 74 20 -matrix '("Test
4c20: 49 64 22 20 22 54 65 73 74 6e 61 6d 65 22 20 22 Id" "Testname" "
4c30: 49 74 65 6d 70 61 74 68 22 20 22 53 74 61 74 65 Itempath" "State
4c40: 22 20 20 20 22 53 74 61 74 75 73 22 20 22 54 65 " "Status" "Te
4c50: 73 74 20 53 74 61 72 74 20 54 69 6d 65 22 20 22 st Start Time" "
4c60: 43 6f 6d 6d 65 6e 74 22 29 29 0a 20 20 20 20 20 Comment")).
4c70: 20 28 6c 69 73 74 20 74 65 73 74 2d 72 75 6e 2d (list test-run-
4c80: 6d 61 74 72 69 78 20 20 27 28 22 48 6f 73 74 6e matrix '("Hostn
4c90: 61 6d 65 22 20 22 48 6f 73 74 20 69 6e 66 6f 22 ame" "Host info"
4ca0: 20 22 44 69 73 6b 20 46 72 65 65 22 20 22 43 50 "Disk Free" "CP
4cb0: 55 20 4c 6f 61 64 22 20 22 52 75 6e 20 44 75 72 U Load" "Run Dur
4cc0: 61 74 69 6f 6e 22 29 29 0a 20 20 20 20 20 20 28 ation")). (
4cd0: 6c 69 73 74 20 6d 65 74 61 2d 64 61 74 2d 6d 61 list meta-dat-ma
4ce0: 74 72 69 78 20 20 27 28 22 41 75 74 68 6f 72 22 trix '("Author"
4cf0: 20 20 20 22 4f 77 6e 65 72 22 20 20 20 20 20 22 "Owner" "
4d00: 4c 61 73 74 20 52 65 76 69 65 77 65 64 22 20 22 Last Reviewed" "
4d10: 54 61 67 73 22 20 22 44 65 73 63 72 69 70 74 69 Tags" "Descripti
4d20: 6f 6e 22 29 29 29 29 0a 09 20 20 20 20 0a 20 20 on")))).. .
4d30: 20 20 28 69 75 70 3a 73 70 6c 69 74 0a 20 20 20 (iup:split.
4d40: 20 20 20 23 3a 6f 72 69 65 6e 74 61 74 69 6f 6e #:orientation
4d50: 20 22 48 4f 52 49 5a 4f 4e 54 41 4c 22 0a 20 20 "HORIZONTAL".
4d60: 20 20 20 20 28 69 75 70 3a 76 62 6f 78 0a 20 20 (iup:vbox.
4d70: 20 20 20 20 20 28 69 75 70 3a 68 62 6f 78 0a 09 (iup:hbox..
4d80: 28 69 75 70 3a 76 62 6f 78 0a 09 20 72 75 6e 2d (iup:vbox.. run-
4d90: 69 6e 66 6f 2d 6d 61 74 72 69 78 0a 09 20 74 65 info-matrix.. te
4da0: 73 74 2d 69 6e 66 6f 2d 6d 61 74 72 69 78 29 0a st-info-matrix).
4db0: 20 20 20 20 20 20 20 3b 3b 20 74 65 73 74 2d 69 ;; test-i
4dc0: 6e 66 6f 2d 6d 61 74 72 69 78 29 0a 09 28 69 75 nfo-matrix)..(iu
4dd0: 70 3a 76 62 6f 78 0a 09 20 74 65 73 74 2d 72 75 p:vbox.. test-ru
4de0: 6e 2d 6d 61 74 72 69 78 0a 09 20 6d 65 74 61 2d n-matrix.. meta-
4df0: 64 61 74 2d 6d 61 74 72 69 78 29 29 0a 20 20 20 dat-matrix)).
4e00: 20 20 20 20 28 69 75 70 3a 76 62 6f 78 0a 09 28 (iup:vbox..(
4e10: 69 75 70 3a 76 62 6f 78 0a 09 20 28 69 75 70 3a iup:vbox.. (iup:
4e20: 68 62 6f 78 20 0a 09 20 20 28 69 75 70 3a 62 75 hbox .. (iup:bu
4e30: 74 74 6f 6e 20 22 56 69 65 77 20 4c 6f 67 22 20 tton "View Log"
4e40: 20 20 20 23 3a 61 63 74 69 6f 6e 20 76 69 65 77 #:action view
4e50: 6c 6f 67 20 20 20 20 20 20 23 3a 73 69 7a 65 20 log #:size
4e60: 22 36 30 78 22 20 29 20 20 20 3b 3b 20 23 3a 73 "60x" ) ;; #:s
4e70: 69 7a 65 20 22 33 30 78 22 20 0a 09 20 20 28 69 ize "30x" .. (i
4e80: 75 70 3a 62 75 74 74 6f 6e 20 22 53 74 61 72 74 up:button "Start
4e90: 20 58 74 65 72 6d 22 20 23 3a 61 63 74 69 6f 6e Xterm" #:action
4ea0: 20 78 74 65 72 6d 20 20 20 20 20 20 20 20 23 3a xterm #:
4eb0: 73 69 7a 65 20 22 36 30 78 22 20 29 29 09 20 3b size "60x" )). ;
4ec0: 3b 20 23 3a 73 69 7a 65 20 22 33 30 78 22 20 0a ; #:size "30x" .
4ed0: 09 20 28 69 75 70 3a 68 62 6f 78 0a 09 20 20 20 . (iup:hbox..
4ee0: 28 69 75 70 3a 62 75 74 74 6f 6e 20 22 52 75 6e (iup:button "Run
4ef0: 20 54 65 73 74 22 20 20 20 20 23 3a 61 63 74 69 Test" #:acti
4f00: 6f 6e 20 72 75 6e 2d 74 65 73 74 20 20 20 20 23 on run-test #
4f10: 3a 73 69 7a 65 20 22 36 30 78 22 20 29 09 20 3b :size "60x" ). ;
4f20: 3b 20 23 3a 73 69 7a 65 20 22 33 30 78 22 20 0a ; #:size "30x" .
4f30: 09 20 20 20 28 69 75 70 3a 62 75 74 74 6f 6e 20 . (iup:button
4f40: 22 43 6c 65 61 6e 20 54 65 73 74 22 20 20 23 3a "Clean Test" #:
4f50: 61 63 74 69 6f 6e 20 72 65 6d 6f 76 65 2d 74 65 action remove-te
4f60: 73 74 20 23 3a 73 69 7a 65 20 22 36 30 78 22 20 st #:size "60x"
4f70: 29 29 29 09 20 3b 3b 20 23 3a 73 69 7a 65 20 22 ))). ;; #:size "
4f80: 33 30 78 22 20 0a 09 28 69 75 70 3a 68 62 6f 78 30x" ..(iup:hbox
4f90: 0a 09 20 3b 3b 20 68 69 75 70 3a 73 70 6c 69 74 .. ;; hiup:split
4fa0: 20 3b 3b 20 68 62 6f 78 0a 09 20 3b 3b 20 23 3a ;; hbox.. ;; #:
4fb0: 6f 72 69 65 6e 74 61 74 69 6f 6e 20 22 48 4f 52 orientation "HOR
4fc0: 49 5a 4f 4e 54 41 4c 22 0a 09 20 3b 3b 20 23 3a IZONTAL".. ;; #:
4fd0: 76 61 6c 75 65 20 33 30 30 0a 09 20 63 6f 6d 6d value 300.. comm
4fe0: 61 6e 64 2d 74 65 78 74 2d 62 6f 78 0a 09 20 63 and-text-box.. c
4ff0: 6f 6d 6d 61 6e 64 2d 6c 61 75 6e 63 68 2d 62 75 ommand-launch-bu
5000: 74 74 6f 6e 29 29 29 0a 20 20 20 20 20 20 28 69 tton))). (i
5010: 75 70 3a 76 62 6f 78 0a 20 20 20 20 20 20 20 28 up:vbox. (
5020: 6c 65 74 20 28 28 74 61 62 73 20 28 69 75 70 3a let ((tabs (iup:
5030: 74 61 62 73 0a 09 09 20 20 20 20 73 74 65 70 73 tabs... steps
5040: 2d 6d 61 74 72 69 78 0a 09 09 20 20 20 20 64 61 -matrix... da
5050: 74 61 2d 6d 61 74 72 69 78 29 29 29 0a 09 20 28 ta-matrix))).. (
5060: 69 75 70 3a 61 74 74 72 69 62 75 74 65 2d 73 65 iup:attribute-se
5070: 74 21 20 74 61 62 73 20 22 54 41 42 54 49 54 4c t! tabs "TABTITL
5080: 45 30 22 20 22 54 65 73 74 20 53 74 65 70 73 22 E0" "Test Steps"
5090: 29 0a 09 20 28 69 75 70 3a 61 74 74 72 69 62 75 ).. (iup:attribu
50a0: 74 65 2d 73 65 74 21 20 74 61 62 73 20 22 54 41 te-set! tabs "TA
50b0: 42 54 49 54 4c 45 31 22 20 22 54 65 73 74 20 44 BTITLE1" "Test D
50c0: 61 74 61 22 29 0a 09 20 74 61 62 73 29 29 29 29 ata").. tabs))))
50d0: 29 0a 20 20 20 20 20 20 20 0a 3b 3b 20 54 65 73 ). .;; Tes
50e0: 74 20 62 72 6f 77 73 65 72 0a 28 64 65 66 69 6e t browser.(defin
50f0: 65 20 28 74 65 73 74 73 20 77 69 6e 64 6f 77 2d e (tests window-
5100: 69 64 29 0a 20 20 28 69 75 70 3a 73 70 6c 69 74 id). (iup:split
5110: 0a 20 20 20 28 6c 65 74 2a 20 28 28 74 62 20 20 . (let* ((tb
5120: 20 20 20 20 28 69 75 70 3a 74 72 65 65 62 6f 78 (iup:treebox
5130: 0a 09 09 20 20 20 20 23 3a 73 65 6c 65 63 74 69 ... #:selecti
5140: 6f 6e 2d 63 62 0a 09 09 20 20 20 20 28 6c 61 6d on-cb... (lam
5150: 62 64 61 20 28 6f 62 6a 20 69 64 20 73 74 61 74 bda (obj id stat
5160: 65 29 0a 09 09 20 20 20 20 20 20 3b 3b 20 28 70 e)... ;; (p
5170: 72 69 6e 74 20 22 6f 62 6a 3a 20 22 20 6f 62 6a rint "obj: " obj
5180: 20 22 2c 20 69 64 3a 20 22 20 69 64 20 22 2c 20 ", id: " id ",
5190: 73 74 61 74 65 3a 20 22 20 73 74 61 74 65 29 0a state: " state).
51a0: 09 09 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 .. (let* ((
51b0: 72 75 6e 2d 70 61 74 68 20 28 74 72 65 65 3a 6e run-path (tree:n
51c0: 6f 64 65 2d 3e 70 61 74 68 20 6f 62 6a 20 69 64 ode->path obj id
51d0: 29 29 0a 09 09 09 20 20 20 20 20 28 74 65 73 74 )).... (test
51e0: 2d 69 64 20 20 28 74 72 65 65 2d 70 61 74 68 2d -id (tree-path-
51f0: 3e 74 65 73 74 2d 69 64 20 28 63 64 72 20 72 75 >test-id (cdr ru
5200: 6e 2d 70 61 74 68 29 29 29 29 0a 09 09 09 3b 3b n-path))))....;;
5210: 20 28 69 66 20 74 65 73 74 2d 69 64 0a 09 09 09 (if test-id....
5220: 3b 3b 20 20 20 20 20 28 68 61 73 68 2d 74 61 62 ;; (hash-tab
5230: 6c 65 2d 73 65 74 21 20 28 64 62 6f 61 72 64 3a le-set! (dboard:
5240: 64 61 74 61 2d 63 75 72 72 2d 74 65 73 74 2d 69 data-curr-test-i
5250: 64 73 20 2a 64 61 74 61 2a 29 0a 09 09 09 3b 3b ds *data*)....;;
5260: 20 09 09 20 20 20 20 20 77 69 6e 64 6f 77 2d 69 .. window-i
5270: 64 20 74 65 73 74 2d 69 64 29 29 0a 09 09 09 28 d test-id))....(
5280: 70 72 69 6e 74 20 22 70 61 74 68 3a 20 22 20 28 print "path: " (
5290: 74 72 65 65 3a 6e 6f 64 65 2d 3e 70 61 74 68 20 tree:node->path
52a0: 6f 62 6a 20 69 64 29 20 22 20 74 65 73 74 2d 69 obj id) " test-i
52b0: 64 3a 20 22 20 74 65 73 74 2d 69 64 29 29 29 29 d: " test-id))))
52c0: 29 29 0a 20 20 20 20 20 28 69 75 70 3a 61 74 74 )). (iup:att
52d0: 72 69 62 75 74 65 2d 73 65 74 21 20 74 62 20 22 ribute-set! tb "
52e0: 56 41 4c 55 45 22 20 22 30 22 29 0a 20 20 20 20 VALUE" "0").
52f0: 20 28 69 75 70 3a 61 74 74 72 69 62 75 74 65 2d (iup:attribute-
5300: 73 65 74 21 20 74 62 20 22 4e 41 4d 45 22 20 22 set! tb "NAME" "
5310: 52 75 6e 73 22 29 0a 20 20 20 20 20 3b 3b 28 69 Runs"). ;;(i
5320: 75 70 3a 61 74 74 72 69 62 75 74 65 2d 73 65 74 up:attribute-set
5330: 21 20 74 62 20 22 41 44 44 45 58 50 41 4e 44 45 ! tb "ADDEXPANDE
5340: 44 22 20 22 4e 4f 22 29 0a 20 20 20 20 20 3b 3b D" "NO"). ;;
5350: 20 28 64 62 6f 61 72 64 3a 64 61 74 61 2d 74 65 (dboard:data-te
5360: 73 74 73 2d 74 72 65 65 2d 73 65 74 21 20 2a 64 sts-tree-set! *d
5370: 61 74 61 2a 20 74 62 29 0a 20 20 20 20 20 74 62 ata* tb). tb
5380: 29 0a 20 20 20 28 74 65 73 74 2d 70 61 6e 65 6c ). (test-panel
5390: 20 77 69 6e 64 6f 77 2d 69 64 29 29 29 0a 0a 3b window-id)))..;
53a0: 3b 20 54 68 65 20 66 75 6e 63 74 69 6f 6e 20 74 ; The function t
53b0: 6f 20 75 70 64 61 74 65 20 74 68 65 20 66 69 65 o update the fie
53c0: 6c 64 73 20 69 6e 20 74 68 65 20 74 65 73 74 20 lds in the test
53d0: 76 69 65 77 20 70 61 6e 65 6c 0a 28 64 65 66 69 view panel.(defi
53e0: 6e 65 20 28 74 65 73 74 2d 75 70 64 61 74 65 20 ne (test-update
53f0: 77 69 6e 64 6f 77 2d 69 64 20 74 65 73 74 64 61 window-id testda
5400: 74 20 72 75 6e 2d 69 6e 66 6f 2d 6d 61 74 72 69 t run-info-matri
5410: 78 20 74 65 73 74 2d 69 6e 66 6f 2d 6d 61 74 72 x test-info-matr
5420: 69 78 20 74 65 73 74 2d 72 75 6e 2d 6d 61 74 72 ix test-run-matr
5430: 69 78 20 6d 65 74 61 2d 64 61 74 2d 6d 61 74 72 ix meta-dat-matr
5440: 69 78 20 73 74 65 70 73 2d 6d 61 74 72 69 78 20 ix steps-matrix
5450: 64 61 74 61 2d 6d 61 74 72 69 78 29 0a 20 20 3b data-matrix). ;
5460: 3b 20 67 65 74 20 74 65 73 74 2d 69 64 0a 20 20 ; get test-id.
5470: 3b 3b 20 74 68 65 6e 20 67 65 74 20 74 65 73 74 ;; then get test
5480: 20 72 65 63 6f 72 64 0a 20 20 28 69 66 20 74 65 record. (if te
5490: 73 74 64 61 74 0a 20 20 20 20 20 20 28 6c 65 74 stdat. (let
54a0: 2a 20 28 28 74 65 73 74 2d 69 64 20 20 20 20 20 * ((test-id
54b0: 20 30 29 20 3b 3b 20 28 68 61 73 68 2d 74 61 62 0) ;; (hash-tab
54c0: 6c 65 2d 72 65 66 2f 64 65 66 61 75 6c 74 20 28 le-ref/default (
54d0: 64 62 6f 61 72 64 3a 64 61 74 61 2d 63 75 72 72 dboard:data-curr
54e0: 2d 74 65 73 74 2d 69 64 73 20 2a 64 61 74 61 2a -test-ids *data*
54f0: 29 20 77 69 6e 64 6f 77 2d 69 64 20 23 66 29 29 ) window-id #f))
5500: 0a 09 20 20 20 20 20 28 74 65 73 74 2d 64 61 74 .. (test-dat
5510: 61 20 20 20 20 28 68 61 73 68 2d 74 61 62 6c 65 a (hash-table
5520: 2d 72 65 66 2f 64 65 66 61 75 6c 74 20 74 65 73 -ref/default tes
5530: 74 64 61 74 20 74 65 73 74 2d 69 64 20 23 66 29 tdat test-id #f)
5540: 29 0a 09 20 20 20 20 20 28 72 75 6e 2d 69 64 20 ).. (run-id
5550: 20 20 20 20 20 20 28 64 62 3a 74 65 73 74 2d 67 (db:test-g
5560: 65 74 2d 72 75 6e 5f 69 64 20 74 65 73 74 2d 64 et-run_id test-d
5570: 61 74 61 29 29 0a 09 20 20 20 20 20 28 74 61 72 ata)).. (tar
5580: 67 2f 72 75 6e 6e 61 6d 65 20 28 68 61 73 68 2d g/runname (hash-
5590: 74 61 62 6c 65 2d 72 65 66 2f 64 65 66 61 75 6c table-ref/defaul
55a0: 74 20 28 64 62 6f 61 72 64 3a 64 61 74 61 2d 72 t (dboard:data-r
55b0: 75 6e 2d 6b 65 79 73 20 2a 64 61 74 61 2a 29 20 un-keys *data*)
55c0: 0a 09 09 09 09 09 09 20 20 20 72 75 6e 2d 69 64 ....... run-id
55d0: 0a 09 09 09 09 09 09 20 20 20 27 28 29 29 29 0a ....... '())).
55e0: 09 20 20 20 20 20 28 74 61 72 67 65 74 20 20 20 . (target
55f0: 20 20 20 20 28 69 66 20 28 6e 75 6c 6c 3f 20 74 (if (null? t
5600: 61 72 67 2f 72 75 6e 6e 61 6d 65 29 20 22 22 20 arg/runname) ""
5610: 28 73 74 72 69 6e 67 2d 69 6e 74 65 72 73 70 65 (string-interspe
5620: 72 73 65 20 28 72 65 76 65 72 73 65 20 28 63 64 rse (reverse (cd
5630: 72 20 28 72 65 76 65 72 73 65 20 74 61 72 67 2f r (reverse targ/
5640: 72 75 6e 6e 61 6d 65 29 29 29 20 22 2f 22 29 29 runname))) "/"))
5650: 29 0a 09 20 20 20 20 20 28 72 75 6e 6e 61 6d 65 ).. (runname
5660: 20 20 20 20 20 20 28 69 66 20 28 6e 75 6c 6c 3f (if (null?
5670: 20 74 61 72 67 2f 72 75 6e 6e 61 6d 65 29 20 22 targ/runname) "
5680: 22 20 28 63 61 72 20 28 63 64 72 20 74 61 72 67 " (car (cdr targ
5690: 2f 72 75 6e 6e 61 6d 65 29 29 29 29 0a 09 20 20 /runname))))..
56a0: 20 20 20 28 73 74 65 70 73 2d 64 61 74 20 20 20 (steps-dat
56b0: 20 28 74 65 73 74 73 3a 67 65 74 2d 63 6f 6d 70 (tests:get-comp
56c0: 72 65 73 73 65 64 2d 73 74 65 70 73 20 2a 64 62 ressed-steps *db
56d0: 73 74 72 75 63 74 2d 6c 6f 63 61 6c 2a 20 72 75 struct-local* ru
56e0: 6e 2d 69 64 20 74 65 73 74 2d 69 64 29 29 29 0a n-id test-id))).
56f0: 09 09 09 09 0a 09 28 69 66 20 74 65 73 74 2d 64 ......(if test-d
5700: 61 74 61 0a 09 20 20 20 20 28 62 65 67 69 6e 0a ata.. (begin.
5710: 09 20 20 20 20 20 20 3b 3b 20 0a 09 20 20 20 20 . ;; ..
5720: 20 20 28 66 6f 72 2d 65 61 63 68 20 0a 09 20 20 (for-each ..
5730: 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 64 61 (lambda (da
5740: 74 61 29 0a 09 09 20 28 6c 65 74 20 28 28 6d 61 ta)... (let ((ma
5750: 74 20 20 20 20 28 63 61 72 20 64 61 74 61 29 29 t (car data))
5760: 0a 09 09 20 20 20 20 20 20 20 28 76 61 6c 73 20 ... (vals
5770: 20 20 28 63 61 64 72 20 64 61 74 61 29 29 0a 09 (cadr data))..
5780: 09 20 20 20 20 20 20 20 28 72 6f 77 6e 75 6d 20 . (rownum
5790: 31 29 29 0a 09 09 20 20 20 28 66 6f 72 2d 65 61 1))... (for-ea
57a0: 63 68 20 0a 09 09 20 20 20 20 28 6c 61 6d 62 64 ch ... (lambd
57b0: 61 20 28 6b 65 79 29 0a 09 09 20 20 20 20 20 20 a (key)...
57c0: 28 6c 65 74 20 28 28 63 65 6c 6c 20 20 20 28 63 (let ((cell (c
57d0: 6f 6e 63 20 72 6f 77 6e 75 6d 20 22 3a 31 22 29 onc rownum ":1")
57e0: 29 29 0a 09 09 09 28 69 66 20 28 6e 6f 74 20 28 ))....(if (not (
57f0: 65 71 75 61 6c 3f 20 28 69 75 70 3a 61 74 74 72 equal? (iup:attr
5800: 69 62 75 74 65 20 6d 61 74 20 63 65 6c 6c 29 28 ibute mat cell)(
5810: 63 6f 6e 63 20 6b 65 79 29 29 29 0a 09 09 09 20 conc key)))....
5820: 20 20 20 28 62 65 67 69 6e 0a 09 09 09 20 20 20 (begin....
5830: 20 20 20 3b 3b 20 28 70 72 69 6e 74 20 22 73 65 ;; (print "se
5840: 74 74 69 6e 67 20 63 65 6c 6c 20 22 20 63 65 6c tting cell " cel
5850: 6c 20 22 20 69 6e 20 6d 61 74 72 69 78 20 22 20 l " in matrix "
5860: 6d 61 74 20 22 20 74 6f 20 76 61 6c 75 65 20 22 mat " to value "
5870: 20 6b 65 79 29 0a 09 09 09 20 20 20 20 20 20 28 key).... (
5880: 69 75 70 3a 61 74 74 72 69 62 75 74 65 2d 73 65 iup:attribute-se
5890: 74 21 20 6d 61 74 20 63 65 6c 6c 20 28 63 6f 6e t! mat cell (con
58a0: 63 20 6b 65 79 29 29 0a 09 09 09 20 20 20 20 20 c key))....
58b0: 20 28 69 75 70 3a 61 74 74 72 69 62 75 74 65 2d (iup:attribute-
58c0: 73 65 74 21 20 6d 61 74 20 22 52 45 44 52 41 57 set! mat "REDRAW
58d0: 22 20 63 65 6c 6c 29 29 29 0a 09 09 09 28 73 65 " cell)))....(se
58e0: 74 21 20 72 6f 77 6e 75 6d 20 28 2b 20 72 6f 77 t! rownum (+ row
58f0: 6e 75 6d 20 31 29 29 29 29 0a 09 09 20 20 20 20 num 1))))...
5900: 76 61 6c 73 29 29 29 0a 09 20 20 20 20 20 20 20 vals)))..
5910: 28 6c 69 73 74 20 0a 09 09 28 6c 69 73 74 20 72 (list ...(list r
5920: 75 6e 2d 69 6e 66 6f 2d 6d 61 74 72 69 78 0a 09 un-info-matrix..
5930: 09 20 20 20 20 20 20 28 69 66 20 74 65 73 74 2d . (if test-
5940: 69 64 0a 09 09 09 20 20 28 6c 69 73 74 20 28 64 id.... (list (d
5950: 62 3a 74 65 73 74 2d 67 65 74 2d 72 75 6e 5f 69 b:test-get-run_i
5960: 64 20 74 65 73 74 2d 64 61 74 61 29 0a 09 09 09 d test-data)....
5970: 09 74 61 72 67 65 74 0a 09 09 09 09 72 75 6e 6e .target.....runn
5980: 61 6d 65 0a 09 09 09 09 22 6e 2f 61 22 29 0a 09 ame....."n/a")..
5990: 09 09 20 20 28 6d 61 6b 65 2d 6c 69 73 74 20 34 .. (make-list 4
59a0: 20 22 22 29 29 29 0a 09 09 28 6c 69 73 74 20 74 "")))...(list t
59b0: 65 73 74 2d 69 6e 66 6f 2d 6d 61 74 72 69 78 0a est-info-matrix.
59c0: 09 09 20 20 20 20 20 20 28 69 66 20 74 65 73 74 .. (if test
59d0: 2d 69 64 0a 09 09 09 20 20 28 6c 69 73 74 20 74 -id.... (list t
59e0: 65 73 74 2d 69 64 0a 09 09 09 09 28 64 62 3a 74 est-id.....(db:t
59f0: 65 73 74 2d 67 65 74 2d 74 65 73 74 6e 61 6d 65 est-get-testname
5a00: 20 74 65 73 74 2d 64 61 74 61 29 0a 09 09 09 09 test-data).....
5a10: 28 64 62 3a 74 65 73 74 2d 67 65 74 2d 69 74 65 (db:test-get-ite
5a20: 6d 2d 70 61 74 68 20 74 65 73 74 2d 64 61 74 61 m-path test-data
5a30: 29 0a 09 09 09 09 28 64 62 3a 74 65 73 74 2d 67 ).....(db:test-g
5a40: 65 74 2d 73 74 61 74 65 20 20 20 20 74 65 73 74 et-state test
5a50: 2d 64 61 74 61 29 0a 09 09 09 09 28 64 62 3a 74 -data).....(db:t
5a60: 65 73 74 2d 67 65 74 2d 73 74 61 74 75 73 20 20 est-get-status
5a70: 20 74 65 73 74 2d 64 61 74 61 29 0a 09 09 09 09 test-data).....
5a80: 28 73 65 63 6f 6e 64 73 2d 3e 73 74 72 69 6e 67 (seconds->string
5a90: 20 28 64 62 3a 74 65 73 74 2d 67 65 74 2d 65 76 (db:test-get-ev
5aa0: 65 6e 74 5f 74 69 6d 65 20 74 65 73 74 2d 64 61 ent_time test-da
5ab0: 74 61 29 29 0a 09 09 09 09 28 64 62 3a 74 65 73 ta)).....(db:tes
5ac0: 74 2d 67 65 74 2d 63 6f 6d 6d 65 6e 74 20 20 74 t-get-comment t
5ad0: 65 73 74 2d 64 61 74 61 29 29 0a 09 09 09 20 20 est-data))....
5ae0: 28 6d 61 6b 65 2d 6c 69 73 74 20 37 20 22 22 29 (make-list 7 "")
5af0: 29 29 0a 09 09 28 6c 69 73 74 20 74 65 73 74 2d ))...(list test-
5b00: 72 75 6e 2d 6d 61 74 72 69 78 0a 09 09 20 20 20 run-matrix...
5b10: 20 20 20 28 69 66 20 74 65 73 74 2d 69 64 0a 09 (if test-id..
5b20: 09 09 20 20 28 6c 69 73 74 20 28 64 62 3a 74 65 .. (list (db:te
5b30: 73 74 2d 67 65 74 2d 68 6f 73 74 20 20 20 20 20 st-get-host
5b40: 74 65 73 74 2d 64 61 74 61 29 0a 09 09 09 09 28 test-data).....(
5b50: 64 62 3a 74 65 73 74 2d 67 65 74 2d 75 6e 61 6d db:test-get-unam
5b60: 65 20 20 20 20 74 65 73 74 2d 64 61 74 61 29 0a e test-data).
5b70: 09 09 09 09 28 64 62 3a 74 65 73 74 2d 67 65 74 ....(db:test-get
5b80: 2d 64 69 73 6b 66 72 65 65 20 74 65 73 74 2d 64 -diskfree test-d
5b90: 61 74 61 29 0a 09 09 09 09 28 64 62 3a 74 65 73 ata).....(db:tes
5ba0: 74 2d 67 65 74 2d 63 70 75 6c 6f 61 64 20 20 74 t-get-cpuload t
5bb0: 65 73 74 2d 64 61 74 61 29 0a 09 09 09 09 28 73 est-data).....(s
5bc0: 65 63 6f 6e 64 73 2d 3e 68 72 2d 6d 69 6e 2d 73 econds->hr-min-s
5bd0: 65 63 20 28 64 62 3a 74 65 73 74 2d 67 65 74 2d ec (db:test-get-
5be0: 72 75 6e 5f 64 75 72 61 74 69 6f 6e 20 74 65 73 run_duration tes
5bf0: 74 2d 64 61 74 61 29 29 29 0a 09 09 09 20 20 28 t-data))).... (
5c00: 6d 61 6b 65 2d 6c 69 73 74 20 35 20 22 22 29 29 make-list 5 ""))
5c10: 29 0a 09 09 29 29 0a 09 20 20 20 20 20 20 28 64 )...)).. (d
5c20: 63 6f 6d 6d 6f 6e 3a 70 6f 70 75 6c 61 74 65 2d common:populate-
5c30: 73 74 65 70 73 20 73 74 65 70 73 2d 64 61 74 20 steps steps-dat
5c40: 73 74 65 70 73 2d 6d 61 74 72 69 78 29 29 29 29 steps-matrix))))
5c50: 29 29 0a 09 09 3b 3b 28 6c 69 73 74 20 6d 65 74 ))...;;(list met
5c60: 61 2d 64 61 74 2d 6d 61 74 72 69 78 0a 09 09 3b a-dat-matrix...;
5c70: 3b 20 20 20 20 20 20 28 69 66 20 74 65 73 74 2d ; (if test-
5c80: 69 64 0a 09 09 3b 3b 09 20 20 28 6c 69 73 74 20 id...;;. (list
5c90: 28 0a 0a 20 20 0a 3b 3b 20 64 62 3a 74 65 73 74 (.. .;; db:test
5ca0: 2d 67 65 74 2d 69 64 20 20 20 20 20 20 20 20 20 -get-id
5cb0: 20 20 0a 3b 3b 20 64 62 3a 74 65 73 74 2d 67 65 .;; db:test-ge
5cc0: 74 2d 72 75 6e 5f 69 64 20 20 20 20 20 20 20 0a t-run_id .
5cd0: 3b 3b 20 64 62 3a 74 65 73 74 2d 67 65 74 2d 74 ;; db:test-get-t
5ce0: 65 73 74 6e 61 6d 65 20 20 20 20 20 0a 3b 3b 20 estname .;;
5cf0: 64 62 3a 74 65 73 74 2d 67 65 74 2d 73 74 61 74 db:test-get-stat
5d00: 65 20 20 20 20 20 20 20 20 0a 3b 3b 20 64 62 3a e .;; db:
5d10: 74 65 73 74 2d 67 65 74 2d 73 74 61 74 75 73 20 test-get-status
5d20: 20 20 20 20 20 20 0a 3b 3b 20 64 62 3a 74 65 73 .;; db:tes
5d30: 74 2d 67 65 74 2d 65 76 65 6e 74 5f 74 69 6d 65 t-get-event_time
5d40: 20 20 20 0a 3b 3b 20 64 62 3a 74 65 73 74 2d 67 .;; db:test-g
5d50: 65 74 2d 68 6f 73 74 20 20 20 20 20 20 20 20 20 et-host
5d60: 0a 3b 3b 20 64 62 3a 74 65 73 74 2d 67 65 74 2d .;; db:test-get-
5d70: 63 70 75 6c 6f 61 64 20 20 20 20 20 20 0a 3b 3b cpuload .;;
5d80: 20 64 62 3a 74 65 73 74 2d 67 65 74 2d 64 69 73 db:test-get-dis
5d90: 6b 66 72 65 65 20 20 20 20 20 0a 3b 3b 20 64 62 kfree .;; db
5da0: 3a 74 65 73 74 2d 67 65 74 2d 75 6e 61 6d 65 20 :test-get-uname
5db0: 20 20 20 20 20 20 20 0a 3b 3b 20 64 62 3a 74 65 .;; db:te
5dc0: 73 74 2d 67 65 74 2d 72 75 6e 64 69 72 20 20 20 st-get-rundir
5dd0: 20 20 20 20 0a 3b 3b 20 64 62 3a 74 65 73 74 2d .;; db:test-
5de0: 67 65 74 2d 69 74 65 6d 2d 70 61 74 68 20 20 20 get-item-path
5df0: 20 0a 3b 3b 20 64 62 3a 74 65 73 74 2d 67 65 74 .;; db:test-get
5e00: 2d 72 75 6e 5f 64 75 72 61 74 69 6f 6e 20 0a 3b -run_duration .;
5e10: 3b 20 64 62 3a 74 65 73 74 2d 67 65 74 2d 66 69 ; db:test-get-fi
5e20: 6e 61 6c 5f 6c 6f 67 66 20 20 20 0a 3b 3b 20 64 nal_logf .;; d
5e30: 62 3a 74 65 73 74 2d 67 65 74 2d 63 6f 6d 6d 65 b:test-get-comme
5e40: 6e 74 20 20 20 20 20 20 0a 3b 3b 20 64 62 3a 74 nt .;; db:t
5e50: 65 73 74 2d 67 65 74 2d 66 75 6c 6c 6e 61 6d 65 est-get-fullname
5e60: 20 20 20 20 20 09 20 20 0a 0a 0a 3b 3b 3d 3d 3d . ...;;===
5e70: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
5e80: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
5e90: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
5ea0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
5eb0: 3d 3d 3d 0a 3b 3b 20 52 20 55 20 4e 20 20 20 43 ===.;; R U N C
5ec0: 20 4f 20 4e 20 54 20 52 20 4f 20 4c 0a 3b 3b 3d O N T R O L.;;=
5ed0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
5ee0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
5ef0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
5f00: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
5f10: 3d 3d 3d 3d 3d 0a 0a 3b 3b 20 4f 76 65 72 61 6c =====..;; Overal
5f20: 6c 20 72 75 6e 73 20 62 72 6f 77 73 65 72 0a 3b l runs browser.;
5f30: 3b 0a 28 64 65 66 69 6e 65 20 28 72 75 6e 73 20 ;.(define (runs
5f40: 77 69 6e 64 6f 77 2d 69 64 29 0a 20 20 28 6c 65 window-id). (le
5f50: 74 2a 20 28 28 72 75 6e 73 2d 6d 61 74 72 69 78 t* ((runs-matrix
5f60: 20 20 20 20 20 28 69 75 70 3a 6d 61 74 72 69 78 (iup:matrix
5f70: 0a 09 09 09 20 20 20 23 3a 65 78 70 61 6e 64 20 .... #:expand
5f80: 22 59 45 53 22 0a 09 09 09 20 20 20 3b 3b 20 23 "YES".... ;; #
5f90: 3a 66 69 74 74 6f 73 69 7a 65 20 22 59 45 53 22 :fittosize "YES"
5fa0: 0a 09 09 09 20 20 20 23 3a 73 63 72 6f 6c 6c 62 .... #:scrollb
5fb0: 61 72 20 22 59 45 53 22 0a 09 09 09 20 20 20 23 ar "YES".... #
5fc0: 3a 6e 75 6d 63 6f 6c 20 31 30 30 0a 09 09 09 20 :numcol 100....
5fd0: 20 20 23 3a 6e 75 6d 6c 69 6e 20 31 30 30 0a 09 #:numlin 100..
5fe0: 09 09 20 20 20 23 3a 6e 75 6d 63 6f 6c 2d 76 69 .. #:numcol-vi
5ff0: 73 69 62 6c 65 20 37 0a 09 09 09 20 20 20 23 3a sible 7.... #:
6000: 6e 75 6d 6c 69 6e 2d 76 69 73 69 62 6c 65 20 37 numlin-visible 7
6010: 0a 09 09 09 20 20 20 23 3a 63 6c 69 63 6b 2d 63 .... #:click-c
6020: 62 20 28 6c 61 6d 62 64 61 20 28 6f 62 6a 20 6c b (lambda (obj l
6030: 69 6e 20 63 6f 6c 20 73 74 61 74 75 73 29 0a 09 in col status)..
6040: 09 09 09 09 28 70 72 69 6e 74 20 22 6f 62 6a 3a ....(print "obj:
6050: 20 22 20 6f 62 6a 20 22 20 6c 69 6e 3a 20 22 20 " obj " lin: "
6060: 6c 69 6e 20 22 20 63 6f 6c 3a 20 22 20 63 6f 6c lin " col: " col
6070: 20 22 20 73 74 61 74 75 73 3a 20 22 20 73 74 61 " status: " sta
6080: 74 75 73 29 29 29 29 29 0a 0a 20 20 20 20 28 69 tus))))).. (i
6090: 75 70 3a 61 74 74 72 69 62 75 74 65 2d 73 65 74 up:attribute-set
60a0: 21 20 72 75 6e 73 2d 6d 61 74 72 69 78 20 22 52 ! runs-matrix "R
60b0: 45 53 49 5a 45 4d 41 54 52 49 58 22 20 22 59 45 ESIZEMATRIX" "YE
60c0: 53 22 29 0a 20 20 20 20 28 69 75 70 3a 61 74 74 S"). (iup:att
60d0: 72 69 62 75 74 65 2d 73 65 74 21 20 72 75 6e 73 ribute-set! runs
60e0: 2d 6d 61 74 72 69 78 20 22 57 49 44 54 48 30 22 -matrix "WIDTH0"
60f0: 20 22 31 30 30 22 29 0a 0a 20 20 20 20 3b 3b 20 "100").. ;;
6100: 28 64 62 6f 61 72 64 3a 64 61 74 61 2d 72 75 6e (dboard:data-run
6110: 73 2d 6d 61 74 72 69 78 2d 73 65 74 21 20 2a 64 s-matrix-set! *d
6120: 61 74 61 2a 20 72 75 6e 73 2d 6d 61 74 72 69 78 ata* runs-matrix
6130: 29 0a 20 20 20 20 28 69 75 70 3a 68 62 6f 78 0a ). (iup:hbox.
6140: 20 20 20 20 20 28 69 75 70 3a 66 72 61 6d 65 20 (iup:frame
6150: 0a 20 20 20 20 20 20 23 3a 74 69 74 6c 65 20 22 . #:title "
6160: 52 75 6e 73 20 62 72 6f 77 73 65 72 22 0a 20 20 Runs browser".
6170: 20 20 20 20 28 69 75 70 3a 76 62 6f 78 0a 20 20 (iup:vbox.
6180: 20 20 20 20 20 72 75 6e 73 2d 6d 61 74 72 69 78 runs-matrix
6190: 29 29 29 29 29 0a 0a 3b 3b 20 42 72 6f 77 73 65 )))))..;; Browse
61a0: 20 61 6e 64 20 63 6f 6e 74 72 6f 6c 20 61 20 73 and control a s
61b0: 69 6e 67 6c 65 20 72 75 6e 0a 3b 3b 0a 28 64 65 ingle run.;;.(de
61c0: 66 69 6e 65 20 28 72 75 6e 63 6f 6e 74 72 6f 6c fine (runcontrol
61d0: 20 77 69 6e 64 6f 77 2d 69 64 29 0a 20 20 28 69 window-id). (i
61e0: 75 70 3a 68 62 6f 78 29 29 0a 0a 3b 3b 3d 3d 3d up:hbox))..;;===
61f0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
6200: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
6210: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
6220: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
6230: 3d 3d 3d 0a 3b 3b 20 44 20 41 20 53 20 48 20 42 ===.;; D A S H B
6240: 20 4f 20 41 20 52 20 44 0a 3b 3b 3d 3d 3d 3d 3d O A R D.;;=====
6250: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
6260: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
6270: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
6280: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
6290: 3d 0a 0a 3b 3b 20 4d 61 69 6e 20 50 61 6e 65 6c =..;; Main Panel
62a0: 0a 28 64 65 66 69 6e 65 20 28 6d 61 69 6e 2d 70 .(define (main-p
62b0: 61 6e 65 6c 20 77 69 6e 64 6f 77 2d 69 64 29 0a anel window-id).
62c0: 20 20 28 69 75 70 3a 64 69 61 6c 6f 67 0a 20 20 (iup:dialog.
62d0: 20 23 3a 74 69 74 6c 65 20 22 4d 65 67 61 74 65 #:title "Megate
62e0: 73 74 20 43 6f 6e 74 72 6f 6c 20 50 61 6e 65 6c st Control Panel
62f0: 22 0a 20 20 20 23 3a 6d 65 6e 75 20 28 64 63 6f ". #:menu (dco
6300: 6d 6d 6f 6e 3a 6d 61 69 6e 2d 6d 65 6e 75 29 0a mmon:main-menu).
6310: 20 20 20 23 3a 73 68 72 69 6e 6b 20 22 59 45 53 #:shrink "YES
6320: 22 0a 20 20 20 28 6c 65 74 20 28 28 74 61 62 74 ". (let ((tabt
6330: 6f 70 20 28 69 75 70 3a 74 61 62 73 20 0a 09 09 op (iup:tabs ...
6340: 20 20 28 72 75 6e 73 20 77 69 6e 64 6f 77 2d 69 (runs window-i
6350: 64 29 0a 09 09 20 20 28 74 65 73 74 73 20 77 69 d)... (tests wi
6360: 6e 64 6f 77 2d 69 64 29 0a 09 09 20 20 28 72 75 ndow-id)... (ru
6370: 6e 63 6f 6e 74 72 6f 6c 20 77 69 6e 64 6f 77 2d ncontrol window-
6380: 69 64 29 0a 09 09 20 20 28 6d 74 65 73 74 20 2a id)... (mtest *
6390: 74 6f 70 70 61 74 68 2a 20 77 69 6e 64 6f 77 2d toppath* window-
63a0: 69 64 29 20 0a 09 09 20 20 28 72 63 6f 6e 66 69 id) ... (rconfi
63b0: 67 20 77 69 6e 64 6f 77 2d 69 64 29 0a 09 09 20 g window-id)...
63c0: 20 29 29 29 0a 20 20 20 20 20 28 69 75 70 3a 61 ))). (iup:a
63d0: 74 74 72 69 62 75 74 65 2d 73 65 74 21 20 74 61 ttribute-set! ta
63e0: 62 74 6f 70 20 22 54 41 42 54 49 54 4c 45 30 22 btop "TABTITLE0"
63f0: 20 22 52 75 6e 73 22 29 0a 20 20 20 20 20 28 69 "Runs"). (i
6400: 75 70 3a 61 74 74 72 69 62 75 74 65 2d 73 65 74 up:attribute-set
6410: 21 20 74 61 62 74 6f 70 20 22 54 41 42 54 49 54 ! tabtop "TABTIT
6420: 4c 45 31 22 20 22 54 65 73 74 73 22 29 0a 20 20 LE1" "Tests").
6430: 20 20 20 28 69 75 70 3a 61 74 74 72 69 62 75 74 (iup:attribut
6440: 65 2d 73 65 74 21 20 74 61 62 74 6f 70 20 22 54 e-set! tabtop "T
6450: 41 42 54 49 54 4c 45 32 22 20 22 52 75 6e 20 43 ABTITLE2" "Run C
6460: 6f 6e 74 72 6f 6c 22 29 0a 20 20 20 20 20 28 69 ontrol"). (i
6470: 75 70 3a 61 74 74 72 69 62 75 74 65 2d 73 65 74 up:attribute-set
6480: 21 20 74 61 62 74 6f 70 20 22 54 41 42 54 49 54 ! tabtop "TABTIT
6490: 4c 45 33 22 20 22 6d 65 67 61 74 65 73 74 2e 63 LE3" "megatest.c
64a0: 6f 6e 66 69 67 22 29 20 0a 20 20 20 20 20 28 69 onfig") . (i
64b0: 75 70 3a 61 74 74 72 69 62 75 74 65 2d 73 65 74 up:attribute-set
64c0: 21 20 74 61 62 74 6f 70 20 22 54 41 42 54 49 54 ! tabtop "TABTIT
64d0: 4c 45 34 22 20 22 72 75 6e 63 6f 6e 66 69 67 73 LE4" "runconfigs
64e0: 2e 63 6f 6e 66 69 67 22 29 0a 20 20 20 20 20 74 .config"). t
64f0: 61 62 74 6f 70 29 29 29 0a 0a 28 64 65 66 69 6e abtop)))..(defin
6500: 65 20 2a 63 75 72 72 65 6e 74 2d 77 69 6e 64 6f e *current-windo
6510: 77 2d 69 64 2a 20 30 29 0a 0a 28 64 65 66 69 6e w-id* 0)..(defin
6520: 65 20 28 6e 65 77 64 61 73 68 62 6f 61 72 64 20 e (newdashboard
6530: 64 62 73 74 72 75 63 74 29 0a 20 20 28 6c 65 74 dbstruct). (let
6540: 2a 20 28 28 64 61 74 61 20 20 20 20 20 28 6d 61 * ((data (ma
6550: 6b 65 2d 68 61 73 68 2d 74 61 62 6c 65 29 29 0a ke-hash-table)).
6560: 09 20 28 6b 65 79 73 20 20 20 20 20 27 28 29 29 . (keys '())
6570: 20 3b 3b 20 28 64 62 3a 67 65 74 2d 6b 65 79 73 ;; (db:get-keys
6580: 20 64 62 73 74 72 75 63 74 29 29 0a 09 20 28 72 dbstruct)).. (r
6590: 75 6e 6e 61 6d 65 20 20 22 25 22 29 0a 09 20 28 unname "%").. (
65a0: 74 65 73 74 70 61 74 74 20 22 25 22 29 0a 09 20 testpatt "%")..
65b0: 28 6b 65 79 70 61 74 74 73 20 27 28 29 29 20 3b (keypatts '()) ;
65c0: 3b 20 28 6d 61 70 20 28 6c 61 6d 62 64 61 20 28 ; (map (lambda (
65d0: 6b 29 28 6c 69 73 74 20 6b 20 22 25 22 29 29 20 k)(list k "%"))
65e0: 6b 65 79 73 29 29 0a 20 20 20 20 20 20 20 20 20 keys)).
65f0: 28 73 74 61 74 65 73 20 20 20 27 28 29 29 0a 09 (states '())..
6600: 20 28 73 74 61 74 75 73 65 73 20 27 28 29 29 0a (statuses '()).
6610: 09 20 28 6e 65 78 74 6d 69 6e 74 69 6d 65 20 28 . (nextmintime (
6620: 63 75 72 72 65 6e 74 2d 6d 69 6c 6c 69 73 65 63 current-millisec
6630: 6f 6e 64 73 29 29 0a 09 20 28 6d 79 2d 77 69 6e onds)).. (my-win
6640: 64 6f 77 2d 69 64 20 2a 63 75 72 72 65 6e 74 2d dow-id *current-
6650: 77 69 6e 64 6f 77 2d 69 64 2a 29 29 0a 20 20 20 window-id*)).
6660: 20 28 73 65 74 21 20 2a 63 75 72 72 65 6e 74 2d (set! *current-
6670: 77 69 6e 64 6f 77 2d 69 64 2a 20 28 2b 20 31 20 window-id* (+ 1
6680: 2a 63 75 72 72 65 6e 74 2d 77 69 6e 64 6f 77 2d *current-window-
6690: 69 64 2a 29 29 0a 20 20 20 3b 3b 20 28 64 62 6f id*)). ;; (dbo
66a0: 61 72 64 3a 64 61 74 61 2d 72 75 6e 73 2d 73 65 ard:data-runs-se
66b0: 74 21 20 2a 64 61 74 61 2a 20 64 61 74 61 29 20 t! *data* data)
66c0: 3b 3b 20 6d 61 6b 65 20 74 68 69 73 20 64 61 74 ;; make this dat
66d0: 61 20 61 76 61 69 6c 61 62 6c 65 20 74 6f 20 74 a available to t
66e0: 68 65 20 72 65 73 74 20 6f 66 20 74 68 65 20 61 he rest of the a
66f0: 70 70 6c 69 63 61 74 69 6f 6e 0a 20 20 20 20 28 pplication. (
6700: 69 75 70 3a 73 68 6f 77 20 28 6d 61 69 6e 2d 70 iup:show (main-p
6710: 61 6e 65 6c 20 6d 79 2d 77 69 6e 64 6f 77 2d 69 anel my-window-i
6720: 64 29 29 0a 20 20 20 20 3b 3b 20 59 65 73 2c 20 d)). ;; Yes,
6730: 72 75 6e 6e 69 6e 67 20 69 75 70 3a 73 68 6f 77 running iup:show
6740: 20 77 69 6c 6c 20 70 6f 70 20 75 70 20 61 20 6e will pop up a n
6750: 65 77 20 70 61 6e 65 6c 0a 20 20 20 20 3b 3b 20 ew panel. ;;
6760: 28 69 75 70 3a 73 68 6f 77 20 28 6d 61 69 6e 2d (iup:show (main-
6770: 70 61 6e 65 6c 20 6d 79 2d 77 69 6e 64 6f 77 2d panel my-window-
6780: 69 64 29 29 0a 20 20 20 20 28 69 75 70 3a 63 61 id)). (iup:ca
6790: 6c 6c 62 61 63 6b 2d 73 65 74 21 20 2a 74 69 6d llback-set! *tim
67a0: 2a 0a 09 09 20 20 20 20 20 20 20 22 41 43 54 49 *... "ACTI
67b0: 4f 4e 5f 43 42 22 0a 09 09 20 20 20 20 20 20 20 ON_CB"...
67c0: 28 6c 61 6d 62 64 61 20 28 78 29 0a 09 09 09 20 (lambda (x)....
67d0: 3b 3b 20 57 61 6e 74 20 74 6f 20 64 65 64 69 63 ;; Want to dedic
67e0: 61 74 65 20 6e 6f 20 6d 6f 72 65 20 74 68 61 6e ate no more than
67f0: 20 35 30 25 20 6f 66 20 74 68 65 20 74 69 6d 65 50% of the time
6800: 20 74 6f 20 74 68 69 73 20 73 6f 20 73 6b 69 70 to this so skip
6810: 20 69 66 0a 09 09 09 20 3b 3b 20 32 78 20 64 65 if.... ;; 2x de
6820: 6c 74 61 20 74 69 6d 65 20 68 61 73 20 6e 6f 74 lta time has not
6830: 20 70 61 73 73 65 64 20 73 69 6e 63 65 20 6c 61 passed since la
6840: 73 74 20 71 75 65 72 79 0a 09 09 09 20 28 69 66 st query.... (if
6850: 20 28 3c 20 6e 65 78 74 6d 69 6e 74 69 6d 65 20 (< nextmintime
6860: 28 63 75 72 72 65 6e 74 2d 6d 69 6c 6c 69 73 65 (current-millise
6870: 63 6f 6e 64 73 29 29 0a 09 09 09 20 20 20 20 20 conds))....
6880: 28 6c 65 74 2a 20 28 28 73 74 61 72 74 74 69 6d (let* ((starttim
6890: 65 20 28 63 75 72 72 65 6e 74 2d 6d 69 6c 6c 69 e (current-milli
68a0: 73 65 63 6f 6e 64 73 29 29 0a 09 09 09 09 20 20 seconds)).....
68b0: 20 20 3b 3b 20 28 63 68 61 6e 67 65 73 20 20 20 ;; (changes
68c0: 28 64 63 6f 6d 6d 6f 6e 3a 72 75 6e 2d 75 70 64 (dcommon:run-upd
68d0: 61 74 65 20 6b 65 79 73 20 64 61 74 61 20 72 75 ate keys data ru
68e0: 6e 6e 61 6d 65 20 6b 65 79 70 61 74 74 73 20 74 nname keypatts t
68f0: 65 73 74 70 61 74 74 20 73 74 61 74 65 73 20 73 estpatt states s
6900: 74 61 74 75 73 65 73 20 27 66 75 6c 6c 20 6d 79 tatuses 'full my
6910: 2d 77 69 6e 64 6f 77 2d 69 64 29 29 0a 09 09 09 -window-id))....
6920: 09 20 20 20 20 28 65 6e 64 74 69 6d 65 20 20 20 . (endtime
6930: 28 63 75 72 72 65 6e 74 2d 6d 69 6c 6c 69 73 65 (current-millise
6940: 63 6f 6e 64 73 29 29 29 0a 09 09 09 20 20 20 20 conds)))....
6950: 20 20 20 28 73 65 74 21 20 6e 65 78 74 6d 69 6e (set! nextmin
6960: 74 69 6d 65 20 28 2b 20 65 6e 64 74 69 6d 65 20 time (+ endtime
6970: 28 2a 20 32 20 28 2d 20 65 6e 64 74 69 6d 65 20 (* 2 (- endtime
6980: 73 74 61 72 74 74 69 6d 65 29 29 29 29 0a 09 09 starttime))))...
6990: 09 20 20 20 20 20 20 20 3b 3b 20 28 64 65 62 75 . ;; (debu
69a0: 67 3a 70 72 69 6e 74 20 31 31 20 2a 64 65 66 61 g:print 11 *defa
69b0: 75 6c 74 2d 6c 6f 67 2d 70 6f 72 74 2a 20 22 43 ult-log-port* "C
69c0: 48 41 4e 47 45 28 53 29 3a 20 22 20 28 63 61 72 HANGE(S): " (car
69d0: 20 63 68 61 6e 67 65 73 29 20 22 2e 2e 2e 22 29 changes) "...")
69e0: 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ).
69f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
6a00: 20 29 0a 09 09 09 20 20 20 20 20 28 64 65 62 75 ).... (debu
6a10: 67 3a 70 72 69 6e 74 2d 69 6e 66 6f 20 31 31 20 g:print-info 11
6a20: 2a 64 65 66 61 75 6c 74 2d 6c 6f 67 2d 70 6f 72 *default-log-por
6a30: 74 2a 20 22 53 65 72 76 65 72 20 6f 76 65 72 6c t* "Server overl
6a40: 6f 61 64 65 64 22 29 29 29 29 29 29 0a 0a 3b 3b oaded"))))))..;;
6a50: 20 28 64 62 6f 61 72 64 3a 64 61 74 61 2d 75 70 (dboard:data-up
6a60: 64 61 74 65 72 73 2d 73 65 74 21 20 2a 64 61 74 daters-set! *dat
6a70: 61 2a 20 28 6d 61 6b 65 2d 68 61 73 68 2d 74 61 a* (make-hash-ta
6a80: 62 6c 65 29 29 0a 28 6e 65 77 64 61 73 68 62 6f ble)).(newdashbo
6a90: 61 72 64 20 23 66 29 20 3b 3b 20 2a 64 62 73 74 ard #f) ;; *dbst
6aa0: 72 75 63 74 2d 6c 6f 63 61 6c 2a 29 20 20 20 20 ruct-local*)
6ab0: 0a 28 69 75 70 3a 6d 61 69 6e 2d 6c 6f 6f 70 29 .(iup:main-loop)
6ac0: 0a .