Artifact
cce03f67345c10276bd4d3abbd59bbd93a0296b3:
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 32 2c right 2006-2012,
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 3b 3b 3d 3d 3d =========..;;===
0390: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
03a0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
03b0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
03c0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
03d0: 3d 3d 3d 0a 3b 3b 20 54 65 73 74 20 69 6e 66 6f ===.;; Test info
03e0: 20 70 61 6e 65 6c 0a 3b 3b 3d 3d 3d 3d 3d 3d 3d panel.;;=======
03f0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0400: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0410: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0420: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a ===============.
0430: 0a 28 75 73 65 20 66 6f 72 6d 61 74 20 66 6d 74 .(use format fmt
0440: 29 0a 28 72 65 71 75 69 72 65 2d 6c 69 62 72 61 ).(require-libra
0450: 72 79 20 69 75 70 29 0a 28 69 6d 70 6f 72 74 20 ry iup).(import
0460: 28 70 72 65 66 69 78 20 69 75 70 20 69 75 70 3a (prefix iup iup:
0470: 29 29 0a 0a 28 75 73 65 20 63 61 6e 76 61 73 2d ))..(use canvas-
0480: 64 72 61 77 29 0a 0a 28 75 73 65 20 73 72 66 69 draw)..(use srfi
0490: 2d 31 20 70 6f 73 69 78 20 72 65 67 65 78 20 72 -1 posix regex r
04a0: 65 67 65 78 2d 63 61 73 65 20 73 72 66 69 2d 36 egex-case srfi-6
04b0: 39 29 0a 28 75 73 65 20 28 70 72 65 66 69 78 20 9).(use (prefix
04c0: 73 71 6c 69 74 65 33 20 73 71 6c 69 74 65 33 3a sqlite3 sqlite3:
04d0: 29 29 0a 0a 28 64 65 63 6c 61 72 65 20 28 75 6e ))..(declare (un
04e0: 69 74 20 64 61 73 68 62 6f 61 72 64 2d 74 65 73 it dashboard-tes
04f0: 74 73 29 29 0a 28 64 65 63 6c 61 72 65 20 28 75 ts)).(declare (u
0500: 73 65 73 20 63 6f 6d 6d 6f 6e 29 29 0a 28 64 65 ses common)).(de
0510: 63 6c 61 72 65 20 28 75 73 65 73 20 64 62 29 29 clare (uses db))
0520: 0a 28 64 65 63 6c 61 72 65 20 28 75 73 65 73 20 .(declare (uses
0530: 67 75 74 69 6c 73 29 29 0a 28 64 65 63 6c 61 72 gutils)).(declar
0540: 65 20 28 75 73 65 73 20 72 6d 74 29 29 0a 28 64 e (uses rmt)).(d
0550: 65 63 6c 61 72 65 20 28 75 73 65 73 20 65 7a 73 eclare (uses ezs
0560: 74 65 70 73 29 29 0a 3b 3b 20 28 64 65 63 6c 61 teps)).;; (decla
0570: 72 65 20 28 75 73 65 73 20 73 64 62 29 29 0a 3b re (uses sdb)).;
0580: 3b 20 28 64 65 63 6c 61 72 65 20 28 75 73 65 73 ; (declare (uses
0590: 20 66 69 6c 65 64 62 29 29 0a 28 64 65 63 6c 61 filedb)).(decla
05a0: 72 65 20 28 75 73 65 73 20 73 75 62 72 75 6e 29 re (uses subrun)
05b0: 29 0a 0a 28 69 6e 63 6c 75 64 65 20 22 63 6f 6d )..(include "com
05c0: 6d 6f 6e 5f 72 65 63 6f 72 64 73 2e 73 63 6d 22 mon_records.scm"
05d0: 29 0a 28 69 6e 63 6c 75 64 65 20 22 64 62 5f 72 ).(include "db_r
05e0: 65 63 6f 72 64 73 2e 73 63 6d 22 29 0a 28 69 6e ecords.scm").(in
05f0: 63 6c 75 64 65 20 22 72 75 6e 5f 72 65 63 6f 72 clude "run_recor
0600: 64 73 2e 73 63 6d 22 29 0a 0a 3b 3b 3d 3d 3d 3d ds.scm")..;;====
0610: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0620: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0630: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0640: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0650: 3d 3d 0a 3b 3b 20 43 20 4f 20 4d 20 4d 20 4f 20 ==.;; C O M M O
0660: 4e 0a 3b 3b 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d N.;;============
0670: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0680: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0690: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
06a0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 28 64 65 66 ==========..(def
06b0: 69 6e 65 20 2a 64 61 73 68 62 6f 61 72 64 2d 63 ine *dashboard-c
06c0: 6f 6d 6d 65 6e 74 2d 73 68 61 72 65 2d 73 6c 6f omment-share-slo
06d0: 74 2a 20 23 66 29 0a 0a 28 64 65 66 69 6e 65 20 t* #f)..(define
06e0: 28 64 74 65 73 74 73 3a 67 65 74 2d 70 72 65 2d (dtests:get-pre-
06f0: 63 6f 6d 6d 61 6e 64 20 23 21 6b 65 79 20 28 64 command #!key (d
0700: 65 66 61 75 6c 74 2d 6f 76 65 72 72 69 64 65 20 efault-override
0710: 23 66 29 29 0a 20 20 28 6c 65 74 2a 20 28 28 6f #f)). (let* ((o
0720: 72 69 67 2d 70 72 65 2d 63 6f 6d 6d 61 6e 64 20 rig-pre-command
0730: 22 65 78 70 6f 72 74 20 43 4d 44 3d 27 22 29 0a "export CMD='").
0740: 20 20 20 20 20 20 20 20 20 28 76 69 65 77 73 63 (viewsc
0750: 72 65 65 6e 2d 70 72 65 2d 63 6f 6d 6d 61 6e 64 reen-pre-command
0760: 20 20 22 76 69 65 77 73 63 72 65 65 6e 20 22 29 "viewscreen ")
0770: 0a 20 20 20 20 20 20 20 20 20 28 75 73 65 2d 76 . (use-v
0780: 69 65 77 73 63 72 65 65 6e 20 28 63 6f 6e 66 69 iewscreen (confi
0790: 67 66 3a 6c 6f 6f 6b 75 70 20 2a 63 6f 6e 66 69 gf:lookup *confi
07a0: 67 64 61 74 2a 20 22 64 61 73 68 62 6f 61 72 64 gdat* "dashboard
07b0: 22 20 22 75 73 65 2d 76 69 65 77 73 63 72 65 65 " "use-viewscree
07c0: 6e 22 29 29 0a 20 20 20 20 20 20 20 20 20 28 64 n")). (d
07d0: 65 66 61 75 6c 74 2d 70 72 65 2d 63 6f 6d 6d 61 efault-pre-comma
07e0: 6e 64 20 28 69 66 20 75 73 65 2d 76 69 65 77 73 nd (if use-views
07f0: 63 72 65 65 6e 20 76 69 65 77 73 63 72 65 65 6e creen viewscreen
0800: 2d 70 72 65 2d 63 6f 6d 6d 61 6e 64 20 6f 72 69 -pre-command ori
0810: 67 2d 70 72 65 2d 63 6f 6d 6d 61 6e 64 29 29 0a g-pre-command)).
0820: 20 20 20 20 20 20 20 20 20 28 63 66 67 2d 6f 76 (cfg-ov
0830: 72 64 20 28 63 6f 6e 66 69 67 66 3a 6c 6f 6f 6b rd (configf:look
0840: 75 70 20 2a 63 6f 6e 66 69 67 64 61 74 2a 20 22 up *configdat* "
0850: 64 61 73 68 62 6f 61 72 64 22 20 22 70 72 65 2d dashboard" "pre-
0860: 63 6f 6d 6d 61 6e 64 22 29 29 29 0a 20 20 20 20 command"))).
0870: 28 6f 72 20 63 66 67 2d 6f 76 72 64 20 64 65 66 (or cfg-ovrd def
0880: 61 75 6c 74 2d 6f 76 65 72 72 69 64 65 20 64 65 ault-override de
0890: 66 61 75 6c 74 2d 70 72 65 2d 63 6f 6d 6d 61 6e fault-pre-comman
08a0: 64 29 29 29 20 3b 3b 20 22 78 74 65 72 6d 20 2d d))) ;; "xterm -
08b0: 67 65 6f 6d 65 74 72 79 20 31 38 30 78 32 30 20 geometry 180x20
08c0: 2d 65 20 5c 22 22 29 29 0a 0a 20 20 0a 28 64 65 -e \"")).. .(de
08d0: 66 69 6e 65 20 28 64 74 65 73 74 73 3a 67 65 74 fine (dtests:get
08e0: 2d 70 6f 73 74 2d 63 6f 6d 6d 61 6e 64 20 23 21 -post-command #!
08f0: 6b 65 79 20 28 64 65 66 61 75 6c 74 2d 6f 76 65 key (default-ove
0900: 72 72 69 64 65 20 23 66 29 29 0a 20 20 28 6c 65 rride #f)). (le
0910: 74 2a 20 28 28 6f 72 69 67 2d 70 6f 73 74 2d 63 t* ((orig-post-c
0920: 6f 6d 6d 61 6e 64 20 28 63 6f 6e 63 20 22 27 3b ommand (conc "';
0930: 78 74 65 72 6d 20 2d 67 65 6f 6d 65 74 72 79 20 xterm -geometry
0940: 31 38 30 78 32 30 20 2d 65 20 5c 22 28 65 63 68 180x20 -e \"(ech
0950: 6f 3b 20 65 63 68 6f 20 2d 6e 20 53 54 41 52 54 o; echo -n START
0960: 3a 3b 64 61 74 65 20 2b 77 77 25 55 2e 25 77 2d :;date +ww%U.%w-
0970: 24 48 3a 25 4d 3a 25 53 3b 65 63 68 6f 3b 65 63 $H:%M:%S;echo;ec
0980: 68 6f 20 24 43 4d 44 3b 65 63 68 6f 3b 24 43 4d ho $CMD;echo;$CM
0990: 44 29 7c 26 22 0a 20 20 20 20 20 20 20 20 20 20 D)|&".
09a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
09b0: 20 20 20 20 20 20 20 22 74 65 65 20 2d 61 20 72 "tee -a r
09c0: 75 6e 6c 6f 67 2d 60 64 61 74 65 20 2b 77 77 25 unlog-`date +ww%
09d0: 55 2e 25 77 2d 25 48 3a 25 4d 60 2e 6c 6f 67 3b U.%w-%H:%M`.log;
09e0: 65 63 68 6f 20 50 72 65 73 73 20 61 6e 79 20 6b echo Press any k
09f0: 65 79 20 74 6f 20 63 6f 6e 74 69 6e 75 65 3b 62 ey to continue;b
0a00: 61 73 68 20 2d 63 20 27 72 65 61 64 20 2d 6e 20 ash -c 'read -n
0a10: 31 20 2d 73 27 5c 22 20 26 22 29 29 0a 20 20 20 1 -s'\" &")).
0a20: 20 20 20 20 20 20 28 76 69 65 77 73 63 72 65 65 (viewscree
0a30: 6e 2d 70 6f 73 74 2d 63 6f 6d 6d 61 6e 64 20 20 n-post-command
0a40: 22 22 29 0a 20 20 20 20 20 20 20 20 20 28 75 73 ""). (us
0a50: 65 2d 76 69 65 77 73 63 72 65 65 6e 20 28 63 6f e-viewscreen (co
0a60: 6e 66 69 67 66 3a 6c 6f 6f 6b 75 70 20 2a 63 6f nfigf:lookup *co
0a70: 6e 66 69 67 64 61 74 2a 20 22 64 61 73 68 62 6f nfigdat* "dashbo
0a80: 61 72 64 22 20 22 75 73 65 2d 76 69 65 77 73 63 ard" "use-viewsc
0a90: 72 65 65 6e 22 29 29 0a 20 20 20 20 20 20 20 20 reen")).
0aa0: 20 28 64 65 66 61 75 6c 74 2d 70 6f 73 74 2d 63 (default-post-c
0ab0: 6f 6d 6d 61 6e 64 20 28 69 66 20 75 73 65 2d 76 ommand (if use-v
0ac0: 69 65 77 73 63 72 65 65 6e 20 76 69 65 77 73 63 iewscreen viewsc
0ad0: 72 65 65 6e 2d 70 6f 73 74 2d 63 6f 6d 6d 61 6e reen-post-comman
0ae0: 64 20 6f 72 69 67 2d 70 6f 73 74 2d 63 6f 6d 6d d orig-post-comm
0af0: 61 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 28 and)). (
0b00: 63 66 67 2d 6f 76 72 64 20 28 63 6f 6e 66 69 67 cfg-ovrd (config
0b10: 66 3a 6c 6f 6f 6b 75 70 20 2a 63 6f 6e 66 69 67 f:lookup *config
0b20: 64 61 74 2a 20 22 64 61 73 68 62 6f 61 72 64 22 dat* "dashboard"
0b30: 20 22 70 6f 73 74 2d 63 6f 6d 6d 61 6e 64 22 29 "post-command")
0b40: 29 29 0a 20 20 20 20 28 6f 72 20 63 66 67 2d 6f )). (or cfg-o
0b50: 76 72 64 20 64 65 66 61 75 6c 74 2d 6f 76 65 72 vrd default-over
0b60: 72 69 64 65 20 64 65 66 61 75 6c 74 2d 70 6f 73 ride default-pos
0b70: 74 2d 63 6f 6d 6d 61 6e 64 29 29 29 20 3b 3b 20 t-command))) ;;
0b80: 22 3b 65 63 68 6f 20 50 72 65 73 73 20 61 6e 79 ";echo Press any
0b90: 20 6b 65 79 20 74 6f 20 63 6f 6e 74 69 6e 75 65 key to continue
0ba0: 3b 62 61 73 68 20 2d 63 20 27 72 65 61 64 20 2d ;bash -c 'read -
0bb0: 6e 20 31 20 2d 73 27 5c 22 20 26 22 29 29 29 0a n 1 -s'\" &"))).
0bc0: 0a 0a 28 64 65 66 69 6e 65 20 28 74 65 73 74 2d ..(define (test-
0bd0: 69 6e 66 6f 2d 70 61 6e 65 6c 20 74 65 73 74 64 info-panel testd
0be0: 61 74 20 73 74 6f 72 65 2d 6c 61 62 65 6c 20 77 at store-label w
0bf0: 69 64 67 65 74 73 29 0a 20 20 28 69 75 70 3a 66 idgets). (iup:f
0c00: 72 61 6d 65 20 0a 20 20 20 23 3a 74 69 74 6c 65 rame . #:title
0c10: 20 22 54 65 73 74 20 49 6e 66 6f 22 20 3b 20 23 "Test Info" ; #
0c20: 3a 65 78 70 61 6e 64 20 22 59 45 53 22 0a 20 20 :expand "YES".
0c30: 20 28 69 75 70 3a 68 62 6f 78 20 3b 20 23 3a 65 (iup:hbox ; #:e
0c40: 78 70 61 6e 64 20 22 59 45 53 22 0a 20 20 20 20 xpand "YES".
0c50: 28 61 70 70 6c 79 20 69 75 70 3a 76 62 6f 78 20 (apply iup:vbox
0c60: 3b 20 23 3a 65 78 70 61 6e 64 20 22 59 45 53 22 ; #:expand "YES"
0c70: 0a 09 20 20 20 28 61 70 70 65 6e 64 20 28 6d 61 .. (append (ma
0c80: 70 20 28 6c 61 6d 62 64 61 20 28 76 61 6c 29 0a p (lambda (val).
0c90: 09 09 09 20 20 28 69 75 70 3a 6c 61 62 65 6c 20 ... (iup:label
0ca0: 76 61 6c 20 3b 20 23 3a 65 78 70 61 6e 64 20 22 val ; #:expand "
0cb0: 48 4f 52 49 5a 4f 4e 54 41 4c 22 0a 09 09 09 09 HORIZONTAL".....
0cc0: 20 20 20 20 20 29 29 0a 09 09 09 28 6c 69 73 74 ))....(list
0cd0: 20 22 54 65 73 74 6e 61 6d 65 3a 20 22 0a 09 09 "Testname: "...
0ce0: 09 20 20 20 20 20 20 22 49 74 65 6d 20 70 61 74 . "Item pat
0cf0: 68 3a 20 22 0a 09 09 09 20 20 20 20 20 20 22 43 h: ".... "C
0d00: 75 72 72 65 6e 74 20 73 74 61 74 65 3a 20 22 0a urrent state: ".
0d10: 09 09 09 20 20 20 20 20 20 22 43 75 72 72 65 6e ... "Curren
0d20: 74 20 73 74 61 74 75 73 3a 20 22 0a 09 09 09 20 t status: "....
0d30: 20 20 20 20 20 22 54 65 73 74 20 63 6f 6d 6d 65 "Test comme
0d40: 6e 74 3a 20 22 0a 09 09 09 20 20 20 20 20 20 22 nt: ".... "
0d50: 54 65 73 74 20 69 64 3a 20 22 0a 09 09 09 20 20 Test id: "....
0d60: 20 20 20 20 22 54 65 73 74 20 64 61 74 65 3a 20 "Test date:
0d70: 22 29 29 0a 09 09 20 20 20 28 6c 69 73 74 20 28 "))... (list (
0d80: 69 75 70 3a 6c 61 62 65 6c 20 22 22 20 23 3a 65 iup:label "" #:e
0d90: 78 70 61 6e 64 20 22 56 45 52 54 49 43 41 4c 22 xpand "VERTICAL"
0da0: 29 29 29 29 0a 20 20 20 20 28 61 70 70 6c 79 20 )))). (apply
0db0: 69 75 70 3a 76 62 6f 78 20 20 3b 20 23 3a 65 78 iup:vbox ; #:ex
0dc0: 70 61 6e 64 20 22 59 45 53 22 0a 09 20 20 20 28 pand "YES".. (
0dd0: 6c 69 73 74 20 0a 09 20 20 20 20 28 73 74 6f 72 list .. (stor
0de0: 65 2d 6c 61 62 65 6c 20 22 74 65 73 74 6e 61 6d e-label "testnam
0df0: 65 22 0a 09 09 09 20 28 69 75 70 3a 6c 61 62 65 e".... (iup:labe
0e00: 6c 20 28 64 62 3a 74 65 73 74 2d 67 65 74 2d 74 l (db:test-get-t
0e10: 65 73 74 6e 61 6d 65 20 20 74 65 73 74 64 61 74 estname testdat
0e20: 29 20 23 3a 65 78 70 61 6e 64 20 22 48 4f 52 49 ) #:expand "HORI
0e30: 5a 4f 4e 54 41 4c 22 29 0a 09 09 09 20 28 6c 61 ZONTAL").... (la
0e40: 6d 62 64 61 20 28 74 65 73 74 64 61 74 29 28 64 mbda (testdat)(d
0e50: 62 3a 74 65 73 74 2d 67 65 74 2d 74 65 73 74 6e b:test-get-testn
0e60: 61 6d 65 20 74 65 73 74 64 61 74 29 29 29 0a 09 ame testdat)))..
0e70: 20 20 20 20 28 73 74 6f 72 65 2d 6c 61 62 65 6c (store-label
0e80: 20 22 69 74 65 6d 2d 70 61 74 68 22 0a 09 09 09 "item-path"....
0e90: 20 28 69 75 70 3a 6c 61 62 65 6c 20 28 64 62 3a (iup:label (db:
0ea0: 74 65 73 74 2d 67 65 74 2d 69 74 65 6d 2d 70 61 test-get-item-pa
0eb0: 74 68 20 74 65 73 74 64 61 74 29 20 23 3a 65 78 th testdat) #:ex
0ec0: 70 61 6e 64 20 22 48 4f 52 49 5a 4f 4e 54 41 4c pand "HORIZONTAL
0ed0: 22 29 0a 09 09 09 20 28 6c 61 6d 62 64 61 20 28 ").... (lambda (
0ee0: 74 65 73 74 64 61 74 29 28 64 62 3a 74 65 73 74 testdat)(db:test
0ef0: 2d 67 65 74 2d 69 74 65 6d 2d 70 61 74 68 20 74 -get-item-path t
0f00: 65 73 74 64 61 74 29 29 29 0a 09 20 20 20 20 28 estdat))).. (
0f10: 73 74 6f 72 65 2d 6c 61 62 65 6c 20 22 74 65 73 store-label "tes
0f20: 74 73 74 61 74 65 22 20 0a 09 09 09 20 28 69 75 tstate" .... (iu
0f30: 70 3a 6c 61 62 65 6c 20 28 64 62 3a 74 65 73 74 p:label (db:test
0f40: 2d 67 65 74 2d 73 74 61 74 65 20 74 65 73 74 64 -get-state testd
0f50: 61 74 29 20 23 3a 65 78 70 61 6e 64 20 22 48 4f at) #:expand "HO
0f60: 52 49 5a 4f 4e 54 41 4c 22 29 0a 09 09 09 20 28 RIZONTAL").... (
0f70: 6c 61 6d 62 64 61 20 28 74 65 73 74 64 61 74 29 lambda (testdat)
0f80: 0a 09 09 09 20 20 20 28 64 62 3a 74 65 73 74 2d .... (db:test-
0f90: 67 65 74 2d 73 74 61 74 65 20 74 65 73 74 64 61 get-state testda
0fa0: 74 29 29 29 0a 09 20 20 20 20 28 6c 65 74 20 28 t))).. (let (
0fb0: 28 6c 62 6c 20 20 20 28 69 75 70 3a 6c 61 62 65 (lbl (iup:labe
0fc0: 6c 20 28 64 62 3a 74 65 73 74 2d 67 65 74 2d 73 l (db:test-get-s
0fd0: 74 61 74 75 73 20 74 65 73 74 64 61 74 29 20 23 tatus testdat) #
0fe0: 3a 65 78 70 61 6e 64 20 22 48 4f 52 49 5a 4f 4e :expand "HORIZON
0ff0: 54 41 4c 22 29 29 29 0a 09 20 20 20 20 20 20 28 TAL"))).. (
1000: 68 61 73 68 2d 74 61 62 6c 65 2d 73 65 74 21 20 hash-table-set!
1010: 77 69 64 67 65 74 73 20 22 74 65 73 74 73 74 61 widgets "teststa
1020: 74 75 73 22 0a 09 09 09 20 20 20 20 20 20 20 28 tus".... (
1030: 6c 61 6d 62 64 61 20 28 74 65 73 74 64 61 74 29 lambda (testdat)
1040: 0a 09 09 09 09 20 28 6c 65 74 20 28 28 6e 65 77 ..... (let ((new
1050: 73 74 61 74 75 73 20 28 64 62 3a 74 65 73 74 2d status (db:test-
1060: 67 65 74 2d 73 74 61 74 75 73 20 74 65 73 74 64 get-status testd
1070: 61 74 29 29 0a 09 09 09 09 20 20 20 20 20 20 20 at)).....
1080: 28 6f 6c 64 73 74 61 74 75 73 20 28 69 75 70 3a (oldstatus (iup:
1090: 61 74 74 72 69 62 75 74 65 20 6c 62 6c 20 22 54 attribute lbl "T
10a0: 49 54 4c 45 22 29 29 29 0a 09 09 09 09 20 20 20 ITLE"))).....
10b0: 28 69 66 20 28 6e 6f 74 20 28 65 71 75 61 6c 3f (if (not (equal?
10c0: 20 6f 6c 64 73 74 61 74 75 73 20 6e 65 77 73 74 oldstatus newst
10d0: 61 74 75 73 29 29 0a 09 09 09 09 20 20 20 20 20 atus)).....
10e0: 20 20 28 62 65 67 69 6e 0a 09 09 09 09 09 20 28 (begin...... (
10f0: 69 75 70 3a 61 74 74 72 69 62 75 74 65 2d 73 65 iup:attribute-se
1100: 74 21 20 6c 62 6c 20 22 46 47 43 4f 4c 4f 52 22 t! lbl "FGCOLOR"
1110: 20 28 63 61 72 20 28 67 75 74 69 6c 73 3a 67 65 (car (gutils:ge
1120: 74 2d 63 6f 6c 6f 72 2d 66 6f 72 2d 73 74 61 74 t-color-for-stat
1130: 65 2d 73 74 61 74 75 73 20 28 64 62 3a 74 65 73 e-status (db:tes
1140: 74 2d 67 65 74 2d 73 74 61 74 65 20 74 65 73 74 t-get-state test
1150: 64 61 74 29 0a 09 09 09 09 09 09 09 09 09 09 09 dat)............
1160: 09 09 09 20 20 20 28 64 62 3a 74 65 73 74 2d 67 ... (db:test-g
1170: 65 74 2d 73 74 61 74 75 73 20 74 65 73 74 64 61 et-status testda
1180: 74 29 29 29 29 0a 09 09 09 09 09 20 28 69 75 70 t))))...... (iup
1190: 3a 61 74 74 72 69 62 75 74 65 2d 73 65 74 21 20 :attribute-set!
11a0: 6c 62 6c 20 22 54 49 54 4c 45 22 20 28 64 62 3a lbl "TITLE" (db:
11b0: 74 65 73 74 2d 67 65 74 2d 73 74 61 74 75 73 20 test-get-status
11c0: 74 65 73 74 64 61 74 29 29 29 29 29 29 29 0a 09 testdat)))))))..
11d0: 20 20 20 20 20 20 6c 62 6c 29 0a 09 20 20 20 20 lbl)..
11e0: 28 73 74 6f 72 65 2d 6c 61 62 65 6c 20 22 74 65 (store-label "te
11f0: 73 74 63 6f 6d 6d 65 6e 74 22 0a 09 09 09 20 28 stcomment".... (
1200: 69 75 70 3a 6c 61 62 65 6c 20 22 54 65 73 74 43 iup:label "TestC
1210: 6f 6d 6d 65 6e 74 20 20 20 20 20 20 20 20 20 20 omment
1220: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1230: 20 20 20 22 0a 09 09 09 09 20 20 20 20 23 3a 65 "..... #:e
1240: 78 70 61 6e 64 20 22 48 4f 52 49 5a 4f 4e 54 41 xpand "HORIZONTA
1250: 4c 22 29 0a 09 09 09 20 28 6c 61 6d 62 64 61 20 L").... (lambda
1260: 28 74 65 73 74 64 61 74 29 0a 09 09 09 20 20 20 (testdat)....
1270: 28 6c 65 74 20 28 28 6e 65 77 63 6f 6d 6d 65 6e (let ((newcommen
1280: 74 20 28 64 62 3a 74 65 73 74 2d 67 65 74 2d 63 t (db:test-get-c
1290: 6f 6d 6d 65 6e 74 20 74 65 73 74 64 61 74 29 29 omment testdat))
12a0: 29 0a 09 09 09 20 20 20 20 20 28 69 66 20 2a 64 ).... (if *d
12b0: 61 73 68 62 6f 61 72 64 2d 63 6f 6d 6d 65 6e 74 ashboard-comment
12c0: 2d 73 68 61 72 65 2d 73 6c 6f 74 2a 0a 09 09 09 -share-slot*....
12d0: 09 20 28 69 66 20 28 6e 6f 74 20 28 65 71 75 61 . (if (not (equa
12e0: 6c 3f 20 28 69 75 70 3a 61 74 74 72 69 62 75 74 l? (iup:attribut
12f0: 65 20 2a 64 61 73 68 62 6f 61 72 64 2d 63 6f 6d e *dashboard-com
1300: 6d 65 6e 74 2d 73 68 61 72 65 2d 73 6c 6f 74 2a ment-share-slot*
1310: 20 22 56 41 4c 55 45 22 29 0a 09 09 09 09 09 09 "VALUE").......
1320: 20 20 6e 65 77 63 6f 6d 6d 65 6e 74 29 29 0a 09 newcomment))..
1330: 09 09 09 20 20 20 20 20 28 69 75 70 3a 61 74 74 ... (iup:att
1340: 72 69 62 75 74 65 2d 73 65 74 21 20 2a 64 61 73 ribute-set! *das
1350: 68 62 6f 61 72 64 2d 63 6f 6d 6d 65 6e 74 2d 73 hboard-comment-s
1360: 68 61 72 65 2d 73 6c 6f 74 2a 0a 09 09 09 09 09 hare-slot*......
1370: 09 09 20 22 56 41 4c 55 45 22 0a 09 09 09 09 09 .. "VALUE"......
1380: 09 09 20 6e 65 77 63 6f 6d 6d 65 6e 74 29 29 29 .. newcomment)))
1390: 0a 09 09 09 20 20 20 20 20 6e 65 77 63 6f 6d 6d .... newcomm
13a0: 65 6e 74 29 29 29 0a 09 20 20 20 20 28 73 74 6f ent))).. (sto
13b0: 72 65 2d 6c 61 62 65 6c 20 22 74 65 73 74 69 64 re-label "testid
13c0: 22 0a 09 09 09 20 28 69 75 70 3a 6c 61 62 65 6c ".... (iup:label
13d0: 20 22 54 65 73 74 49 64 20 20 20 20 20 20 20 20 "TestId
13e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
13f0: 20 20 20 20 20 22 0a 09 09 09 09 20 20 20 20 23 "..... #
1400: 3a 65 78 70 61 6e 64 20 22 48 4f 52 49 5a 4f 4e :expand "HORIZON
1410: 54 41 4c 22 29 0a 09 09 09 20 28 6c 61 6d 62 64 TAL").... (lambd
1420: 61 20 28 74 65 73 74 64 61 74 29 0a 09 09 09 20 a (testdat)....
1430: 20 20 28 64 62 3a 74 65 73 74 2d 67 65 74 2d 69 (db:test-get-i
1440: 64 20 74 65 73 74 64 61 74 29 29 29 0a 09 20 20 d testdat)))..
1450: 20 20 28 73 74 6f 72 65 2d 6c 61 62 65 6c 20 22 (store-label "
1460: 74 65 73 74 64 61 74 65 22 20 0a 09 09 09 20 28 testdate" .... (
1470: 69 75 70 3a 6c 61 62 65 6c 20 22 54 65 73 74 44 iup:label "TestD
1480: 61 74 65 20 20 20 20 20 20 20 20 20 20 20 20 20 ate
1490: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 0a ".
14a0: 09 09 09 09 20 20 20 20 23 3a 65 78 70 61 6e 64 .... #:expand
14b0: 20 22 48 4f 52 49 5a 4f 4e 54 41 4c 22 29 0a 09 "HORIZONTAL")..
14c0: 09 09 20 28 6c 61 6d 62 64 61 20 28 74 65 73 74 .. (lambda (test
14d0: 64 61 74 29 0a 09 09 09 20 20 20 28 73 65 63 6f dat).... (seco
14e0: 6e 64 73 2d 3e 77 6f 72 6b 2d 77 65 65 6b 2f 64 nds->work-week/d
14f0: 61 79 2d 74 69 6d 65 20 28 64 62 3a 74 65 73 74 ay-time (db:test
1500: 2d 67 65 74 2d 65 76 65 6e 74 5f 74 69 6d 65 20 -get-event_time
1510: 74 65 73 74 64 61 74 29 29 29 29 0a 09 20 20 20 testdat))))..
1520: 20 29 29 29 29 29 0a 0a 3b 3b 3d 3d 3d 3d 3d 3d )))))..;;======
1530: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1540: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1550: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1560: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1570: 0a 3b 3b 20 54 65 73 74 20 6d 65 74 61 20 70 61 .;; Test meta pa
1580: 6e 65 6c 0a 3b 3b 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d nel.;;==========
1590: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
15a0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
15b0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
15c0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 28 64 ============..(d
15d0: 65 66 69 6e 65 20 28 74 65 73 74 2d 6d 65 74 61 efine (test-meta
15e0: 2d 70 61 6e 65 6c 2d 67 65 74 2d 64 65 73 63 72 -panel-get-descr
15f0: 69 70 74 69 6f 6e 20 74 65 73 74 6d 65 74 61 29 iption testmeta)
1600: 0a 20 20 28 66 6d 74 20 23 66 20 28 77 69 74 68 . (fmt #f (with
1610: 2d 77 69 64 74 68 20 34 30 20 28 77 72 61 70 2d -width 40 (wrap-
1620: 6c 69 6e 65 73 20 28 64 62 3a 74 65 73 74 6d 65 lines (db:testme
1630: 74 61 2d 67 65 74 2d 64 65 73 63 72 69 70 74 69 ta-get-descripti
1640: 6f 6e 20 74 65 73 74 6d 65 74 61 29 29 29 29 29 on testmeta)))))
1650: 0a 0a 28 64 65 66 69 6e 65 20 28 74 65 73 74 2d ..(define (test-
1660: 6d 65 74 61 2d 70 61 6e 65 6c 20 74 65 73 74 6d meta-panel testm
1670: 65 74 61 20 73 74 6f 72 65 2d 6d 65 74 61 29 0a eta store-meta).
1680: 20 20 28 69 75 70 3a 66 72 61 6d 65 20 0a 20 20 (iup:frame .
1690: 20 23 3a 74 69 74 6c 65 20 22 54 65 73 74 20 4d #:title "Test M
16a0: 65 74 61 20 44 61 74 61 22 20 3b 20 23 3a 65 78 eta Data" ; #:ex
16b0: 70 61 6e 64 20 22 59 45 53 22 0a 20 20 20 28 69 pand "YES". (i
16c0: 75 70 3a 68 62 6f 78 20 3b 20 23 3a 65 78 70 61 up:hbox ; #:expa
16d0: 6e 64 20 22 59 45 53 22 0a 20 20 20 20 28 61 70 nd "YES". (ap
16e0: 70 6c 79 20 69 75 70 3a 76 62 6f 78 20 3b 20 23 ply iup:vbox ; #
16f0: 3a 65 78 70 61 6e 64 20 22 59 45 53 22 0a 09 20 :expand "YES"..
1700: 20 20 28 61 70 70 65 6e 64 20 28 6d 61 70 20 28 (append (map (
1710: 6c 61 6d 62 64 61 20 28 76 61 6c 29 0a 09 09 09 lambda (val)....
1720: 20 20 28 69 75 70 3a 6c 61 62 65 6c 20 76 61 6c (iup:label val
1730: 20 3b 20 23 3a 65 78 70 61 6e 64 20 22 48 4f 52 ; #:expand "HOR
1740: 49 5a 4f 4e 54 41 4c 22 0a 09 09 09 09 20 20 20 IZONTAL".....
1750: 20 20 29 29 0a 09 09 09 28 6c 69 73 74 20 22 41 ))....(list "A
1760: 75 74 68 6f 72 3a 20 22 0a 09 09 09 20 20 20 20 uthor: "....
1770: 20 20 22 4f 77 6e 65 72 3a 20 22 0a 09 09 09 20 "Owner: "....
1780: 20 20 20 20 20 22 52 65 76 69 65 77 65 64 3a 20 "Reviewed:
1790: 22 0a 09 09 09 20 20 20 20 20 20 22 54 61 67 73 ".... "Tags
17a0: 3a 20 22 0a 09 09 09 20 20 20 20 20 20 22 44 65 : ".... "De
17b0: 73 63 72 69 70 74 69 6f 6e 3a 20 22 29 29 0a 09 scription: "))..
17c0: 09 20 20 20 28 6c 69 73 74 20 28 69 75 70 3a 6c . (list (iup:l
17d0: 61 62 65 6c 20 22 22 20 23 3a 65 78 70 61 6e 64 abel "" #:expand
17e0: 20 22 56 45 52 54 49 43 41 4c 22 29 29 29 29 0a "VERTICAL")))).
17f0: 20 20 20 20 28 61 70 70 6c 79 20 69 75 70 3a 76 (apply iup:v
1800: 62 6f 78 20 20 3b 20 23 3a 65 78 70 61 6e 64 20 box ; #:expand
1810: 22 59 45 53 22 0a 09 20 20 20 28 6c 69 73 74 20 "YES".. (list
1820: 0a 09 20 20 20 20 28 73 74 6f 72 65 2d 6d 65 74 .. (store-met
1830: 61 20 22 61 75 74 68 6f 72 22 0a 09 09 09 20 28 a "author".... (
1840: 69 75 70 3a 6c 61 62 65 6c 20 28 64 62 3a 74 65 iup:label (db:te
1850: 73 74 6d 65 74 61 2d 67 65 74 2d 61 75 74 68 6f stmeta-get-autho
1860: 72 20 74 65 73 74 6d 65 74 61 29 20 23 3a 65 78 r testmeta) #:ex
1870: 70 61 6e 64 20 22 48 4f 52 49 5a 4f 4e 54 41 4c pand "HORIZONTAL
1880: 22 29 0a 09 09 09 20 28 6c 61 6d 62 64 61 20 28 ").... (lambda (
1890: 74 65 73 74 6d 65 74 61 29 28 64 62 3a 74 65 73 testmeta)(db:tes
18a0: 74 6d 65 74 61 2d 67 65 74 2d 61 75 74 68 6f 72 tmeta-get-author
18b0: 20 74 65 73 74 6d 65 74 61 29 29 29 0a 09 20 20 testmeta)))..
18c0: 20 20 28 73 74 6f 72 65 2d 6d 65 74 61 20 22 6f (store-meta "o
18d0: 77 6e 65 72 22 0a 09 09 09 20 28 69 75 70 3a 6c wner".... (iup:l
18e0: 61 62 65 6c 20 28 64 62 3a 74 65 73 74 6d 65 74 abel (db:testmet
18f0: 61 2d 67 65 74 2d 6f 77 6e 65 72 20 74 65 73 74 a-get-owner test
1900: 6d 65 74 61 29 20 23 3a 65 78 70 61 6e 64 20 22 meta) #:expand "
1910: 48 4f 52 49 5a 4f 4e 54 41 4c 22 29 0a 09 09 09 HORIZONTAL")....
1920: 20 28 6c 61 6d 62 64 61 20 28 74 65 73 74 6d 65 (lambda (testme
1930: 74 61 29 28 64 62 3a 74 65 73 74 6d 65 74 61 2d ta)(db:testmeta-
1940: 67 65 74 2d 6f 77 6e 65 72 20 74 65 73 74 6d 65 get-owner testme
1950: 74 61 29 29 29 0a 09 20 20 20 20 28 73 74 6f 72 ta))).. (stor
1960: 65 2d 6d 65 74 61 20 22 72 65 76 69 65 77 65 64 e-meta "reviewed
1970: 22 20 0a 09 09 09 20 28 69 75 70 3a 6c 61 62 65 " .... (iup:labe
1980: 6c 20 28 64 62 3a 74 65 73 74 6d 65 74 61 2d 67 l (db:testmeta-g
1990: 65 74 2d 72 65 76 69 65 77 65 64 20 74 65 73 74 et-reviewed test
19a0: 6d 65 74 61 29 20 23 3a 65 78 70 61 6e 64 20 22 meta) #:expand "
19b0: 48 4f 52 49 5a 4f 4e 54 41 4c 22 29 0a 09 09 09 HORIZONTAL")....
19c0: 20 28 6c 61 6d 62 64 61 20 28 74 65 73 74 6d 65 (lambda (testme
19d0: 74 61 29 28 64 62 3a 74 65 73 74 6d 65 74 61 2d ta)(db:testmeta-
19e0: 67 65 74 2d 72 65 76 69 65 77 65 64 20 74 65 73 get-reviewed tes
19f0: 74 6d 65 74 61 29 29 29 0a 09 20 20 20 20 28 73 tmeta))).. (s
1a00: 74 6f 72 65 2d 6d 65 74 61 20 22 74 61 67 73 22 tore-meta "tags"
1a10: 20 0a 09 09 09 20 28 69 75 70 3a 6c 61 62 65 6c .... (iup:label
1a20: 20 28 64 62 3a 74 65 73 74 6d 65 74 61 2d 67 65 (db:testmeta-ge
1a30: 74 2d 74 61 67 73 20 74 65 73 74 6d 65 74 61 29 t-tags testmeta)
1a40: 20 23 3a 65 78 70 61 6e 64 20 22 48 4f 52 49 5a #:expand "HORIZ
1a50: 4f 4e 54 41 4c 22 29 0a 09 09 09 20 28 6c 61 6d ONTAL").... (lam
1a60: 62 64 61 20 28 74 65 73 74 6d 65 74 61 29 28 64 bda (testmeta)(d
1a70: 62 3a 74 65 73 74 6d 65 74 61 2d 67 65 74 2d 74 b:testmeta-get-t
1a80: 61 67 73 20 74 65 73 74 6d 65 74 61 29 29 29 0a ags testmeta))).
1a90: 09 20 20 20 20 28 73 74 6f 72 65 2d 6d 65 74 61 . (store-meta
1aa0: 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 20 0a "description" .
1ab0: 09 09 09 20 28 69 75 70 3a 6c 61 62 65 6c 20 28 ... (iup:label (
1ac0: 74 65 73 74 2d 6d 65 74 61 2d 70 61 6e 65 6c 2d test-meta-panel-
1ad0: 67 65 74 2d 64 65 73 63 72 69 70 74 69 6f 6e 20 get-description
1ae0: 74 65 73 74 6d 65 74 61 29 20 23 3a 73 69 7a 65 testmeta) #:size
1af0: 20 22 78 35 30 22 29 3b 20 23 3a 65 78 70 61 6e "x50"); #:expan
1b00: 64 20 22 48 4f 52 49 5a 4f 4e 54 41 4c 22 29 0a d "HORIZONTAL").
1b10: 09 09 09 20 28 6c 61 6d 62 64 61 20 28 74 65 73 ... (lambda (tes
1b20: 74 6d 65 74 61 29 0a 09 09 09 20 20 20 28 74 65 tmeta).... (te
1b30: 73 74 2d 6d 65 74 61 2d 70 61 6e 65 6c 2d 67 65 st-meta-panel-ge
1b40: 74 2d 64 65 73 63 72 69 70 74 69 6f 6e 20 74 65 t-description te
1b50: 73 74 6d 65 74 61 29 29 29 0a 09 20 20 20 20 29 stmeta))).. )
1b60: 29 29 29 29 0a 0a 0a 3b 3b 3d 3d 3d 3d 3d 3d 3d ))))...;;=======
1b70: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1b80: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1b90: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1ba0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a ===============.
1bb0: 3b 3b 20 52 75 6e 20 69 6e 66 6f 20 70 61 6e 65 ;; Run info pane
1bc0: 6c 0a 3b 3b 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d l.;;============
1bd0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1be0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1bf0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1c00: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 28 64 65 66 69 ==========.(defi
1c10: 6e 65 20 28 72 75 6e 2d 69 6e 66 6f 2d 70 61 6e ne (run-info-pan
1c20: 65 6c 20 64 62 20 6b 65 79 64 61 74 20 74 65 73 el db keydat tes
1c30: 74 64 61 74 20 72 75 6e 6e 61 6d 65 29 0a 20 20 tdat runname).
1c40: 28 6c 65 74 2a 20 28 28 72 75 6e 2d 69 64 20 20 (let* ((run-id
1c50: 20 20 20 28 64 62 3a 74 65 73 74 2d 67 65 74 2d (db:test-get-
1c60: 72 75 6e 5f 69 64 20 74 65 73 74 64 61 74 29 29 run_id testdat))
1c70: 0a 09 20 28 72 75 6e 64 61 74 20 20 20 20 20 28 .. (rundat (
1c80: 72 6d 74 3a 67 65 74 2d 72 75 6e 2d 69 6e 66 6f rmt:get-run-info
1c90: 20 72 75 6e 2d 69 64 29 29 0a 09 20 28 68 65 61 run-id)).. (hea
1ca0: 64 65 72 20 20 20 20 20 28 64 62 3a 67 65 74 2d der (db:get-
1cb0: 68 65 61 64 65 72 20 72 75 6e 64 61 74 29 29 0a header rundat)).
1cc0: 09 20 28 65 76 65 6e 74 5f 74 69 6d 65 20 28 64 . (event_time (d
1cd0: 62 3a 67 65 74 2d 76 61 6c 75 65 2d 62 79 2d 68 b:get-value-by-h
1ce0: 65 61 64 65 72 20 28 64 62 3a 67 65 74 2d 72 6f eader (db:get-ro
1cf0: 77 73 20 72 75 6e 64 61 74 29 0a 09 09 09 09 09 ws rundat)......
1d00: 20 20 20 20 20 28 64 62 3a 67 65 74 2d 68 65 61 (db:get-hea
1d10: 64 65 72 20 72 75 6e 64 61 74 29 0a 09 09 09 09 der rundat).....
1d20: 09 20 20 20 20 20 22 65 76 65 6e 74 5f 74 69 6d . "event_tim
1d30: 65 22 29 29 29 0a 20 20 20 20 28 69 75 70 3a 66 e"))). (iup:f
1d40: 72 61 6d 65 20 0a 20 20 20 20 20 23 3a 74 69 74 rame . #:tit
1d50: 6c 65 20 22 4d 65 67 61 74 65 73 74 20 52 75 6e le "Megatest Run
1d60: 20 49 6e 66 6f 22 20 3b 20 23 3a 65 78 70 61 6e Info" ; #:expan
1d70: 64 20 22 59 45 53 22 0a 20 20 20 20 20 28 69 75 d "YES". (iu
1d80: 70 3a 68 62 6f 78 20 3b 20 23 3a 65 78 70 61 6e p:hbox ; #:expan
1d90: 64 20 22 59 45 53 22 0a 20 20 20 20 20 20 28 61 d "YES". (a
1da0: 70 70 6c 79 20 69 75 70 3a 76 62 6f 78 20 3b 20 pply iup:vbox ;
1db0: 23 3a 65 78 70 61 6e 64 20 22 59 45 53 22 0a 09 #:expand "YES"..
1dc0: 20 20 20 20 20 28 61 70 70 65 6e 64 20 28 6d 61 (append (ma
1dd0: 70 20 28 6c 61 6d 62 64 61 20 28 6b 65 79 76 61 p (lambda (keyva
1de0: 6c 29 0a 09 09 09 20 20 20 20 28 69 75 70 3a 6c l).... (iup:l
1df0: 61 62 65 6c 20 28 63 6f 6e 63 20 28 63 61 72 20 abel (conc (car
1e00: 6b 65 79 76 61 6c 29 20 22 20 22 29 29 29 0a 09 keyval) " ")))..
1e10: 09 09 20 20 6b 65 79 64 61 74 29 0a 09 09 20 20 .. keydat)...
1e20: 20 20 20 28 6c 69 73 74 20 28 69 75 70 3a 6c 61 (list (iup:la
1e30: 62 65 6c 20 22 72 75 6e 6e 61 6d 65 20 22 29 0a bel "runname ").
1e40: 09 09 09 20 20 20 28 69 75 70 3a 6c 61 62 65 6c ... (iup:label
1e50: 20 22 72 75 6e 2d 69 64 22 29 0a 09 09 09 20 20 "run-id")....
1e60: 20 28 69 75 70 3a 6c 61 62 65 6c 20 22 72 75 6e (iup:label "run
1e70: 2d 64 61 74 65 22 29 29 29 29 0a 20 20 20 20 20 -date")))).
1e80: 20 28 61 70 70 6c 79 20 69 75 70 3a 76 62 6f 78 (apply iup:vbox
1e90: 0a 09 20 20 20 20 20 28 61 70 70 65 6e 64 20 28 .. (append (
1ea0: 6d 61 70 20 28 6c 61 6d 62 64 61 20 28 6b 65 79 map (lambda (key
1eb0: 76 61 6c 29 0a 09 09 09 20 20 20 20 28 69 75 70 val).... (iup
1ec0: 3a 6c 61 62 65 6c 20 28 63 61 64 72 20 6b 65 79 :label (cadr key
1ed0: 76 61 6c 29 20 23 3a 65 78 70 61 6e 64 20 22 48 val) #:expand "H
1ee0: 4f 52 49 5a 4f 4e 54 41 4c 22 29 29 0a 09 09 09 ORIZONTAL"))....
1ef0: 20 20 6b 65 79 64 61 74 29 0a 09 09 20 20 20 20 keydat)...
1f00: 20 28 6c 69 73 74 20 28 69 75 70 3a 6c 61 62 65 (list (iup:labe
1f10: 6c 20 72 75 6e 6e 61 6d 65 29 0a 09 09 09 20 20 l runname)....
1f20: 20 28 69 75 70 3a 6c 61 62 65 6c 20 28 63 6f 6e (iup:label (con
1f30: 63 20 72 75 6e 2d 69 64 29 29 0a 09 09 09 20 20 c run-id))....
1f40: 20 28 69 75 70 3a 6c 61 62 65 6c 20 28 73 65 63 (iup:label (sec
1f50: 6f 6e 64 73 2d 3e 79 65 61 72 2d 77 6f 72 6b 2d onds->year-work-
1f60: 77 65 65 6b 2f 64 61 79 2d 74 69 6d 65 20 65 76 week/day-time ev
1f70: 65 6e 74 5f 74 69 6d 65 29 29 0a 09 09 09 20 20 ent_time))....
1f80: 20 28 69 75 70 3a 6c 61 62 65 6c 20 22 22 20 23 (iup:label "" #
1f90: 3a 65 78 70 61 6e 64 20 22 56 45 52 54 49 43 41 :expand "VERTICA
1fa0: 4c 22 29 29 29 29 29 29 29 29 0a 20 20 0a 3b 3b L")))))))). .;;
1fb0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1fc0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1fd0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1fe0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
1ff0: 3d 3d 3d 3d 3d 3d 0a 3b 3b 20 48 6f 73 74 20 69 ======.;; Host i
2000: 6e 66 6f 20 70 61 6e 65 6c 0a 3b 3b 3d 3d 3d 3d nfo panel.;;====
2010: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
2020: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
2030: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
2040: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
2050: 3d 3d 0a 28 64 65 66 69 6e 65 20 28 68 6f 73 74 ==.(define (host
2060: 2d 69 6e 66 6f 2d 70 61 6e 65 6c 20 74 65 73 74 -info-panel test
2070: 64 61 74 20 73 74 6f 72 65 2d 6c 61 62 65 6c 29 dat store-label)
2080: 0a 20 20 28 69 75 70 3a 66 72 61 6d 65 0a 20 20 . (iup:frame.
2090: 20 23 3a 74 69 74 6c 65 20 22 52 65 6d 6f 74 65 #:title "Remote
20a0: 20 68 6f 73 74 20 61 6e 64 20 54 65 73 74 20 52 host and Test R
20b0: 75 6e 20 49 6e 66 6f 22 20 3b 20 23 3a 65 78 70 un Info" ; #:exp
20c0: 61 6e 64 20 22 59 45 53 22 0a 20 20 20 28 69 75 and "YES". (iu
20d0: 70 3a 68 62 6f 78 20 3b 20 23 3a 65 78 70 61 6e p:hbox ; #:expan
20e0: 64 20 22 59 45 53 22 0a 20 20 20 20 28 61 70 70 d "YES". (app
20f0: 6c 79 20 69 75 70 3a 76 62 6f 78 20 3b 20 23 3a ly iup:vbox ; #:
2100: 65 78 70 61 6e 64 20 22 59 45 53 22 20 3b 3b 20 expand "YES" ;;
2110: 54 68 65 20 68 65 61 64 69 6e 67 20 6c 61 62 65 The heading labe
2120: 6c 73 0a 09 20 20 20 28 61 70 70 65 6e 64 20 28 ls.. (append (
2130: 6d 61 70 20 28 6c 61 6d 62 64 61 20 28 76 61 6c map (lambda (val
2140: 29 0a 09 09 09 20 20 28 69 75 70 3a 6c 61 62 65 ).... (iup:labe
2150: 6c 20 76 61 6c 20 3b 20 23 3a 65 78 70 61 6e 64 l val ; #:expand
2160: 20 22 48 4f 52 49 5a 4f 4e 54 41 4c 22 0a 09 09 "HORIZONTAL"...
2170: 09 09 20 20 20 20 20 29 29 0a 09 09 09 28 6c 69 .. ))....(li
2180: 73 74 20 22 48 6f 73 74 6e 61 6d 65 3a 20 22 0a st "Hostname: ".
2190: 09 09 09 20 20 20 20 20 20 22 44 69 73 6b 20 66 ... "Disk f
21a0: 72 65 65 3a 20 22 0a 09 09 09 20 20 20 20 20 20 ree: "....
21b0: 22 43 50 55 20 4c 6f 61 64 3a 20 22 0a 09 09 09 "CPU Load: "....
21c0: 20 20 20 20 20 20 22 52 75 6e 20 64 75 72 61 74 "Run durat
21d0: 69 6f 6e 3a 20 22 0a 09 09 09 20 20 20 20 20 20 ion: "....
21e0: 22 4c 6f 67 66 69 6c 65 3a 20 22 0a 09 09 09 20 "Logfile: "....
21f0: 20 20 20 20 20 22 54 6f 70 20 70 72 6f 63 65 73 "Top proces
2200: 73 20 69 64 3a 20 22 0a 09 09 09 20 20 20 20 20 s id: "....
2210: 20 22 55 6e 61 6d 65 20 2d 61 3a 20 22 29 29 0a "Uname -a: ")).
2220: 09 09 20 20 20 28 69 75 70 3a 6c 61 62 65 6c 20 .. (iup:label
2230: 22 22 20 23 3a 65 78 70 61 6e 64 20 22 56 45 52 "" #:expand "VER
2240: 54 49 43 41 4c 22 29 29 29 0a 20 20 20 20 28 61 TICAL"))). (a
2250: 70 70 6c 79 20 69 75 70 3a 76 62 6f 78 20 3b 20 pply iup:vbox ;
2260: 23 3a 65 78 70 61 6e 64 20 22 59 45 53 22 0a 09 #:expand "YES"..
2270: 20 20 20 28 6c 69 73 74 0a 09 20 20 20 20 3b 3b (list.. ;;
2280: 20 4e 4f 54 45 3a 20 59 65 73 2c 20 74 68 65 20 NOTE: Yes, the
2290: 68 6f 73 74 20 63 61 6e 20 63 68 61 6e 67 65 21 host can change!
22a0: 0a 09 20 20 20 20 28 73 74 6f 72 65 2d 6c 61 62 .. (store-lab
22b0: 65 6c 20 22 48 6f 73 74 4e 61 6d 65 22 0a 09 09 el "HostName"...
22c0: 09 20 28 69 75 70 3a 6c 61 62 65 6c 20 3b 3b 20 . (iup:label ;;
22d0: 28 73 64 62 3a 71 72 79 20 27 67 65 74 73 74 72 (sdb:qry 'getstr
22e0: 20 0a 09 09 09 20 20 28 64 62 3a 74 65 73 74 2d .... (db:test-
22f0: 67 65 74 2d 68 6f 73 74 20 74 65 73 74 64 61 74 get-host testdat
2300: 29 20 3b 3b 20 29 0a 09 09 09 20 20 23 3a 65 78 ) ;; ).... #:ex
2310: 70 61 6e 64 20 22 48 4f 52 49 5a 4f 4e 54 41 4c pand "HORIZONTAL
2320: 22 29 0a 09 09 09 20 28 6c 61 6d 62 64 61 20 28 ").... (lambda (
2330: 74 65 73 74 64 61 74 29 28 64 62 3a 74 65 73 74 testdat)(db:test
2340: 2d 67 65 74 2d 68 6f 73 74 20 74 65 73 74 64 61 -get-host testda
2350: 74 29 29 29 0a 09 20 20 20 20 28 73 74 6f 72 65 t))).. (store
2360: 2d 6c 61 62 65 6c 20 22 44 69 73 6b 46 72 65 65 -label "DiskFree
2370: 22 0a 09 09 09 20 28 69 75 70 3a 6c 61 62 65 6c ".... (iup:label
2380: 20 28 63 6f 6e 63 20 28 64 62 3a 74 65 73 74 2d (conc (db:test-
2390: 67 65 74 2d 64 69 73 6b 66 72 65 65 20 74 65 73 get-diskfree tes
23a0: 74 64 61 74 29 29 20 23 3a 65 78 70 61 6e 64 20 tdat)) #:expand
23b0: 22 48 4f 52 49 5a 4f 4e 54 41 4c 22 29 0a 09 09 "HORIZONTAL")...
23c0: 09 20 28 6c 61 6d 62 64 61 20 28 74 65 73 74 64 . (lambda (testd
23d0: 61 74 29 28 63 6f 6e 63 20 28 64 62 3a 74 65 73 at)(conc (db:tes
23e0: 74 2d 67 65 74 2d 64 69 73 6b 66 72 65 65 20 74 t-get-diskfree t
23f0: 65 73 74 64 61 74 29 29 29 29 0a 09 20 20 20 20 estdat))))..
2400: 28 73 74 6f 72 65 2d 6c 61 62 65 6c 20 22 43 50 (store-label "CP
2410: 55 4c 6f 61 64 22 0a 09 09 09 20 28 69 75 70 3a ULoad".... (iup:
2420: 6c 61 62 65 6c 20 28 63 6f 6e 63 20 28 64 62 3a label (conc (db:
2430: 74 65 73 74 2d 67 65 74 2d 63 70 75 6c 6f 61 64 test-get-cpuload
2440: 20 74 65 73 74 64 61 74 29 29 20 23 3a 65 78 70 testdat)) #:exp
2450: 61 6e 64 20 22 48 4f 52 49 5a 4f 4e 54 41 4c 22 and "HORIZONTAL"
2460: 29 0a 09 09 09 20 28 6c 61 6d 62 64 61 20 28 74 ).... (lambda (t
2470: 65 73 74 64 61 74 29 28 63 6f 6e 63 20 28 64 62 estdat)(conc (db
2480: 3a 74 65 73 74 2d 67 65 74 2d 63 70 75 6c 6f 61 :test-get-cpuloa
2490: 64 20 74 65 73 74 64 61 74 29 29 29 29 0a 09 20 d testdat))))..
24a0: 20 20 20 28 73 74 6f 72 65 2d 6c 61 62 65 6c 20 (store-label
24b0: 22 52 75 6e 44 75 72 61 74 69 6f 6e 22 0a 09 09 "RunDuration"...
24c0: 09 20 28 69 75 70 3a 6c 61 62 65 6c 20 28 63 6f . (iup:label (co
24d0: 6e 63 20 28 73 65 63 6f 6e 64 73 2d 3e 68 72 2d nc (seconds->hr-
24e0: 6d 69 6e 2d 73 65 63 20 28 64 62 3a 74 65 73 74 min-sec (db:test
24f0: 2d 67 65 74 2d 72 75 6e 5f 64 75 72 61 74 69 6f -get-run_duratio
2500: 6e 20 74 65 73 74 64 61 74 29 29 29 20 23 3a 65 n testdat))) #:e
2510: 78 70 61 6e 64 20 22 48 4f 52 49 5a 4f 4e 54 41 xpand "HORIZONTA
2520: 4c 22 29 0a 09 09 09 20 28 6c 61 6d 62 64 61 20 L").... (lambda
2530: 28 74 65 73 74 64 61 74 29 28 63 6f 6e 63 20 28 (testdat)(conc (
2540: 73 65 63 6f 6e 64 73 2d 3e 68 72 2d 6d 69 6e 2d seconds->hr-min-
2550: 73 65 63 20 28 64 62 3a 74 65 73 74 2d 67 65 74 sec (db:test-get
2560: 2d 72 75 6e 5f 64 75 72 61 74 69 6f 6e 20 74 65 -run_duration te
2570: 73 74 64 61 74 29 29 29 29 29 0a 09 20 20 20 20 stdat)))))..
2580: 28 73 74 6f 72 65 2d 6c 61 62 65 6c 20 22 4c 6f (store-label "Lo
2590: 67 46 69 6c 65 22 0a 09 09 09 20 28 69 75 70 3a gFile".... (iup:
25a0: 6c 61 62 65 6c 20 28 63 6f 6e 63 20 28 64 62 3a label (conc (db:
25b0: 74 65 73 74 2d 67 65 74 2d 66 69 6e 61 6c 5f 6c test-get-final_l
25c0: 6f 67 66 20 74 65 73 74 64 61 74 29 29 20 23 3a ogf testdat)) #:
25d0: 65 78 70 61 6e 64 20 22 48 4f 52 49 5a 4f 4e 54 expand "HORIZONT
25e0: 41 4c 22 29 0a 09 09 09 20 28 6c 61 6d 62 64 61 AL").... (lambda
25f0: 20 28 74 65 73 74 64 61 74 29 28 63 6f 6e 63 20 (testdat)(conc
2600: 28 64 62 3a 74 65 73 74 2d 67 65 74 2d 66 69 6e (db:test-get-fin
2610: 61 6c 5f 6c 6f 67 66 20 74 65 73 74 64 61 74 29 al_logf testdat)
2620: 29 29 29 0a 09 20 20 20 20 28 73 74 6f 72 65 2d ))).. (store-
2630: 6c 61 62 65 6c 20 22 50 72 6f 63 65 73 73 49 64 label "ProcessId
2640: 22 0a 09 09 09 20 28 69 75 70 3a 6c 61 62 65 6c ".... (iup:label
2650: 20 28 63 6f 6e 63 20 28 64 62 3a 74 65 73 74 2d (conc (db:test-
2660: 67 65 74 2d 70 72 6f 63 65 73 73 5f 69 64 20 74 get-process_id t
2670: 65 73 74 64 61 74 29 29 20 23 3a 65 78 70 61 6e estdat)) #:expan
2680: 64 20 22 48 4f 52 49 5a 4f 4e 54 41 4c 22 29 0a d "HORIZONTAL").
2690: 09 09 09 20 28 6c 61 6d 62 64 61 20 28 74 65 73 ... (lambda (tes
26a0: 74 64 61 74 29 28 63 6f 6e 63 20 28 64 62 3a 74 tdat)(conc (db:t
26b0: 65 73 74 2d 67 65 74 2d 70 72 6f 63 65 73 73 5f est-get-process_
26c0: 69 64 20 74 65 73 74 64 61 74 29 29 29 29 0a 09 id testdat))))..
26d0: 20 20 20 20 28 73 74 6f 72 65 2d 6c 61 62 65 6c (store-label
26e0: 20 22 55 6e 61 6d 65 22 0a 09 09 09 20 28 69 75 "Uname".... (iu
26f0: 70 3a 6c 61 62 65 6c 20 22 20 20 20 20 20 20 20 p:label "
2700: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2710: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2720: 20 20 20 20 20 20 20 20 20 20 20 20 22 20 23 3a " #:
2730: 65 78 70 61 6e 64 20 22 48 4f 52 49 5a 4f 4e 54 expand "HORIZONT
2740: 41 4c 22 29 20 3b 3b 20 20 23 3a 77 6f 72 64 77 AL") ;; #:wordw
2750: 72 61 70 20 22 59 45 53 22 29 0a 09 09 09 20 28 rap "YES").... (
2760: 6c 61 6d 62 64 61 20 28 74 65 73 74 64 61 74 29 lambda (testdat)
2770: 20 3b 3b 20 28 73 64 62 3a 71 72 79 20 27 67 65 ;; (sdb:qry 'ge
2780: 74 73 74 72 20 0a 09 09 09 20 20 20 28 64 62 3a tstr .... (db:
2790: 74 65 73 74 2d 67 65 74 2d 75 6e 61 6d 65 20 74 test-get-uname t
27a0: 65 73 74 64 61 74 29 29 29 20 3b 3b 20 29 0a 09 estdat))) ;; )..
27b0: 20 20 20 20 29 29 29 29 29 0a 0a 3b 3b 20 69 66 )))))..;; if
27c0: 20 74 68 65 72 65 20 69 73 20 61 20 73 75 62 6d there is a subm
27d0: 65 67 61 74 65 73 74 20 63 72 65 61 74 65 20 61 egatest create a
27e0: 20 62 75 74 74 6f 6e 20 74 6f 20 6c 61 75 6e 63 button to launc
27f0: 68 20 64 61 73 68 62 6f 61 72 64 20 69 6e 20 74 h dashboard in t
2800: 68 61 74 20 61 72 65 61 0a 3b 3b 0a 28 64 65 66 hat area.;;.(def
2810: 69 6e 65 20 28 73 75 62 6d 65 67 61 74 65 73 74 ine (submegatest
2820: 2d 70 61 6e 65 6c 20 64 62 73 74 72 75 63 74 20 -panel dbstruct
2830: 6b 65 79 64 61 74 20 74 65 73 74 64 61 74 20 72 keydat testdat r
2840: 75 6e 6e 61 6d 65 20 74 65 73 74 63 6f 6e 66 69 unname testconfi
2850: 67 29 0a 20 20 28 6c 65 74 2a 20 28 28 74 65 73 g). (let* ((tes
2860: 74 2d 72 75 6e 2d 64 69 72 20 20 20 20 20 20 28 t-run-dir (
2870: 64 62 3a 74 65 73 74 2d 67 65 74 2d 72 75 6e 64 db:test-get-rund
2880: 69 72 20 74 65 73 74 64 61 74 29 29 0a 09 20 28 ir testdat)).. (
2890: 73 75 62 61 72 65 61 20 20 20 20 20 20 20 20 20 subarea
28a0: 20 20 28 73 75 62 72 75 6e 3a 67 65 74 2d 72 75 (subrun:get-ru
28b0: 6e 61 72 65 61 20 74 65 73 74 2d 72 75 6e 2d 64 narea test-run-d
28c0: 69 72 29 29 0a 09 20 28 61 72 65 61 2d 65 78 69 ir)).. (area-exi
28d0: 73 74 73 20 20 20 20 20 20 20 28 61 6e 64 20 73 sts (and s
28e0: 75 62 61 72 65 61 20 28 63 6f 6d 6d 6f 6e 3a 66 ubarea (common:f
28f0: 69 6c 65 2d 65 78 69 73 74 73 3f 20 73 75 62 61 ile-exists? suba
2900: 72 65 61 20 73 69 6c 65 6e 74 3a 20 23 74 29 29 rea silent: #t))
2910: 29 29 0a 20 20 20 20 28 69 66 20 73 75 62 61 72 )). (if subar
2920: 65 61 0a 09 28 69 75 70 3a 66 72 61 6d 65 20 0a ea..(iup:frame .
2930: 09 20 23 3a 74 69 74 6c 65 20 22 4d 65 67 61 74 . #:title "Megat
2940: 65 73 74 20 52 75 6e 20 49 6e 66 6f 22 20 3b 20 est Run Info" ;
2950: 23 3a 65 78 70 61 6e 64 20 22 59 45 53 22 0a 09 #:expand "YES"..
2960: 20 28 69 75 70 3a 62 75 74 74 6f 6e 0a 09 20 20 (iup:button..
2970: 22 4c 61 75 6e 63 68 20 44 61 73 68 62 6f 61 72 "Launch Dashboar
2980: 64 22 0a 09 20 20 23 3a 61 63 74 69 6f 6e 20 28 d".. #:action (
2990: 6c 61 6d 62 64 61 20 28 6f 62 6a 29 0a 20 20 20 lambda (obj).
29a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
29b0: 20 20 28 73 75 62 72 75 6e 3a 6c 61 75 6e 63 68 (subrun:launch
29c0: 2d 64 61 73 68 62 6f 61 72 64 20 74 65 73 74 2d -dashboard test-
29d0: 72 75 6e 2d 64 69 72 29 29 29 29 0a 09 28 69 75 run-dir))))..(iu
29e0: 70 3a 76 62 6f 78 29 29 29 29 0a 0a 3b 3b 20 75 p:vbox))))..;; u
29f0: 73 65 20 61 20 67 6c 6f 62 61 6c 20 66 6f 72 20 se a global for
2a00: 73 65 74 74 69 6e 67 20 74 68 65 20 62 75 74 74 setting the butt
2a10: 6f 6e 73 20 63 6f 6c 6f 72 73 0a 3b 3b 20 20 20 ons colors.;;
2a20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2a30: 20 20 20 20 20 20 20 20 73 74 61 74 65 20 73 74 state st
2a40: 61 74 75 73 20 74 65 73 74 73 74 65 70 73 0a 28 atus teststeps.(
2a50: 64 65 66 69 6e 65 20 2a 73 74 61 74 65 2d 73 74 define *state-st
2a60: 61 74 75 73 2a 20 28 76 65 63 74 6f 72 20 23 66 atus* (vector #f
2a70: 20 23 66 20 23 66 29 29 0a 28 64 65 66 69 6e 65 #f #f)).(define
2a80: 20 28 75 70 64 61 74 65 2d 73 74 61 74 65 2d 73 (update-state-s
2a90: 74 61 74 75 73 2d 62 75 74 74 6f 6e 73 20 74 65 tatus-buttons te
2aa0: 73 74 64 61 74 29 0a 20 20 28 6c 65 74 2a 20 28 stdat). (let* (
2ab0: 28 73 74 61 74 65 20 20 28 64 62 3a 74 65 73 74 (state (db:test
2ac0: 2d 67 65 74 2d 73 74 61 74 65 20 20 74 65 73 74 -get-state test
2ad0: 64 61 74 29 29 0a 09 20 28 73 74 61 74 75 73 20 dat)).. (status
2ae0: 28 64 62 3a 74 65 73 74 2d 67 65 74 2d 73 74 61 (db:test-get-sta
2af0: 74 75 73 20 74 65 73 74 64 61 74 29 29 0a 09 20 tus testdat))..
2b00: 28 63 6f 6c 6f 72 20 20 28 63 61 72 20 28 67 75 (color (car (gu
2b10: 74 69 6c 73 3a 67 65 74 2d 63 6f 6c 6f 72 2d 66 tils:get-color-f
2b20: 6f 72 2d 73 74 61 74 65 2d 73 74 61 74 75 73 20 or-state-status
2b30: 73 74 61 74 65 20 73 74 61 74 75 73 29 29 29 29 state status))))
2b40: 0a 20 20 20 20 28 28 76 65 63 74 6f 72 2d 72 65 . ((vector-re
2b50: 66 20 2a 73 74 61 74 65 2d 73 74 61 74 75 73 2a f *state-status*
2b60: 20 30 29 20 73 74 61 74 65 20 63 6f 6c 6f 72 29 0) state color)
2b70: 0a 20 20 20 20 28 28 76 65 63 74 6f 72 2d 72 65 . ((vector-re
2b80: 66 20 2a 73 74 61 74 65 2d 73 74 61 74 75 73 2a f *state-status*
2b90: 20 31 29 20 73 74 61 74 75 73 20 63 6f 6c 6f 72 1) status color
2ba0: 29 29 29 0a 0a 28 64 65 66 69 6e 65 20 2a 64 61 )))..(define *da
2bb0: 73 68 62 6f 61 72 64 2d 74 65 73 74 2d 64 62 2a shboard-test-db*
2bc0: 20 23 74 29 0a 28 64 65 66 69 6e 65 20 2a 64 61 #t).(define *da
2bd0: 73 68 62 6f 61 72 64 2d 63 6f 6d 6d 65 6e 74 2d shboard-comment-
2be0: 73 68 61 72 65 2d 73 6c 6f 74 2a 20 23 66 29 0a share-slot* #f).
2bf0: 0a 3b 3b 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d .;;=============
2c00: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
2c10: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
2c20: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
2c30: 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 3b 3b 20 53 65 74 =========.;; Set
2c40: 20 66 69 65 6c 64 73 20 0a 3b 3b 3d 3d 3d 3d 3d fields .;;=====
2c50: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
2c60: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
2c70: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
2c80: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
2c90: 3d 0a 28 64 65 66 69 6e 65 20 28 73 65 74 2d 66 =.(define (set-f
2ca0: 69 65 6c 64 73 2d 70 61 6e 65 6c 20 64 62 73 74 ields-panel dbst
2cb0: 72 75 63 74 20 72 75 6e 2d 69 64 20 74 65 73 74 ruct run-id test
2cc0: 2d 69 64 20 74 65 73 74 64 61 74 20 23 21 6b 65 -id testdat #!ke
2cd0: 79 20 28 64 62 20 23 66 29 29 0a 20 20 28 6c 65 y (db #f)). (le
2ce0: 74 20 28 28 6e 65 77 63 6f 6d 6d 65 6e 74 20 23 t ((newcomment #
2cf0: 66 29 0a 09 28 6e 65 77 73 74 61 74 75 73 20 20 f)..(newstatus
2d00: 23 66 29 0a 09 28 6e 65 77 73 74 61 74 65 20 20 #f)..(newstate
2d10: 20 23 66 29 0a 09 28 77 74 78 74 62 6f 78 20 20 #f)..(wtxtbox
2d20: 20 20 23 66 29 29 0a 20 20 20 20 28 69 75 70 3a #f)). (iup:
2d30: 66 72 61 6d 65 0a 20 20 20 20 20 23 3a 74 69 74 frame. #:tit
2d40: 6c 65 20 22 53 65 74 20 66 69 65 6c 64 73 22 0a le "Set fields".
2d50: 20 20 20 20 20 28 69 75 70 3a 76 62 6f 78 0a 20 (iup:vbox.
2d60: 20 20 20 20 20 28 69 75 70 3a 68 62 6f 78 20 28 (iup:hbox (
2d70: 69 75 70 3a 6c 61 62 65 6c 20 22 43 6f 6d 6d 65 iup:label "Comme
2d80: 6e 74 3a 22 29 0a 09 09 28 6c 65 74 20 28 28 74 nt:")...(let ((t
2d90: 78 74 62 6f 78 20 28 69 75 70 3a 74 65 78 74 62 xtbox (iup:textb
2da0: 6f 78 20 23 3a 61 63 74 69 6f 6e 20 28 6c 61 6d ox #:action (lam
2db0: 62 64 61 20 28 76 61 6c 20 61 20 62 29 0a 09 09 bda (val a b)...
2dc0: 09 09 09 09 20 20 20 20 20 20 3b 3b 20 28 72 6d .... ;; (rm
2dd0: 74 3a 74 65 73 74 2d 73 65 74 2d 73 74 61 74 65 t:test-set-state
2de0: 2d 73 74 61 74 75 73 2d 62 79 2d 69 64 20 72 75 -status-by-id ru
2df0: 6e 2d 69 64 20 74 65 73 74 2d 69 64 20 23 66 20 n-id test-id #f
2e00: 23 66 20 62 29 0a 09 09 09 09 09 09 20 20 20 20 #f b).......
2e10: 20 20 28 72 6d 74 3a 74 65 73 74 2d 73 65 74 2d (rmt:test-set-
2e20: 73 74 61 74 65 2d 73 74 61 74 75 73 20 72 75 6e state-status run
2e30: 2d 69 64 20 74 65 73 74 2d 69 64 20 23 66 20 23 -id test-id #f #
2e40: 66 20 62 29 0a 09 09 09 09 09 09 20 20 20 20 20 f b).......
2e50: 20 3b 3b 20 49 44 45 41 3a 20 4a 75 73 74 20 73 ;; IDEA: Just s
2e60: 65 74 20 61 20 76 61 72 69 61 62 6c 65 20 77 69 et a variable wi
2e70: 74 68 20 74 68 65 20 70 72 6f 63 20 74 6f 20 63 th the proc to c
2e80: 61 6c 6c 3f 0a 09 09 09 09 09 09 20 20 20 20 20 all?.......
2e90: 20 3b 3b 20 28 72 6d 74 3a 74 65 73 74 2d 73 65 ;; (rmt:test-se
2ea0: 74 2d 73 74 61 74 65 2d 73 74 61 74 75 73 2d 62 t-state-status-b
2eb0: 79 2d 69 64 20 72 75 6e 2d 69 64 20 74 65 73 74 y-id run-id test
2ec0: 2d 69 64 20 23 66 20 23 66 20 62 29 0a 09 09 09 -id #f #f b)....
2ed0: 09 09 09 20 20 20 20 20 20 28 73 65 74 21 20 6e ... (set! n
2ee0: 65 77 63 6f 6d 6d 65 6e 74 20 62 29 29 0a 09 09 ewcomment b))...
2ef0: 09 09 09 20 20 20 23 3a 76 61 6c 75 65 20 28 64 ... #:value (d
2f00: 62 3a 74 65 73 74 2d 67 65 74 2d 63 6f 6d 6d 65 b:test-get-comme
2f10: 6e 74 20 74 65 73 74 64 61 74 29 0a 09 09 09 09 nt testdat).....
2f20: 09 20 20 20 23 3a 65 78 70 61 6e 64 20 22 48 4f . #:expand "HO
2f30: 52 49 5a 4f 4e 54 41 4c 22 29 29 29 0a 09 09 20 RIZONTAL")))...
2f40: 20 28 73 65 74 21 20 77 74 78 74 62 6f 78 20 74 (set! wtxtbox t
2f50: 78 74 62 6f 78 29 0a 09 09 20 20 74 78 74 62 6f xtbox)... txtbo
2f60: 78 29 29 0a 09 09 20 20 0a 20 20 20 20 20 20 28 x))... . (
2f70: 61 70 70 6c 79 20 69 75 70 3a 68 62 6f 78 0a 09 apply iup:hbox..
2f80: 20 20 20 20 20 28 69 75 70 3a 6c 61 62 65 6c 20 (iup:label
2f90: 22 53 54 41 54 45 3a 22 20 23 3a 73 69 7a 65 20 "STATE:" #:size
2fa0: 22 33 30 78 22 29 0a 09 20 20 20 20 20 28 6c 65 "30x").. (le
2fb0: 74 2a 20 28 28 62 74 6e 73 20 20 28 6d 61 70 20 t* ((btns (map
2fc0: 28 6c 61 6d 62 64 61 20 28 73 74 61 74 65 29 0a (lambda (state).
2fd0: 09 09 09 09 20 20 28 6c 65 74 20 28 28 62 74 6e .... (let ((btn
2fe0: 20 28 69 75 70 3a 62 75 74 74 6f 6e 20 73 74 61 (iup:button sta
2ff0: 74 65 0a 09 09 09 09 09 09 09 20 23 3a 65 78 70 te........ #:exp
3000: 61 6e 64 20 22 48 4f 52 49 5a 4f 4e 54 41 4c 22 and "HORIZONTAL"
3010: 20 23 3a 73 69 7a 65 20 22 35 30 78 22 20 23 3a #:size "50x" #:
3020: 66 6f 6e 74 20 22 43 6f 75 72 69 65 72 20 4e 65 font "Courier Ne
3030: 77 2c 20 2d 31 30 22 0a 09 09 09 09 09 09 09 20 w, -10"........
3040: 23 3a 61 63 74 69 6f 6e 20 28 6c 61 6d 62 64 61 #:action (lambda
3050: 20 28 78 29 0a 09 09 09 09 09 09 09 09 20 20 20 (x).........
3060: 20 3b 3b 20 28 72 6d 74 3a 74 65 73 74 2d 73 65 ;; (rmt:test-se
3070: 74 2d 73 74 61 74 65 2d 73 74 61 74 75 73 2d 62 t-state-status-b
3080: 79 2d 69 64 20 72 75 6e 2d 69 64 20 74 65 73 74 y-id run-id test
3090: 2d 69 64 20 73 74 61 74 65 20 23 66 20 23 66 29 -id state #f #f)
30a0: 0a 09 09 09 09 09 09 09 09 20 20 20 20 28 72 6d ......... (rm
30b0: 74 3a 73 65 74 2d 73 74 61 74 65 2d 73 74 61 74 t:set-state-stat
30c0: 75 73 2d 61 6e 64 2d 72 6f 6c 6c 2d 75 70 2d 69 us-and-roll-up-i
30d0: 74 65 6d 73 20 72 75 6e 2d 69 64 20 74 65 73 74 tems run-id test
30e0: 2d 69 64 20 23 66 20 73 74 61 74 65 20 23 66 20 -id #f state #f
30f0: 23 66 29 20 3b 3b 20 74 65 73 74 2d 6e 61 6d 65 #f) ;; test-name
3100: 20 70 61 73 73 65 64 20 69 6e 20 61 73 20 74 65 passed in as te
3110: 73 74 2d 69 64 20 69 73 20 72 65 73 70 65 63 74 st-id is respect
3120: 65 64 0a 09 09 09 09 09 09 09 09 20 20 20 20 28 ed......... (
3130: 64 62 3a 74 65 73 74 2d 73 65 74 2d 73 74 61 74 db:test-set-stat
3140: 65 21 20 74 65 73 74 64 61 74 20 73 74 61 74 65 e! testdat state
3150: 29 29 29 29 29 0a 09 09 09 09 20 20 20 20 62 74 )))))..... bt
3160: 6e 29 29 0a 09 09 09 09 28 6d 61 70 20 63 61 64 n)).....(map cad
3170: 72 20 2a 63 6f 6d 6d 6f 6e 3a 73 74 64 2d 73 74 r *common:std-st
3180: 61 74 65 73 2a 29 29 29 29 20 3b 3b 20 28 6c 69 ates*)))) ;; (li
3190: 73 74 20 22 43 4f 4d 50 4c 45 54 45 44 22 20 22 st "COMPLETED" "
31a0: 4e 4f 54 5f 53 54 41 52 54 45 44 22 20 22 52 55 NOT_STARTED" "RU
31b0: 4e 4e 49 4e 47 22 20 22 52 45 4d 4f 54 45 48 4f NNING" "REMOTEHO
31c0: 53 54 53 54 41 52 54 22 20 22 4c 41 55 4e 43 48 STSTART" "LAUNCH
31d0: 45 44 22 20 22 4b 49 4c 4c 45 44 22 20 22 4b 49 ED" "KILLED" "KI
31e0: 4c 4c 52 45 51 22 29 29 29 29 0a 09 20 20 20 20 LLREQ"))))..
31f0: 20 20 20 28 76 65 63 74 6f 72 2d 73 65 74 21 20 (vector-set!
3200: 2a 73 74 61 74 65 2d 73 74 61 74 75 73 2a 20 30 *state-status* 0
3210: 0a 09 09 09 20 20 20 20 28 6c 61 6d 62 64 61 20 .... (lambda
3220: 28 73 74 61 74 65 20 63 6f 6c 6f 72 29 0a 09 09 (state color)...
3230: 09 20 20 20 20 20 20 28 66 6f 72 2d 65 61 63 68 . (for-each
3240: 20 0a 09 09 09 20 20 20 20 20 20 20 28 6c 61 6d .... (lam
3250: 62 64 61 20 28 62 74 6e 29 0a 09 09 09 09 20 28 bda (btn)..... (
3260: 6c 65 74 2a 20 28 28 6e 61 6d 65 20 20 20 20 20 let* ((name
3270: 28 69 75 70 3a 61 74 74 72 69 62 75 74 65 20 62 (iup:attribute b
3280: 74 6e 20 22 54 49 54 4c 45 22 29 29 0a 09 09 09 tn "TITLE"))....
3290: 09 09 28 6e 65 77 63 6f 6c 6f 72 20 28 69 66 20 ..(newcolor (if
32a0: 28 65 71 75 61 6c 3f 20 6e 61 6d 65 20 73 74 61 (equal? name sta
32b0: 74 65 29 20 63 6f 6c 6f 72 20 22 31 39 32 20 31 te) color "192 1
32c0: 39 32 20 31 39 32 22 29 29 29 0a 09 09 09 09 20 92 192"))).....
32d0: 20 20 28 69 66 20 28 6e 6f 74 20 28 63 6f 6c 6f (if (not (colo
32e0: 72 73 2d 73 69 6d 69 6c 61 72 3f 20 6e 65 77 63 rs-similar? newc
32f0: 6f 6c 6f 72 20 28 69 75 70 3a 61 74 74 72 69 62 olor (iup:attrib
3300: 75 74 65 20 62 74 6e 20 22 42 47 43 4f 4c 4f 52 ute btn "BGCOLOR
3310: 22 29 29 29 0a 09 09 09 09 20 20 20 20 20 20 20 "))).....
3320: 28 69 75 70 3a 61 74 74 72 69 62 75 74 65 2d 73 (iup:attribute-s
3330: 65 74 21 20 62 74 6e 20 22 42 47 43 4f 4c 4f 52 et! btn "BGCOLOR
3340: 22 20 6e 65 77 63 6f 6c 6f 72 29 29 29 29 0a 09 " newcolor))))..
3350: 09 09 20 20 20 20 20 20 20 62 74 6e 73 29 29 29 .. btns)))
3360: 0a 09 20 20 20 20 20 20 20 62 74 6e 73 29 29 0a .. btns)).
3370: 20 20 20 20 20 20 28 61 70 70 6c 79 20 69 75 70 (apply iup
3380: 3a 68 62 6f 78 0a 09 20 20 20 20 20 28 69 75 70 :hbox.. (iup
3390: 3a 6c 61 62 65 6c 20 22 53 54 41 54 55 53 3a 22 :label "STATUS:"
33a0: 20 23 3a 73 69 7a 65 20 22 33 30 78 22 29 0a 09 #:size "30x")..
33b0: 20 20 20 20 20 28 6c 65 74 2a 20 28 28 62 74 6e (let* ((btn
33c0: 73 20 20 28 6d 61 70 20 28 6c 61 6d 62 64 61 20 s (map (lambda
33d0: 28 73 74 61 74 75 73 29 0a 09 09 09 09 20 20 28 (status)..... (
33e0: 6c 65 74 20 28 28 62 74 6e 20 28 69 75 70 3a 62 let ((btn (iup:b
33f0: 75 74 74 6f 6e 20 73 74 61 74 75 73 0a 09 09 09 utton status....
3400: 09 09 09 09 20 23 3a 65 78 70 61 6e 64 20 22 48 .... #:expand "H
3410: 4f 52 49 5a 4f 4e 54 41 4c 22 20 23 3a 73 69 7a ORIZONTAL" #:siz
3420: 65 20 22 35 30 78 22 20 23 3a 66 6f 6e 74 20 22 e "50x" #:font "
3430: 43 6f 75 72 69 65 72 20 4e 65 77 2c 20 2d 31 30 Courier New, -10
3440: 22 0a 09 09 09 09 09 09 09 20 23 3a 61 63 74 69 "........ #:acti
3450: 6f 6e 20 28 6c 61 6d 62 64 61 20 28 78 29 0a 09 on (lambda (x)..
3460: 09 09 09 09 09 09 09 20 20 20 20 28 6c 65 74 20 ....... (let
3470: 28 28 74 20 28 69 75 70 3a 61 74 74 72 69 62 75 ((t (iup:attribu
3480: 74 65 20 78 20 22 54 49 54 4c 45 22 29 29 29 0a te x "TITLE"))).
3490: 09 09 09 09 09 09 09 09 20 20 20 20 20 20 28 69 ........ (i
34a0: 66 20 28 65 71 75 61 6c 3f 20 74 20 22 57 41 49 f (equal? t "WAI
34b0: 56 45 44 22 29 0a 09 09 09 09 09 09 09 09 09 20 VED")..........
34c0: 20 28 69 75 70 3a 73 68 6f 77 20 28 64 61 73 68 (iup:show (dash
34d0: 62 6f 61 72 64 2d 74 65 73 74 73 3a 77 61 69 76 board-tests:waiv
34e0: 65 72 20 72 75 6e 2d 69 64 20 74 65 73 74 64 61 er run-id testda
34f0: 74 20 0a 09 09 09 09 09 09 09 09 09 09 09 09 09 t ..............
3500: 20 20 20 20 28 69 66 20 77 74 78 74 62 6f 78 20 (if wtxtbox
3510: 28 69 75 70 3a 61 74 74 72 69 62 75 74 65 20 77 (iup:attribute w
3520: 74 78 74 62 6f 78 20 22 56 41 4c 55 45 22 29 20 txtbox "VALUE")
3530: 23 66 29 0a 09 09 09 09 09 09 09 09 09 09 09 09 #f).............
3540: 09 20 20 20 20 28 6c 61 6d 62 64 61 20 28 63 29 . (lambda (c)
3550: 0a 09 09 09 09 09 09 09 09 09 09 09 09 09 20 20 ..............
3560: 20 20 20 20 28 73 65 74 21 20 6e 65 77 63 6f 6d (set! newcom
3570: 6d 65 6e 74 20 63 29 0a 09 09 09 09 09 09 09 09 ment c).........
3580: 09 09 09 09 09 20 20 20 20 20 20 28 69 66 20 77 ..... (if w
3590: 74 78 74 62 6f 78 20 0a 09 09 09 09 09 09 09 09 txtbox .........
35a0: 09 09 09 09 09 09 20 20 28 62 65 67 69 6e 0a 09 ...... (begin..
35b0: 09 09 09 09 09 09 09 09 09 09 09 09 09 20 20 20 .............
35c0: 20 28 69 75 70 3a 61 74 74 72 69 62 75 74 65 2d (iup:attribute-
35d0: 73 65 74 21 20 77 74 78 74 62 6f 78 20 22 56 41 set! wtxtbox "VA
35e0: 4c 55 45 22 20 63 29 0a 09 09 09 09 09 09 09 09 LUE" c).........
35f0: 09 09 09 09 09 09 20 20 20 20 28 69 66 20 28 6e ...... (if (n
3600: 6f 74 20 2a 64 61 73 68 62 6f 61 72 64 2d 63 6f ot *dashboard-co
3610: 6d 6d 65 6e 74 2d 73 68 61 72 65 2d 73 6c 6f 74 mment-share-slot
3620: 2a 29 0a 09 09 09 09 09 09 09 09 09 09 09 09 09 *)..............
3630: 09 09 28 73 65 74 21 20 2a 64 61 73 68 62 6f 61 ..(set! *dashboa
3640: 72 64 2d 63 6f 6d 6d 65 6e 74 2d 73 68 61 72 65 rd-comment-share
3650: 2d 73 6c 6f 74 2a 20 77 74 78 74 62 6f 78 29 29 -slot* wtxtbox))
3660: 29 0a 09 09 09 09 09 09 09 09 09 09 09 09 09 09 )...............
3670: 20 20 29 29 29 29 0a 09 09 09 09 09 09 09 09 09 ))))..........
3680: 20 20 28 62 65 67 69 6e 0a 09 09 09 09 09 09 09 (begin........
3690: 09 09 20 20 20 20 3b 3b 20 28 72 6d 74 3a 74 65 .. ;; (rmt:te
36a0: 73 74 2d 73 65 74 2d 73 74 61 74 65 2d 73 74 61 st-set-state-sta
36b0: 74 75 73 2d 62 79 2d 69 64 20 72 75 6e 2d 69 64 tus-by-id run-id
36c0: 20 74 65 73 74 2d 69 64 20 23 66 20 73 74 61 74 test-id #f stat
36d0: 75 73 20 23 66 29 0a 09 09 09 09 09 09 09 09 09 us #f)..........
36e0: 20 20 20 20 28 72 6d 74 3a 73 65 74 2d 73 74 61 (rmt:set-sta
36f0: 74 65 2d 73 74 61 74 75 73 2d 61 6e 64 2d 72 6f te-status-and-ro
3700: 6c 6c 2d 75 70 2d 69 74 65 6d 73 20 72 75 6e 2d ll-up-items run-
3710: 69 64 20 74 65 73 74 2d 69 64 20 23 66 20 23 66 id test-id #f #f
3720: 20 73 74 61 74 75 73 20 23 66 29 20 3b 3b 20 74 status #f) ;; t
3730: 65 73 74 2d 6e 61 6d 65 20 70 61 73 73 65 64 20 est-name passed
3740: 69 6e 20 61 73 20 74 65 73 74 2d 69 64 20 69 73 in as test-id is
3750: 20 72 65 73 70 65 63 74 65 64 0a 09 09 09 09 09 respected......
3760: 09 09 09 09 20 20 20 20 28 64 62 3a 74 65 73 74 .... (db:test
3770: 2d 73 65 74 2d 73 74 61 74 75 73 21 20 74 65 73 -set-status! tes
3780: 74 64 61 74 20 73 74 61 74 75 73 29 29 29 29 29 tdat status)))))
3790: 29 29 29 0a 09 09 09 09 20 20 20 20 62 74 6e 29 )))..... btn)
37a0: 29 0a 09 09 09 09 28 6d 61 70 20 63 61 64 72 20 ).....(map cadr
37b0: 2a 63 6f 6d 6d 6f 6e 3a 73 74 64 2d 73 74 61 74 *common:std-stat
37c0: 75 73 65 73 2a 29 29 29 29 20 3b 3b 20 28 6c 69 uses*)))) ;; (li
37d0: 73 74 20 20 22 50 41 53 53 22 20 22 57 41 52 4e st "PASS" "WARN
37e0: 22 20 22 46 41 49 4c 22 20 22 43 48 45 43 4b 22 " "FAIL" "CHECK"
37f0: 20 22 6e 2f 61 22 20 22 57 41 49 56 45 44 22 20 "n/a" "WAIVED"
3800: 22 53 4b 49 50 22 29 29 29 29 0a 09 20 20 20 20 "SKIP"))))..
3810: 20 20 20 28 76 65 63 74 6f 72 2d 73 65 74 21 20 (vector-set!
3820: 2a 73 74 61 74 65 2d 73 74 61 74 75 73 2a 20 31 *state-status* 1
3830: 0a 09 09 09 20 20 20 20 28 6c 61 6d 62 64 61 20 .... (lambda
3840: 28 73 74 61 74 75 73 20 63 6f 6c 6f 72 29 0a 09 (status color)..
3850: 09 09 20 20 20 20 20 20 28 66 6f 72 2d 65 61 63 .. (for-eac
3860: 68 20 0a 09 09 09 20 20 20 20 20 20 20 28 6c 61 h .... (la
3870: 6d 62 64 61 20 28 62 74 6e 29 0a 09 09 09 09 20 mbda (btn).....
3880: 28 6c 65 74 2a 20 28 28 6e 61 6d 65 20 20 20 20 (let* ((name
3890: 20 28 69 75 70 3a 61 74 74 72 69 62 75 74 65 20 (iup:attribute
38a0: 62 74 6e 20 22 54 49 54 4c 45 22 29 29 0a 09 09 btn "TITLE"))...
38b0: 09 09 09 28 6e 65 77 63 6f 6c 6f 72 20 28 69 66 ...(newcolor (if
38c0: 20 28 65 71 75 61 6c 3f 20 6e 61 6d 65 20 73 74 (equal? name st
38d0: 61 74 75 73 29 20 63 6f 6c 6f 72 20 22 31 39 32 atus) color "192
38e0: 20 31 39 32 20 31 39 32 22 29 29 29 0a 09 09 09 192 192")))....
38f0: 09 20 20 20 28 69 66 20 28 6e 6f 74 20 28 63 6f . (if (not (co
3900: 6c 6f 72 73 2d 73 69 6d 69 6c 61 72 3f 20 6e 65 lors-similar? ne
3910: 77 63 6f 6c 6f 72 20 28 69 75 70 3a 61 74 74 72 wcolor (iup:attr
3920: 69 62 75 74 65 20 62 74 6e 20 22 42 47 43 4f 4c ibute btn "BGCOL
3930: 4f 52 22 29 29 29 0a 09 09 09 09 20 20 20 20 20 OR"))).....
3940: 20 20 28 69 75 70 3a 61 74 74 72 69 62 75 74 65 (iup:attribute
3950: 2d 73 65 74 21 20 62 74 6e 20 22 42 47 43 4f 4c -set! btn "BGCOL
3960: 4f 52 22 20 6e 65 77 63 6f 6c 6f 72 29 29 29 29 OR" newcolor))))
3970: 0a 09 09 09 20 20 20 20 20 20 20 62 74 6e 73 29 .... btns)
3980: 29 29 0a 09 20 20 20 20 20 20 20 62 74 6e 73 29 )).. btns)
3990: 29 29 29 29 29 0a 0a 28 64 65 66 69 6e 65 20 28 )))))..(define (
39a0: 64 61 73 68 62 6f 61 72 64 2d 74 65 73 74 73 3a dashboard-tests:
39b0: 72 75 6e 2d 61 2d 73 74 65 70 20 69 6e 66 6f 29 run-a-step info)
39c0: 0a 20 20 23 74 29 0a 0a 3b 3b 20 28 64 65 66 69 . #t)..;; (defi
39d0: 6e 65 20 28 64 61 73 68 62 6f 61 72 64 2d 74 65 ne (dashboard-te
39e0: 73 74 73 3a 73 74 65 70 2d 72 75 6e 2d 63 6f 6e sts:step-run-con
39f0: 74 72 6f 6c 20 74 65 73 74 64 61 74 20 73 74 65 trol testdat ste
3a00: 70 6e 61 6d 65 20 74 65 73 74 63 6f 6e 66 69 67 pname testconfig
3a10: 29 0a 3b 3b 20 20 20 28 6c 65 74 2a 20 28 28 6d ).;; (let* ((m
3a20: 75 74 65 78 20 28 6d 61 6b 65 2d 6d 75 74 65 78 utex (make-mutex
3a30: 29 29 29 0a 3b 3b 20 20 20 20 20 28 6c 65 74 72 ))).;; (letr
3a40: 65 63 20 28 28 64 6c 67 0a 3b 3b 20 20 20 20 20 ec ((dlg.;;
3a50: 20 20 20 20 20 20 20 20 20 20 28 69 75 70 3a 64 (iup:d
3a60: 69 61 6c 6f 67 20 3b 3b 20 23 3a 63 6c 6f 73 65 ialog ;; #:close
3a70: 5f 63 62 20 28 6c 61 6d 62 64 61 20 28 61 29 28 _cb (lambda (a)(
3a80: 65 78 69 74 29 29 20 3b 20 23 3a 65 78 70 61 6e exit)) ; #:expan
3a90: 64 20 22 59 45 53 22 0a 3b 3b 20 20 20 20 20 20 d "YES".;;
3aa0: 20 20 20 20 20 20 20 20 20 20 23 3a 74 69 74 6c #:titl
3ab0: 65 20 73 74 65 70 6e 61 6d 65 0a 3b 3b 20 20 20 e stepname.;;
3ac0: 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 75 (iu
3ad0: 70 3a 76 62 6f 78 20 3b 20 23 3a 65 78 70 61 6e p:vbox ; #:expan
3ae0: 64 20 22 59 45 53 22 0a 3b 3b 20 20 20 20 20 20 d "YES".;;
3af0: 20 20 20 20 20 20 20 20 20 20 20 28 69 75 70 3a (iup:
3b00: 6c 61 62 65 6c 20 28 63 6f 6e 63 20 22 53 74 65 label (conc "Ste
3b10: 70 3a 20 22 20 73 74 65 70 6e 61 6d 65 20 22 5c p: " stepname "\
3b20: 6e 4e 42 2f 2f 20 54 68 65 73 65 20 62 75 74 74 nNB// These butt
3b30: 6f 6e 73 20 6f 6e 6c 79 20 72 75 6e 20 74 68 65 ons only run the
3b40: 20 74 65 73 74 20 73 74 65 70 5c 6e 66 6f 72 20 test step\nfor
3b50: 74 68 65 20 70 75 72 70 6f 73 65 20 6f 66 20 64 the purpose of d
3b60: 65 62 75 67 67 69 6e 67 2e 5c 6e 4e 6f 74 20 61 ebugging.\nNot a
3b70: 6c 6c 20 64 61 74 61 62 61 73 65 20 75 70 64 61 ll database upda
3b80: 74 65 73 20 61 72 65 20 64 6f 6e 65 2e 22 29 29 tes are done."))
3b90: 0a 3b 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 .;;
3ba0: 20 20 20 20 28 69 75 70 3a 62 75 74 74 6f 6e 20 (iup:button
3bb0: 22 52 65 2d 72 75 6e 22 20 20 20 20 20 20 20 20 "Re-run"
3bc0: 20 20 20 20 0a 3b 3b 20 09 09 20 20 20 20 20 20 .;; ..
3bd0: 20 20 20 20 20 20 23 3a 65 78 70 61 6e 64 20 22 #:expand "
3be0: 48 4f 52 49 5a 4f 4e 54 41 4c 22 20 0a 3b 3b 20 HORIZONTAL" .;;
3bf0: 09 09 20 20 20 20 20 20 20 20 20 20 20 20 23 3a .. #:
3c00: 61 63 74 69 6f 6e 20 28 6c 61 6d 62 64 61 20 28 action (lambda (
3c10: 6f 62 6a 29 0a 3b 3b 20 20 20 20 20 20 20 20 20 obj).;;
3c20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
3c30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
3c40: 20 20 20 20 28 64 65 62 75 67 3a 63 61 74 63 68 (debug:catch
3c50: 2d 61 6e 64 2d 64 75 6d 70 20 28 6c 61 6d 62 64 -and-dump (lambd
3c60: 61 20 28 29 0a 3b 3b 20 09 09 09 20 20 20 20 20 a ().;; ...
3c70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
3c80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
3c90: 20 20 20 20 20 20 20 28 74 68 72 65 61 64 2d 73 (thread-s
3ca0: 74 61 72 74 21 20 0a 3b 3b 20 09 09 09 20 20 20 tart! .;; ...
3cb0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
3cc0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
3cd0: 20 20 20 20 20 20 20 20 20 20 28 6d 61 6b 65 2d (make-
3ce0: 74 68 72 65 61 64 0a 3b 3b 20 20 20 20 20 20 20 thread.;;
3cf0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
3d00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
3d10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
3d20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
3d30: 28 6c 61 6d 62 64 61 20 28 29 0a 3b 3b 20 20 20 (lambda ().;;
3d40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
3d50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
3d60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
3d70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
3d80: 20 20 20 20 20 20 28 70 72 69 6e 74 20 22 42 42 (print "BB
3d90: 3e 20 73 74 61 72 74 65 64 20 65 7a 73 74 65 70 > started ezstep
3da0: 73 3a 72 75 6e 2d 66 72 6f 6d 22 29 0a 3b 3b 20 s:run-from").;;
3db0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
3dc0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
3dd0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
3de0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
3df0: 20 20 20 20 20 20 20 20 28 64 65 62 75 67 3a 63 (debug:c
3e00: 61 74 63 68 2d 61 6e 64 2d 64 75 6d 70 20 0a 3b atch-and-dump .;
3e10: 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ;
3e20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
3e30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
3e40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
3e50: 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 (lamb
3e60: 64 61 20 28 29 0a 3b 3b 20 09 09 09 20 20 20 20 da ().;; ...
3e70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
3e80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
3e90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 (
3ea0: 65 7a 73 74 65 70 73 3a 72 75 6e 2d 66 72 6f 6d ezsteps:run-from
3eb0: 20 74 65 73 74 64 61 74 20 73 74 65 70 6e 61 6d testdat stepnam
3ec0: 65 20 23 74 29 29 0a 3b 3b 20 20 20 20 20 20 20 e #t)).;;
3ed0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
3ee0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
3ef0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
3f00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
3f10: 20 20 20 22 64 61 73 68 62 6f 61 72 64 2d 74 65 "dashboard-te
3f20: 73 74 73 3a 73 74 65 70 2d 72 75 6e 2d 63 6f 6e sts:step-run-con
3f30: 74 72 6f 6c 20 2d 3e 20 65 7a 73 74 65 70 3a 72 trol -> ezstep:r
3f40: 75 6e 2d 66 72 6f 6d 20 28 31 29 22 29 0a 3b 3b un-from (1)").;;
3f50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
3f60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
3f70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
3f80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
3f90: 20 20 20 20 20 20 20 20 20 28 70 72 69 6e 74 20 (print
3fa0: 22 42 42 3e 20 64 6f 6e 65 20 65 7a 73 74 65 70 "BB> done ezstep
3fb0: 73 3a 72 75 6e 2d 66 72 6f 6d 22 29 0a 3b 3b 20 s:run-from").;;
3fc0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
3fd0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
3fe0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
3ff0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
4000: 20 20 20 20 20 20 20 20 27 66 6f 6f 29 0a 3b 3b 'foo).;;
4010: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
4020: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
4030: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
4040: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
4050: 20 20 20 20 20 20 20 28 63 6f 6e 63 20 22 65 7a (conc "ez
4060: 73 74 65 70 20 72 75 6e 20 73 69 6e 67 6c 65 20 step run single
4070: 73 74 65 70 20 22 20 73 74 65 70 6e 61 6d 65 29 step " stepname)
4080: 29 29 0a 3b 3b 20 20 20 20 20 20 20 20 20 20 20 )).;;
4090: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
40a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
40b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
40c0: 20 20 20 20 20 20 20 20 20 20 29 0a 3b 3b 20 20 ).;;
40d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
40e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
40f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
4100: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
4110: 20 22 73 74 65 70 2d 72 75 6e 2d 63 6f 6e 74 72 "step-run-contr
4120: 6f 6c 20 61 63 74 69 6f 6e 22 29 29 29 0a 3b 3b ol action"))).;;
4130: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
4140: 20 28 69 75 70 3a 62 75 74 74 6f 6e 20 22 52 65 (iup:button "Re
4150: 2d 72 75 6e 20 61 6e 64 20 63 6f 6e 74 69 6e 75 -run and continu
4160: 65 22 20 20 20 20 20 20 20 20 20 0a 3b 3b 20 09 e" .;; .
4170: 09 20 20 20 20 20 20 20 20 20 20 20 20 23 3a 65 . #:e
4180: 78 70 61 6e 64 20 22 48 4f 52 49 5a 4f 4e 54 41 xpand "HORIZONTA
4190: 4c 22 20 0a 3b 3b 20 09 09 20 20 20 20 20 20 20 L" .;; ..
41a0: 20 20 20 20 20 23 3a 61 63 74 69 6f 6e 20 28 6c #:action (l
41b0: 61 6d 62 64 61 20 28 6f 62 6a 29 0a 3b 3b 20 20 ambda (obj).;;
41c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
41d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
41e0: 20 20 20 20 20 20 28 64 65 62 75 67 3a 63 61 74 (debug:cat
41f0: 63 68 2d 61 6e 64 2d 64 75 6d 70 0a 3b 3b 20 20 ch-and-dump.;;
4200: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
4210: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
4220: 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 (lambda (
4230: 29 0a 3b 3b 20 09 09 09 20 20 20 20 20 20 20 20 ).;; ...
4240: 20 20 20 20 20 20 20 20 20 20 28 74 68 72 65 61 (threa
4250: 64 2d 73 74 61 72 74 21 0a 3b 3b 20 09 09 09 20 d-start!.;; ...
4260: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
4270: 20 20 28 6d 61 6b 65 2d 74 68 72 65 61 64 20 28 (make-thread (
4280: 6c 61 6d 62 64 61 20 28 29 0a 3b 3b 20 09 09 09 lambda ().;; ...
4290: 09 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
42a0: 20 20 20 20 28 65 7a 73 74 65 70 73 3a 72 75 6e (ezsteps:run
42b0: 2d 66 72 6f 6d 20 74 65 73 74 64 61 74 20 73 74 -from testdat st
42c0: 65 70 6e 61 6d 65 20 23 66 29 29 0a 3b 3b 20 09 epname #f)).;; .
42d0: 09 09 09 09 20 20 20 20 20 20 20 20 20 20 20 20 ....
42e0: 20 20 20 20 28 63 6f 6e 63 20 22 65 7a 73 74 65 (conc "ezste
42f0: 70 20 72 75 6e 20 66 72 6f 6d 20 73 74 65 70 20 p run from step
4300: 22 20 73 74 65 70 6e 61 6d 65 29 29 29 29 0a 3b " stepname)))).;
4310: 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ;
4320: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
4330: 20 20 20 20 20 20 20 20 20 20 22 64 61 73 68 62 "dashb
4340: 6f 61 72 64 2d 74 65 73 74 73 3a 73 74 65 70 2d oard-tests:step-
4350: 72 75 6e 2d 63 6f 6e 74 72 6f 6c 20 2d 3e 20 65 run-control -> e
4360: 7a 73 74 65 70 3a 72 75 6e 2d 66 72 6f 6d 20 28 zstep:run-from (
4370: 32 29 22 29 29 29 0a 3b 3b 20 20 20 20 20 20 20 2)"))).;;
4380: 20 20 20 20 20 20 20 20 20 20 28 69 75 70 3a 62 (iup:b
4390: 75 74 74 6f 6e 20 22 43 6c 6f 73 65 22 0a 3b 3b utton "Close".;;
43a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
43b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 23 3a 61 #:a
43c0: 63 74 69 6f 6e 20 28 6c 61 6d 62 64 61 20 28 6f ction (lambda (o
43d0: 62 6a 29 0a 3b 3b 20 20 20 20 20 20 20 20 20 20 bj).;;
43e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
43f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 (i
4400: 75 70 3a 64 65 73 74 72 6f 79 21 20 64 6c 67 29 up:destroy! dlg)
4410: 29 29 0a 3b 3b 20 20 20 20 20 20 20 20 20 20 20 )).;;
4420: 20 20 20 20 20 20 3b 3b 20 28 69 75 70 3a 62 75 ;; (iup:bu
4430: 74 74 6f 6e 20 22 52 65 66 72 65 73 68 20 74 65 tton "Refresh te
4440: 73 74 20 64 61 74 61 22 0a 3b 3b 20 20 20 20 20 st data".;;
4450: 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 20 ;;
4460: 20 20 20 09 23 3a 65 78 70 61 6e 64 20 22 48 4f .#:expand "HO
4470: 52 49 5a 4f 4e 54 41 4c 22 0a 3b 3b 20 20 20 20 RIZONTAL".;;
4480: 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 ;;
4490: 20 20 20 20 09 23 3a 61 63 74 69 6f 6e 20 28 6c .#:action (l
44a0: 61 6d 62 64 61 20 28 6f 62 6a 29 0a 3b 3b 20 20 ambda (obj).;;
44b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b ;
44c0: 3b 20 20 20 20 20 09 09 20 20 20 28 70 72 69 6e ; .. (prin
44d0: 74 20 22 52 65 66 72 65 73 68 20 74 65 73 74 20 t "Refresh test
44e0: 64 61 74 61 20 22 20 73 74 65 70 6e 61 6d 65 29 data " stepname)
44f0: 29 0a 3b 3b 20 20 20 20 20 20 20 20 20 20 20 20 ).;;
4500: 20 20 20 20 20 29 29 29 29 0a 3b 3b 20 20 20 20 )))).;;
4510: 20 20 20 64 6c 67 29 29 29 0a 0a 28 64 65 66 69 dlg)))..(defi
4520: 6e 65 20 28 64 61 73 68 62 6f 61 72 64 2d 74 65 ne (dashboard-te
4530: 73 74 73 3a 77 61 69 76 65 72 20 72 75 6e 2d 69 sts:waiver run-i
4540: 64 20 74 65 73 74 64 61 74 20 6f 76 72 64 76 61 d testdat ovrdva
4550: 6c 20 63 6d 74 63 6d 64 29 0a 20 20 28 6c 65 74 l cmtcmd). (let
4560: 2a 20 28 28 77 70 61 74 74 20 28 63 6f 6e 66 69 * ((wpatt (confi
4570: 67 66 3a 6c 6f 6f 6b 75 70 20 2a 63 6f 6e 66 69 gf:lookup *confi
4580: 67 64 61 74 2a 20 22 73 65 74 75 70 22 20 22 77 gdat* "setup" "w
4590: 61 69 76 65 72 63 6f 6d 6d 65 6e 74 70 61 74 74 aivercommentpatt
45a0: 22 29 29 0a 09 20 28 77 72 65 67 78 20 28 69 66 ")).. (wregx (if
45b0: 20 28 73 74 72 69 6e 67 3f 20 77 70 61 74 74 29 (string? wpatt)
45c0: 28 72 65 67 65 78 70 20 77 70 61 74 74 29 20 23 (regexp wpatt) #
45d0: 66 29 29 0a 09 20 28 77 6d 65 73 67 20 28 69 75 f)).. (wmesg (iu
45e0: 70 3a 6c 61 62 65 6c 20 28 69 66 20 77 70 61 74 p:label (if wpat
45f0: 74 20 28 63 6f 6e 63 20 22 43 6f 6d 6d 65 6e 74 t (conc "Comment
4600: 20 6d 75 73 74 20 6d 61 74 63 68 20 70 61 74 74 must match patt
4610: 65 72 6e 20 22 20 77 70 61 74 74 29 20 22 22 29 ern " wpatt) "")
4620: 29 29 0a 09 20 28 63 6f 6d 6e 74 20 28 69 75 70 )).. (comnt (iup
4630: 3a 74 65 78 74 62 6f 78 20 23 3a 61 63 74 69 6f :textbox #:actio
4640: 6e 20 28 6c 61 6d 62 64 61 20 28 76 61 6c 20 61 n (lambda (val a
4650: 20 62 29 0a 09 09 09 09 09 28 69 66 20 77 70 61 b)......(if wpa
4660: 74 74 0a 09 09 09 09 09 20 20 20 20 28 69 66 20 tt...... (if
4670: 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 77 72 (string-match wr
4680: 65 67 78 20 62 29 0a 09 09 09 09 09 09 28 69 75 egx b).......(iu
4690: 70 3a 61 74 74 72 69 62 75 74 65 2d 73 65 74 21 p:attribute-set!
46a0: 20 77 6d 65 73 67 20 22 54 49 54 4c 45 22 20 28 wmesg "TITLE" (
46b0: 63 6f 6e 63 20 22 43 6f 6d 6d 65 6e 74 20 6d 61 conc "Comment ma
46c0: 74 63 68 65 73 20 22 20 77 70 61 74 74 29 29 0a tches " wpatt)).
46d0: 09 09 09 09 09 09 28 69 75 70 3a 61 74 74 72 69 ......(iup:attri
46e0: 62 75 74 65 2d 73 65 74 21 20 77 6d 65 73 67 20 bute-set! wmesg
46f0: 22 54 49 54 4c 45 22 20 28 63 6f 6e 63 20 22 43 "TITLE" (conc "C
4700: 6f 6d 6d 65 6e 74 20 64 6f 65 73 20 6e 6f 74 20 omment does not
4710: 6d 61 74 63 68 20 22 20 77 70 61 74 74 29 29 0a match " wpatt)).
4720: 09 09 09 09 09 09 29 29 29 0a 09 09 09 20 20 20 ......)))....
4730: 20 20 23 3a 76 61 6c 75 65 20 28 69 66 20 6f 76 #:value (if ov
4740: 72 64 76 61 6c 20 6f 76 72 64 76 61 6c 20 28 64 rdval ovrdval (d
4750: 62 3a 74 65 73 74 2d 67 65 74 2d 63 6f 6d 6d 65 b:test-get-comme
4760: 6e 74 20 74 65 73 74 64 61 74 29 29 0a 09 09 09 nt testdat))....
4770: 20 20 20 20 20 23 3a 65 78 70 61 6e 64 20 22 48 #:expand "H
4780: 4f 52 49 5a 4f 4e 54 41 4c 22 29 29 0a 09 20 28 ORIZONTAL")).. (
4790: 64 6c 6f 67 20 20 23 66 29 29 0a 20 20 20 20 28 dlog #f)). (
47a0: 73 65 74 21 20 64 6c 6f 67 20 28 69 75 70 3a 64 set! dlog (iup:d
47b0: 69 61 6c 6f 67 20 3b 3b 20 23 3a 63 6c 6f 73 65 ialog ;; #:close
47c0: 5f 63 62 20 28 6c 61 6d 62 64 61 20 28 61 29 28 _cb (lambda (a)(
47d0: 65 78 69 74 29 29 20 3b 20 23 3a 65 78 70 61 6e exit)) ; #:expan
47e0: 64 20 22 59 45 53 22 0a 09 09 23 3a 74 69 74 6c d "YES"...#:titl
47f0: 65 20 22 53 45 54 20 57 41 49 56 45 52 22 0a 09 e "SET WAIVER"..
4800: 09 28 69 75 70 3a 76 62 6f 78 20 3b 20 23 3a 65 .(iup:vbox ; #:e
4810: 78 70 61 6e 64 20 22 59 45 53 22 0a 09 09 20 28 xpand "YES"... (
4820: 69 75 70 3a 6c 61 62 65 6c 20 28 63 6f 6e 63 20 iup:label (conc
4830: 22 45 6e 74 65 72 20 6a 75 73 74 69 66 69 63 61 "Enter justifica
4840: 74 69 6f 6e 20 66 6f 72 20 77 61 69 76 69 6e 67 tion for waiving
4850: 20 74 65 73 74 20 22 0a 09 09 09 09 20 20 28 64 test "..... (d
4860: 62 3a 74 65 73 74 2d 67 65 74 2d 74 65 73 74 6e b:test-get-testn
4870: 61 6d 65 20 74 65 73 74 64 61 74 29 0a 09 09 09 ame testdat)....
4880: 09 20 20 28 69 66 20 28 65 71 75 61 6c 3f 20 28 . (if (equal? (
4890: 64 62 3a 74 65 73 74 2d 67 65 74 2d 69 74 65 6d db:test-get-item
48a0: 2d 70 61 74 68 20 74 65 73 74 64 61 74 29 20 22 -path testdat) "
48b0: 22 29 20 0a 09 09 09 09 20 20 20 20 20 20 22 22 ") ..... ""
48c0: 0a 09 09 09 09 20 20 20 20 20 20 28 63 6f 6e 63 ..... (conc
48d0: 20 22 2f 22 20 28 64 62 3a 74 65 73 74 2d 67 65 "/" (db:test-ge
48e0: 74 2d 69 74 65 6d 2d 70 61 74 68 20 74 65 73 74 t-item-path test
48f0: 64 61 74 29 29 29 29 29 0a 09 09 20 77 6d 65 73 dat)))))... wmes
4900: 67 20 3b 3b 20 74 68 65 20 69 6e 66 6f 72 6d 61 g ;; the informa
4910: 74 69 6f 6e 61 6c 20 6d 73 67 20 6f 6e 20 77 68 tional msg on wh
4920: 65 74 68 65 72 20 69 74 20 6d 61 74 63 68 65 73 ether it matches
4930: 0a 09 09 20 63 6f 6d 6e 74 0a 09 09 20 28 69 75 ... comnt... (iu
4940: 70 3a 68 62 6f 78 0a 09 09 20 20 28 69 75 70 3a p:hbox... (iup:
4950: 62 75 74 74 6f 6e 20 22 41 70 70 6c 79 20 61 6e button "Apply an
4960: 64 20 43 6c 6f 73 65 20 22 0a 09 09 09 20 20 20 d Close "....
4970: 20 20 20 23 3a 65 78 70 61 6e 64 20 22 48 4f 52 #:expand "HOR
4980: 49 5a 4f 4e 54 41 4c 22 0a 09 09 09 20 20 20 20 IZONTAL"....
4990: 20 20 23 3a 61 63 74 69 6f 6e 20 28 6c 61 6d 62 #:action (lamb
49a0: 64 61 20 28 6f 62 6a 29 0a 09 09 09 09 09 20 28 da (obj)...... (
49b0: 6c 65 74 20 28 28 63 6f 6d 6d 65 6e 74 20 28 69 let ((comment (i
49c0: 75 70 3a 61 74 74 72 69 62 75 74 65 20 63 6f 6d up:attribute com
49d0: 6e 74 20 22 56 41 4c 55 45 22 29 29 0a 09 09 09 nt "VALUE"))....
49e0: 09 09 20 20 20 20 20 20 20 28 74 65 73 74 2d 69 .. (test-i
49f0: 64 20 28 64 62 3a 74 65 73 74 2d 67 65 74 2d 69 d (db:test-get-i
4a00: 64 20 74 65 73 74 64 61 74 29 29 29 0a 09 09 09 d testdat)))....
4a10: 09 09 20 20 20 28 69 66 20 28 6f 72 20 28 6e 6f .. (if (or (no
4a20: 74 20 77 70 61 74 74 29 0a 09 09 09 09 09 09 20 t wpatt).......
4a30: 20 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 (string-match
4a40: 77 72 65 67 78 20 63 6f 6d 6d 65 6e 74 29 29 0a wregx comment)).
4a50: 09 09 09 09 09 20 20 20 20 20 20 20 28 62 65 67 ..... (beg
4a60: 69 6e 0a 09 09 09 09 09 09 20 3b 3b 20 28 72 6d in....... ;; (rm
4a70: 74 3a 74 65 73 74 2d 73 65 74 2d 73 74 61 74 65 t:test-set-state
4a80: 2d 73 74 61 74 75 73 2d 62 79 2d 69 64 20 72 75 -status-by-id ru
4a90: 6e 2d 69 64 20 74 65 73 74 2d 69 64 20 23 66 20 n-id test-id #f
4aa0: 22 57 41 49 56 45 44 22 20 63 6f 6d 6d 65 6e 74 "WAIVED" comment
4ab0: 29 0a 09 09 09 09 09 09 20 28 72 6d 74 3a 74 65 )....... (rmt:te
4ac0: 73 74 2d 73 65 74 2d 73 74 61 74 65 2d 73 74 61 st-set-state-sta
4ad0: 74 75 73 20 72 75 6e 2d 69 64 20 74 65 73 74 2d tus run-id test-
4ae0: 69 64 20 23 66 20 22 57 41 49 56 45 44 22 20 63 id #f "WAIVED" c
4af0: 6f 6d 6d 65 6e 74 29 0a 09 09 09 09 09 09 20 28 omment)....... (
4b00: 64 62 3a 74 65 73 74 2d 73 65 74 2d 73 74 61 74 db:test-set-stat
4b10: 75 73 21 20 74 65 73 74 64 61 74 20 22 57 41 49 us! testdat "WAI
4b20: 56 45 44 22 29 0a 09 09 09 09 09 09 20 28 63 6d VED")....... (cm
4b30: 74 63 6d 64 20 63 6f 6d 6d 65 6e 74 29 0a 09 09 tcmd comment)...
4b40: 09 09 09 09 20 28 69 75 70 3a 64 65 73 74 72 6f .... (iup:destro
4b50: 79 21 20 64 6c 6f 67 29 29 29 29 29 29 0a 09 09 y! dlog))))))...
4b60: 20 20 28 69 75 70 3a 62 75 74 74 6f 6e 20 22 43 (iup:button "C
4b70: 61 6e 63 65 6c 22 0a 09 09 09 20 20 20 20 20 20 ancel"....
4b80: 23 3a 65 78 70 61 6e 64 20 22 48 4f 52 49 5a 4f #:expand "HORIZO
4b90: 4e 54 41 4c 22 20 0a 09 09 09 20 20 20 20 20 20 NTAL" ....
4ba0: 23 3a 61 63 74 69 6f 6e 20 28 6c 61 6d 62 64 61 #:action (lambda
4bb0: 20 28 6f 62 6a 29 0a 09 09 09 09 09 20 28 69 75 (obj)...... (iu
4bc0: 70 3a 64 65 73 74 72 6f 79 21 20 64 6c 6f 67 29 p:destroy! dlog)
4bd0: 29 29 29 29 29 29 0a 20 20 20 20 64 6c 6f 67 29 )))))). dlog)
4be0: 29 0a 0a 0a 3b 3b 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d )...;;==========
4bf0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
4c00: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
4c10: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
4c20: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 3b 3b 0a ============.;;.
4c30: 3b 3b 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ;;==============
4c40: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
4c50: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
4c60: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
4c70: 3d 3d 3d 3d 3d 3d 3d 3d 0a 28 64 65 66 69 6e 65 ========.(define
4c80: 20 28 64 61 73 68 62 6f 61 72 64 2d 74 65 73 74 (dashboard-test
4c90: 73 3a 65 78 61 6d 69 6e 65 2d 74 65 73 74 20 72 s:examine-test r
4ca0: 75 6e 2d 69 64 20 74 65 73 74 2d 69 64 29 20 3b un-id test-id) ;
4cb0: 3b 20 72 75 6e 2d 69 64 20 72 75 6e 2d 6b 65 79 ; run-id run-key
4cc0: 20 6f 72 69 67 74 65 73 74 29 0a 20 20 28 6c 65 origtest). (le
4cd0: 74 2a 20 28 28 64 62 2d 70 61 74 68 20 20 20 20 t* ((db-path
4ce0: 20 20 20 28 64 62 3a 64 62 66 69 6c 65 2d 70 61 (db:dbfile-pa
4cf0: 74 68 29 29 20 3b 3b 20 28 63 6f 6e 63 20 28 63 th)) ;; (conc (c
4d00: 6f 6e 66 69 67 66 3a 6c 6f 6f 6b 75 70 20 2a 63 onfigf:lookup *c
4d10: 6f 6e 66 69 67 64 61 74 2a 20 22 73 65 74 75 70 onfigdat* "setup
4d20: 22 20 22 6c 69 6e 6b 74 72 65 65 22 29 20 22 2f " "linktree") "/
4d30: 64 62 2f 22 20 72 75 6e 2d 69 64 20 22 2e 64 62 db/" run-id ".db
4d40: 22 29 29 0a 09 20 28 64 62 73 74 72 75 63 74 20 ")).. (dbstruct
4d50: 20 20 20 20 20 23 66 29 20 3b 3b 20 4e 4f 54 20 #f) ;; NOT
4d60: 41 43 54 55 41 4c 4c 59 20 55 53 45 44 20 28 64 ACTUALLY USED (d
4d70: 62 3a 73 65 74 75 70 29 29 20 3b 3b 20 28 6d 61 b:setup)) ;; (ma
4d80: 6b 65 2d 64 62 72 3a 64 62 73 74 72 75 63 74 20 ke-dbr:dbstruct
4d90: 70 61 74 68 3a 20 20 28 64 62 3a 64 62 66 69 6c path: (db:dbfil
4da0: 65 2d 70 61 74 68 20 23 66 29 20 3b 3b 20 28 63 e-path #f) ;; (c
4db0: 6f 6e 66 69 67 66 3a 6c 6f 6f 6b 75 70 20 2a 63 onfigf:lookup *c
4dc0: 6f 6e 66 69 67 64 61 74 2a 20 22 73 65 74 75 70 onfigdat* "setup
4dd0: 22 20 22 6c 69 6e 6b 74 72 65 65 22 29 20 0a 09 " "linktree") ..
4de0: 09 09 20 20 20 20 3b 3b 09 09 20 20 20 6c 6f 63 .. ;;.. loc
4df0: 61 6c 3a 20 23 74 29 29 0a 09 20 28 74 65 73 74 al: #t)).. (test
4e00: 64 61 74 20 20 20 20 20 20 20 20 28 72 6d 74 3a dat (rmt:
4e10: 67 65 74 2d 74 65 73 74 2d 69 6e 66 6f 2d 62 79 get-test-info-by
4e20: 2d 69 64 20 72 75 6e 2d 69 64 20 74 65 73 74 2d -id run-id test-
4e30: 69 64 29 29 20 3b 3b 20 28 64 62 3a 67 65 74 2d id)) ;; (db:get-
4e40: 74 65 73 74 2d 69 6e 66 6f 2d 62 79 2d 69 64 20 test-info-by-id
4e50: 64 62 73 74 72 75 63 74 20 72 75 6e 2d 69 64 20 dbstruct run-id
4e60: 74 65 73 74 2d 69 64 29 29 0a 09 20 28 64 62 2d test-id)).. (db-
4e70: 6d 6f 64 2d 74 69 6d 65 20 20 20 30 29 20 3b 3b mod-time 0) ;;
4e80: 20 28 66 69 6c 65 2d 6d 6f 64 69 66 69 63 61 74 (file-modificat
4e90: 69 6f 6e 2d 74 69 6d 65 20 64 62 2d 70 61 74 68 ion-time db-path
4ea0: 29 29 0a 09 20 28 6c 61 73 74 2d 75 70 64 61 74 )).. (last-updat
4eb0: 65 20 20 20 30 29 20 3b 3b 20 28 63 75 72 72 65 e 0) ;; (curre
4ec0: 6e 74 2d 73 65 63 6f 6e 64 73 29 29 0a 09 20 28 nt-seconds)).. (
4ed0: 72 65 71 75 65 73 74 2d 75 70 64 61 74 65 20 23 request-update #
4ee0: 74 29 29 0a 20 20 20 20 28 69 66 20 28 6e 6f 74 t)). (if (not
4ef0: 20 74 65 73 74 64 61 74 29 0a 09 28 62 65 67 69 testdat)..(begi
4f00: 6e 0a 09 20 20 28 64 65 62 75 67 3a 70 72 69 6e n.. (debug:prin
4f10: 74 20 32 20 2a 64 65 66 61 75 6c 74 2d 6c 6f 67 t 2 *default-log
4f20: 2d 70 6f 72 74 2a 20 22 45 52 52 4f 52 3a 20 4e -port* "ERROR: N
4f30: 6f 20 74 65 73 74 20 64 61 74 61 20 66 6f 75 6e o test data foun
4f40: 64 20 66 6f 72 20 74 65 73 74 20 22 20 74 65 73 d for test " tes
4f50: 74 2d 69 64 20 22 2c 20 65 78 69 74 69 6e 67 22 t-id ", exiting"
4f60: 29 0a 09 20 20 28 65 78 69 74 20 31 29 29 0a 09 ).. (exit 1))..
4f70: 28 6c 65 74 2a 20 28 3b 3b 20 28 72 75 6e 2d 69 (let* (;; (run-i
4f80: 64 20 20 20 20 20 20 20 20 28 69 66 20 74 65 73 d (if tes
4f90: 74 64 61 74 20 28 64 62 3a 74 65 73 74 2d 67 65 tdat (db:test-ge
4fa0: 74 2d 72 75 6e 5f 69 64 20 74 65 73 74 64 61 74 t-run_id testdat
4fb0: 29 20 23 66 29 29 0a 09 20 20 20 20 20 20 20 28 ) #f)).. (
4fc0: 74 65 73 74 2d 72 65 67 69 73 74 72 79 20 28 74 test-registry (t
4fd0: 65 73 74 73 3a 67 65 74 2d 61 6c 6c 29 29 0a 09 ests:get-all))..
4fe0: 20 20 20 20 20 20 20 28 6b 65 79 64 61 74 20 20 (keydat
4ff0: 20 20 20 20 20 20 28 69 66 20 74 65 73 74 64 61 (if testda
5000: 74 20 28 72 6d 74 3a 67 65 74 2d 6b 65 79 2d 76 t (rmt:get-key-v
5010: 61 6c 2d 70 61 69 72 73 20 72 75 6e 2d 69 64 29 al-pairs run-id)
5020: 20 23 66 29 29 0a 09 20 20 20 20 20 20 20 28 72 #f)).. (r
5030: 75 6e 64 61 74 20 20 20 20 20 20 20 20 28 69 66 undat (if
5040: 20 74 65 73 74 64 61 74 20 28 72 6d 74 3a 67 65 testdat (rmt:ge
5050: 74 2d 72 75 6e 2d 69 6e 66 6f 20 72 75 6e 2d 69 t-run-info run-i
5060: 64 29 20 23 66 29 29 0a 09 20 20 20 20 20 20 20 d) #f))..
5070: 28 72 75 6e 6e 61 6d 65 20 20 20 20 20 20 20 28 (runname (
5080: 69 66 20 74 65 73 74 64 61 74 20 28 64 62 3a 67 if testdat (db:g
5090: 65 74 2d 76 61 6c 75 65 2d 62 79 2d 68 65 61 64 et-value-by-head
50a0: 65 72 20 28 64 62 3a 67 65 74 2d 72 6f 77 73 20 er (db:get-rows
50b0: 72 75 6e 64 61 74 29 0a 09 09 09 09 09 09 09 09 rundat).........
50c0: 20 20 28 64 62 3a 67 65 74 2d 68 65 61 64 65 72 (db:get-header
50d0: 20 72 75 6e 64 61 74 29 0a 09 09 09 09 09 09 09 rundat)........
50e0: 09 20 20 22 72 75 6e 6e 61 6d 65 22 29 20 23 66 . "runname") #f
50f0: 29 29 0a 09 20 20 20 20 20 20 20 3b 3b 20 28 74 )).. ;; (t
5100: 64 62 20 20 20 20 20 20 20 20 20 20 20 28 74 64 db (td
5110: 62 3a 6f 70 65 6e 2d 74 65 73 74 2d 64 62 2d 62 b:open-test-db-b
5120: 79 2d 74 65 73 74 2d 69 64 2d 6c 6f 63 61 6c 20 y-test-id-local
5130: 64 62 73 74 72 75 63 74 20 72 75 6e 2d 69 64 20 dbstruct run-id
5140: 74 65 73 74 2d 69 64 29 29 0a 09 20 20 20 20 20 test-id))..
5150: 20 20 3b 3b 20 54 68 65 73 65 20 6e 65 78 74 20 ;; These next
5160: 74 77 6f 20 61 72 65 20 69 6e 74 65 6e 74 69 6f two are intentio
5170: 6e 61 6c 20 62 61 64 20 76 61 6c 75 65 73 20 74 nal bad values t
5180: 6f 20 65 6e 73 75 72 65 20 65 72 72 6f 72 73 20 o ensure errors
5190: 69 66 20 74 68 65 79 20 73 68 6f 75 6c 64 20 6e if they should n
51a0: 6f 74 0a 09 20 20 20 20 20 20 20 3b 3b 20 67 65 ot.. ;; ge
51b0: 74 20 66 69 6c 6c 65 64 20 69 6e 20 70 72 6f 70 t filled in prop
51c0: 65 72 6c 79 2e 0a 09 20 20 20 20 20 20 20 28 6c erly... (l
51d0: 6f 67 66 69 6c 65 20 20 20 20 20 20 20 22 2f 74 ogfile "/t
51e0: 68 69 73 2f 64 69 72 2f 62 65 74 74 65 72 2f 6e his/dir/better/n
51f0: 6f 74 2f 65 78 69 73 74 22 29 0a 09 20 20 20 20 ot/exist")..
5200: 20 20 20 28 72 75 6e 64 69 72 20 20 20 20 20 20 (rundir
5210: 20 20 28 69 66 20 74 65 73 74 64 61 74 20 0a 09 (if testdat ..
5220: 09 09 09 20 20 28 64 62 3a 74 65 73 74 2d 67 65 ... (db:test-ge
5230: 74 2d 72 75 6e 64 69 72 20 74 65 73 74 64 61 74 t-rundir testdat
5240: 29 0a 09 09 09 09 20 20 6c 6f 67 66 69 6c 65 29 )..... logfile)
5250: 29 0a 09 20 20 20 20 20 20 20 3b 3b 20 28 74 65 ).. ;; (te
5260: 73 74 64 61 74 2d 70 61 74 68 20 20 28 63 6f 6e stdat-path (con
5270: 63 20 72 75 6e 64 69 72 20 22 2f 74 65 73 74 64 c rundir "/testd
5280: 61 74 2e 64 62 22 29 29 20 3b 3b 20 74 68 69 73 at.db")) ;; this
5290: 20 67 65 74 73 20 72 65 63 61 6c 63 75 6c 61 74 gets recalculat
52a0: 65 64 20 75 6e 74 69 6c 20 66 6f 75 6e 64 20 0a ed until found .
52b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 (
52c0: 61 75 67 6d 65 6e 74 2d 74 65 73 74 73 74 65 70 augment-teststep
52d0: 73 20 28 6c 61 6d 62 64 61 20 28 69 6e 6c 6f 76 s (lambda (inlov
52e0: 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ).
52f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
5300: 20 20 20 20 20 20 28 6d 61 70 0a 20 20 20 20 20 (map.
5310: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
5320: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
5330: 28 6c 61 6d 62 64 61 20 28 69 6e 76 65 63 29 0a (lambda (invec).
5340: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
5350: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
5360: 20 20 20 20 20 20 20 28 6c 69 73 74 2d 3e 76 65 (list->ve
5370: 63 74 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 ctor.
5380: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
5390: 20 20 20 20 20 20 20 20 20 20 20 20 20 60 28 0a `(.
53a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
53b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
53c0: 20 20 20 20 20 20 20 20 20 20 2c 40 28 72 65 76 ,@(rev
53d0: 65 72 73 65 20 28 63 64 72 20 28 72 65 76 65 72 erse (cdr (rever
53e0: 73 65 20 28 76 65 63 74 6f 72 2d 3e 6c 69 73 74 se (vector->list
53f0: 20 69 6e 76 65 63 29 29 29 29 0a 20 20 20 20 20 invec)))).
5400: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
5410: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
5420: 20 20 20 20 20 22 72 65 72 75 6e 20 74 68 69 73 "rerun this
5430: 20 73 74 65 70 22 20 22 72 65 73 74 61 72 74 20 step" "restart
5440: 66 72 6f 6d 20 68 65 72 65 22 20 29 29 29 0a 20 from here" ))).
5450: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
5460: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
5470: 20 20 20 20 69 6e 6c 6f 76 29 29 29 0a 09 20 20 inlov)))..
5480: 20 20 20 20 20 28 74 65 73 74 73 74 65 70 73 20 (teststeps
5490: 20 20 20 20 28 69 66 20 74 65 73 74 64 61 74 20 (if testdat
54a0: 28 61 75 67 6d 65 6e 74 2d 74 65 73 74 73 74 65 (augment-testste
54b0: 70 73 20 28 74 65 73 74 73 3a 67 65 74 2d 63 6f ps (tests:get-co
54c0: 6d 70 72 65 73 73 65 64 2d 73 74 65 70 73 20 72 mpressed-steps r
54d0: 75 6e 2d 69 64 20 74 65 73 74 2d 69 64 29 29 20 un-id test-id))
54e0: 27 28 29 29 29 0a 09 20 20 20 20 20 20 20 28 74 '())).. (t
54f0: 65 73 74 66 75 6c 6c 6e 61 6d 65 20 20 28 69 66 estfullname (if
5500: 20 74 65 73 74 64 61 74 20 28 64 62 3a 74 65 73 testdat (db:tes
5510: 74 2d 67 65 74 2d 66 75 6c 6c 6e 61 6d 65 20 74 t-get-fullname t
5520: 65 73 74 64 61 74 29 20 22 47 61 74 68 65 72 69 estdat) "Gatheri
5530: 6e 67 20 64 61 74 61 20 2e 2e 2e 22 29 29 0a 09 ng data ..."))..
5540: 20 20 20 20 20 20 20 28 74 65 73 74 6e 61 6d 65 (testname
5550: 20 20 20 20 20 20 28 69 66 20 74 65 73 74 64 61 (if testda
5560: 74 20 28 64 62 3a 74 65 73 74 2d 67 65 74 2d 74 t (db:test-get-t
5570: 65 73 74 6e 61 6d 65 20 74 65 73 74 64 61 74 29 estname testdat)
5580: 20 22 6e 2f 61 22 29 29 0a 09 20 20 20 20 20 20 "n/a"))..
5590: 20 3b 3b 20 28 74 65 73 74 73 3a 67 65 74 2d 74 ;; (tests:get-t
55a0: 65 73 74 63 6f 6e 66 69 67 20 74 65 73 74 64 61 estconfig testda
55b0: 74 20 74 65 73 74 6e 61 6d 65 20 27 72 65 74 75 t testname 'retu
55c0: 72 6e 2d 70 72 6f 63 73 29 29 0a 09 20 20 20 20 rn-procs))..
55d0: 20 20 20 28 74 65 73 74 6d 65 74 61 20 20 20 20 (testmeta
55e0: 20 20 28 69 66 20 74 65 73 74 64 61 74 20 0a 09 (if testdat ..
55f0: 09 09 09 20 20 28 6c 65 74 20 28 28 74 6d 20 28 ... (let ((tm (
5600: 72 6d 74 3a 74 65 73 74 6d 65 74 61 2d 67 65 74 rmt:testmeta-get
5610: 2d 72 65 63 6f 72 64 20 74 65 73 74 6e 61 6d 65 -record testname
5620: 29 29 29 0a 09 09 09 09 20 20 20 20 28 69 66 20 )))..... (if
5630: 74 6d 20 74 6d 20 28 6d 61 6b 65 2d 64 62 3a 74 tm tm (make-db:t
5640: 65 73 74 6d 65 74 61 29 29 29 0a 09 09 09 09 20 estmeta))).....
5650: 20 28 6d 61 6b 65 2d 64 62 3a 74 65 73 74 6d 65 (make-db:testme
5660: 74 61 29 29 29 0a 0a 09 20 20 20 20 20 20 20 28 ta)))... (
5670: 6b 65 79 73 74 72 69 6e 67 20 20 28 73 74 72 69 keystring (stri
5680: 6e 67 2d 69 6e 74 65 72 73 70 65 72 73 65 20 0a ng-intersperse .
5690: 09 09 09 20 20 20 20 28 6d 61 70 20 28 6c 61 6d ... (map (lam
56a0: 62 64 61 20 28 6b 65 79 76 61 6c 29 0a 09 09 09 bda (keyval)....
56b0: 09 20 20 20 3b 3b 20 28 63 6f 6e 63 20 22 3a 22 . ;; (conc ":"
56c0: 20 28 63 61 72 20 6b 65 79 76 61 6c 29 20 22 20 (car keyval) "
56d0: 22 20 28 63 61 64 72 20 6b 65 79 76 61 6c 29 29 " (cadr keyval))
56e0: 29 0a 09 09 09 09 20 20 20 28 63 61 64 72 20 6b )..... (cadr k
56f0: 65 79 76 61 6c 29 29 0a 09 09 09 09 20 6b 65 79 eyval))..... key
5700: 64 61 74 29 0a 09 09 09 20 20 20 20 22 2f 22 29 dat).... "/")
5710: 29 0a 09 20 20 20 20 20 20 20 28 69 74 65 6d 2d ).. (item-
5720: 70 61 74 68 20 20 28 64 62 3a 74 65 73 74 2d 67 path (db:test-g
5730: 65 74 2d 69 74 65 6d 2d 70 61 74 68 20 74 65 73 et-item-path tes
5740: 74 64 61 74 29 29 0a 09 20 20 20 20 20 20 20 3b tdat)).. ;
5750: 3b 20 74 68 69 73 20 6e 65 78 74 20 62 6c 6f 63 ; this next bloc
5760: 6b 20 77 61 73 20 61 64 64 65 64 20 74 6f 20 66 k was added to f
5770: 69 78 20 61 20 62 75 67 20 77 68 65 72 65 20 76 ix a bug where v
5780: 61 72 69 61 62 6c 65 73 20 77 65 72 65 0a 20 20 ariables were.
5790: 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 ;;
57a0: 6e 65 65 64 65 64 2e 20 52 65 76 69 73 69 74 20 needed. Revisit
57b0: 74 68 69 73 2e 0a 09 20 20 20 20 20 20 20 28 72 this... (r
57c0: 75 6e 63 6f 6e 66 69 67 20 20 28 6c 65 74 20 28 unconfig (let (
57d0: 28 72 75 6e 63 6f 6e 66 69 67 66 20 28 63 6f 6e (runconfigf (con
57e0: 63 20 20 2a 74 6f 70 70 61 74 68 2a 20 22 2f 72 c *toppath* "/r
57f0: 75 6e 63 6f 6e 66 69 67 73 2e 63 6f 6e 66 69 67 unconfigs.config
5800: 22 29 29 29 20 3b 3b 20 6e 6f 20 72 75 73 68 20 "))) ;; no rush
5810: 62 75 74 20 69 74 20 77 6f 75 6c 64 20 62 65 20 but it would be
5820: 67 6f 6f 64 20 74 6f 20 63 6f 6e 76 65 72 74 20 good to convert
5830: 74 68 69 73 20 63 61 6c 6c 20 74 6f 20 75 73 65 this call to use
5840: 20 72 75 6e 63 6f 6e 66 69 67 3a 72 65 61 64 0a runconfig:read.
5850: 09 20 09 09 20 20 20 20 20 28 69 66 20 28 63 6f . .. (if (co
5860: 6d 6d 6f 6e 3a 66 69 6c 65 2d 65 78 69 73 74 73 mmon:file-exists
5870: 3f 20 72 75 6e 63 6f 6e 66 69 67 66 29 0a 09 20 ? runconfigf)..
5880: 09 09 09 20 28 68 61 6e 64 6c 65 2d 65 78 63 65 ... (handle-exce
5890: 70 74 69 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 ptions.
58a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
58b0: 20 20 20 20 20 20 20 20 20 20 65 78 6e 0a 20 20 exn.
58c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
58d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
58e0: 20 23 66 20 20 3b 3b 20 64 6f 20 6e 6f 74 68 69 #f ;; do nothi
58f0: 6e 67 2c 20 6a 75 73 74 20 6b 65 65 70 20 6f 6e ng, just keep on
5900: 20 74 72 75 63 6b 69 6e 67 20 2e 2e 2e 2e 0a 20 trucking .....
5910: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
5920: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
5930: 20 20 28 73 65 74 75 70 2d 65 6e 76 2d 64 65 66 (setup-env-def
5940: 61 75 6c 74 73 20 72 75 6e 63 6f 6e 66 69 67 66 aults runconfigf
5950: 20 72 75 6e 2d 69 64 20 28 6d 61 6b 65 2d 68 61 run-id (make-ha
5960: 73 68 2d 74 61 62 6c 65 29 20 6b 65 79 64 61 74 sh-table) keydat
5970: 20 65 6e 76 69 72 6f 6e 2d 70 61 74 74 3a 20 6b environ-patt: k
5980: 65 79 73 74 72 69 6e 67 29 29 0a 09 20 09 09 09 eystring)).. ...
5990: 20 28 6d 61 6b 65 2d 68 61 73 68 2d 74 61 62 6c (make-hash-tabl
59a0: 65 29 29 29 29 0a 09 20 20 20 20 20 20 20 28 74 e)))).. (t
59b0: 65 73 74 63 6f 6e 66 69 67 20 20 20 20 28 62 65 estconfig (be
59c0: 67 69 6e 0a 09 09 09 09 3b 3b 20 28 72 75 6e 73 gin.....;; (runs
59d0: 3a 73 65 74 2d 6d 65 67 61 74 65 73 74 2d 65 6e :set-megatest-en
59e0: 76 2d 76 61 72 73 20 72 75 6e 2d 69 64 20 69 6e v-vars run-id in
59f0: 72 75 6e 6e 61 6d 65 3a 20 72 75 6e 6e 61 6d 65 runname: runname
5a00: 20 74 65 73 74 6e 61 6d 65 3a 20 74 65 73 74 2d testname: test-
5a10: 6e 61 6d 65 20 69 74 65 6d 70 61 74 68 3a 20 69 name itempath: i
5a20: 74 65 6d 2d 70 61 74 68 29 0a 09 09 09 09 28 72 tem-path).....(r
5a30: 75 6e 73 3a 73 65 74 2d 6d 65 67 61 74 65 73 74 uns:set-megatest
5a40: 2d 65 6e 76 2d 76 61 72 73 20 72 75 6e 2d 69 64 -env-vars run-id
5a50: 20 69 6e 6b 65 79 76 61 6c 73 3a 20 6b 65 79 64 inkeyvals: keyd
5a60: 61 74 20 69 6e 72 75 6e 6e 61 6d 65 3a 20 72 75 at inrunname: ru
5a70: 6e 6e 61 6d 65 20 69 6e 74 61 72 67 65 74 3a 20 nname intarget:
5a80: 6b 65 79 73 74 72 69 6e 67 20 74 65 73 74 6e 61 keystring testna
5a90: 6d 65 3a 20 74 65 73 74 6e 61 6d 65 20 69 74 65 me: testname ite
5aa0: 6d 70 61 74 68 3a 20 69 74 65 6d 2d 70 61 74 68 mpath: item-path
5ab0: 29 20 3b 3b 20 74 68 65 73 65 20 6d 61 79 20 62 ) ;; these may b
5ac0: 65 20 6e 65 65 64 65 64 20 62 79 20 74 68 65 20 e needed by the
5ad0: 6c 61 75 6e 63 68 69 6e 67 20 70 72 6f 63 65 73 launching proces
5ae0: 73 0a 09 09 09 09 28 68 61 6e 64 6c 65 2d 65 78 s.....(handle-ex
5af0: 63 65 70 74 69 6f 6e 73 0a 09 09 09 09 20 65 78 ceptions..... ex
5b00: 6e 20 20 3b 3b 20 4e 4f 54 45 3a 20 49 27 76 65 n ;; NOTE: I've
5b10: 20 6e 6f 20 69 64 65 61 20 77 68 79 20 74 68 69 no idea why thi
5b20: 73 20 77 61 73 20 77 72 69 74 74 65 6e 20 74 68 s was written th
5b30: 69 73 20 77 61 79 2e 20 52 65 73 65 61 72 63 68 is way. Research
5b40: 2c 20 73 74 75 64 79 20 61 6e 64 20 66 69 78 20 , study and fix
5b50: 6e 65 65 64 65 64 21 0a 09 09 09 09 20 28 74 65 needed!..... (te
5b60: 73 74 73 3a 67 65 74 2d 74 65 73 74 63 6f 6e 66 sts:get-testconf
5b70: 69 67 20 28 64 62 3a 74 65 73 74 2d 67 65 74 2d ig (db:test-get-
5b80: 74 65 73 74 6e 61 6d 65 20 74 65 73 74 64 61 74 testname testdat
5b90: 29 20 28 64 62 3a 74 65 73 74 2d 67 65 74 2d 69 ) (db:test-get-i
5ba0: 74 65 6d 2d 70 61 74 68 20 74 65 73 74 64 61 74 tem-path testdat
5bb0: 29 20 74 65 73 74 2d 72 65 67 69 73 74 72 79 20 ) test-registry
5bc0: 23 66 20 61 6c 6c 6f 77 2d 77 72 69 74 65 2d 63 #f allow-write-c
5bd0: 61 63 68 65 3a 20 23 66 29 0a 09 09 09 09 20 28 ache: #f)..... (
5be0: 74 65 73 74 73 3a 67 65 74 2d 74 65 73 74 63 6f tests:get-testco
5bf0: 6e 66 69 67 20 28 64 62 3a 74 65 73 74 2d 67 65 nfig (db:test-ge
5c00: 74 2d 74 65 73 74 6e 61 6d 65 20 74 65 73 74 64 t-testname testd
5c10: 61 74 29 20 69 74 65 6d 2d 70 61 74 68 20 74 65 at) item-path te
5c20: 73 74 2d 72 65 67 69 73 74 72 79 20 23 74 20 61 st-registry #t a
5c30: 6c 6c 6f 77 2d 77 72 69 74 65 2d 63 61 63 68 65 llow-write-cache
5c40: 3a 20 23 66 29 29 29 29 0a 09 20 20 20 20 20 20 : #f))))..
5c50: 20 28 76 69 65 77 6c 6f 67 20 20 20 20 28 6c 61 (viewlog (la
5c60: 6d 62 64 61 20 28 78 29 0a 09 09 09 20 20 20 20 mbda (x)....
5c70: 20 28 69 66 20 28 63 6f 6d 6d 6f 6e 3a 66 69 6c (if (common:fil
5c80: 65 2d 65 78 69 73 74 73 3f 20 6c 6f 67 66 69 6c e-exists? logfil
5c90: 65 29 0a 09 09 09 09 09 3b 28 73 79 73 74 65 6d e)......;(system
5ca0: 20 28 63 6f 6e 63 20 22 66 69 72 65 66 6f 78 20 (conc "firefox
5cb0: 22 20 6c 6f 67 66 69 6c 65 20 22 26 22 29 29 0a " logfile "&")).
5cc0: 09 09 09 09 20 28 64 63 6f 6d 6d 6f 6e 3a 72 75 .... (dcommon:ru
5cd0: 6e 2d 68 74 6d 6c 2d 76 69 65 77 65 72 20 6c 6f n-html-viewer lo
5ce0: 67 66 69 6c 65 29 0a 09 09 09 09 20 28 6d 65 73 gfile)..... (mes
5cf0: 73 61 67 65 2d 77 69 6e 64 6f 77 20 28 63 6f 6e sage-window (con
5d00: 63 20 22 46 69 6c 65 20 22 20 6c 6f 67 66 69 6c c "File " logfil
5d10: 65 20 22 20 6e 6f 74 20 66 6f 75 6e 64 22 29 29 e " not found"))
5d20: 29 29 29 0a 09 20 20 20 20 20 20 20 28 76 69 65 ))).. (vie
5d30: 77 2d 61 2d 6c 6f 67 20 28 6c 61 6d 62 64 61 20 w-a-log (lambda
5d40: 28 6c 66 69 6c 65 29 20 0a 09 09 09 20 20 20 20 (lfile) ....
5d50: 20 28 6c 65 74 20 28 28 6c 66 69 6c 65 6e 61 6d (let ((lfilenam
5d60: 65 20 28 63 6f 6e 63 20 72 75 6e 64 69 72 20 22 e (conc rundir "
5d70: 2f 22 20 6c 66 69 6c 65 29 29 29 0a 09 09 09 20 /" lfile)))....
5d80: 20 20 20 20 20 20 3b 3b 20 28 70 72 69 6e 74 20 ;; (print
5d90: 22 6c 66 69 6c 65 6e 61 6d 65 3a 20 22 20 6c 66 "lfilename: " lf
5da0: 69 6c 65 6e 61 6d 65 29 0a 09 09 09 20 20 20 20 ilename)....
5db0: 20 20 20 28 69 66 20 28 63 6f 6d 6d 6f 6e 3a 66 (if (common:f
5dc0: 69 6c 65 2d 65 78 69 73 74 73 3f 20 6c 66 69 6c ile-exists? lfil
5dd0: 65 6e 61 6d 65 29 0a 09 09 09 09 09 3b 28 73 79 ename)......;(sy
5de0: 73 74 65 6d 20 28 63 6f 6e 63 20 22 66 69 72 65 stem (conc "fire
5df0: 66 6f 78 20 22 20 6c 6f 67 66 69 6c 65 20 22 26 fox " logfile "&
5e00: 22 29 29 0a 09 09 09 09 20 20 20 28 64 63 6f 6d "))..... (dcom
5e10: 6d 6f 6e 3a 72 75 6e 2d 68 74 6d 6c 2d 76 69 65 mon:run-html-vie
5e20: 77 65 72 20 6c 66 69 6c 65 6e 61 6d 65 29 0a 09 wer lfilename)..
5e30: 09 09 09 20 20 20 28 6d 65 73 73 61 67 65 2d 77 ... (message-w
5e40: 69 6e 64 6f 77 20 28 63 6f 6e 63 20 22 46 69 6c indow (conc "Fil
5e50: 65 20 22 20 6c 66 69 6c 65 6e 61 6d 65 20 22 20 e " lfilename "
5e60: 6e 6f 74 20 66 6f 75 6e 64 22 29 29 29 29 29 29 not found"))))))
5e70: 0a 09 20 20 20 20 20 20 20 28 78 74 65 72 6d 20 .. (xterm
5e80: 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 78 29 (lambda (x)
5e90: 0a 09 09 09 20 20 20 20 20 28 69 66 20 28 64 69 .... (if (di
5ea0: 72 65 63 74 6f 72 79 2d 65 78 69 73 74 73 3f 20 rectory-exists?
5eb0: 72 75 6e 64 69 72 29 0a 09 09 09 09 20 28 6c 65 rundir)..... (le
5ec0: 74 20 28 28 73 68 65 6c 6c 20 28 69 66 20 28 67 t ((shell (if (g
5ed0: 65 74 2d 65 6e 76 69 72 6f 6e 6d 65 6e 74 2d 76 et-environment-v
5ee0: 61 72 69 61 62 6c 65 20 22 53 48 45 4c 4c 22 29 ariable "SHELL")
5ef0: 20 0a 09 09 09 09 09 09 20 20 28 63 6f 6e 63 20 ....... (conc
5f00: 22 2d 65 20 22 20 28 67 65 74 2d 65 6e 76 69 72 "-e " (get-envir
5f10: 6f 6e 6d 65 6e 74 2d 76 61 72 69 61 62 6c 65 20 onment-variable
5f20: 22 53 48 45 4c 4c 22 29 29 0a 09 09 09 09 09 09 "SHELL")).......
5f30: 20 20 22 22 29 29 29 0a 09 09 09 09 20 20 20 28 "")))..... (
5f40: 63 6f 6d 6d 6f 6e 3a 77 69 74 68 6f 75 74 2d 76 common:without-v
5f50: 61 72 73 0a 09 09 09 09 20 20 20 20 28 63 6f 6e ars..... (con
5f60: 63 20 22 63 64 20 22 20 72 75 6e 64 69 72 20 0a c "cd " rundir .
5f70: 09 09 09 09 09 20 20 22 3b 6d 74 5f 78 74 65 72 ..... ";mt_xter
5f80: 6d 20 2d 54 20 5c 22 22 20 28 73 74 72 69 6e 67 m -T \"" (string
5f90: 2d 74 72 61 6e 73 6c 61 74 65 20 74 65 73 74 66 -translate testf
5fa0: 75 6c 6c 6e 61 6d 65 20 22 28 29 22 20 22 20 20 ullname "()" "
5fb0: 22 29 20 22 5c 22 20 22 20 73 68 65 6c 6c 20 22 ") "\" " shell "
5fc0: 26 22 29 0a 09 09 09 09 20 20 20 20 22 4d 54 5f &")..... "MT_
5fd0: 2e 2a 22 29 29 0a 09 09 09 09 20 28 6d 65 73 73 .*"))..... (mess
5fe0: 61 67 65 2d 77 69 6e 64 6f 77 20 20 28 63 6f 6e age-window (con
5ff0: 63 20 22 44 69 72 65 63 74 6f 72 79 20 22 20 72 c "Directory " r
6000: 75 6e 64 69 72 20 22 20 6e 6f 74 20 66 6f 75 6e undir " not foun
6010: 64 22 29 29 29 29 29 0a 09 20 20 20 20 20 20 20 d")))))..
6020: 28 77 69 64 67 65 74 73 20 20 20 20 28 6d 61 6b (widgets (mak
6030: 65 2d 68 61 73 68 2d 74 61 62 6c 65 29 29 0a 09 e-hash-table))..
6040: 20 20 20 20 20 20 20 28 72 65 66 72 65 73 68 64 (refreshd
6050: 61 74 20 28 6c 61 6d 62 64 61 20 28 29 0a 09 09 at (lambda ()...
6060: 09 20 20 20 20 20 28 6c 65 74 2a 20 28 28 63 75 . (let* ((cu
6070: 72 72 2d 6d 6f 64 2d 74 69 6d 65 20 28 66 69 6c rr-mod-time (fil
6080: 65 2d 6d 6f 64 69 66 69 63 61 74 69 6f 6e 2d 74 e-modification-t
6090: 69 6d 65 20 64 62 2d 70 61 74 68 29 29 0a 09 09 ime db-path))...
60a0: 09 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
60b0: 20 20 20 20 20 3b 3b 20 20 20 20 20 28 6d 61 78 ;; (max
60c0: 20 2e 2e 2e 2e 2e 20 28 69 66 20 28 63 6f 6d 6d ..... (if (comm
60d0: 6f 6e 3a 66 69 6c 65 2d 65 78 69 73 74 73 3f 20 on:file-exists?
60e0: 74 65 73 74 64 61 74 2d 70 61 74 68 29 0a 09 09 testdat-path)...
60f0: 09 09 09 09 20 20 20 3b 3b 20 20 20 20 20 20 09 .... ;; .
6100: 20 20 20 20 20 20 28 66 69 6c 65 2d 6d 6f 64 69 (file-modi
6110: 66 69 63 61 74 69 6f 6e 2d 74 69 6d 65 20 74 65 fication-time te
6120: 73 74 64 61 74 2d 70 61 74 68 29 0a 09 09 09 09 stdat-path).....
6130: 09 09 20 20 20 3b 3b 20 20 20 20 20 20 09 20 20 .. ;; .
6140: 20 20 20 20 28 62 65 67 69 6e 0a 09 09 09 09 09 (begin......
6150: 09 20 20 20 3b 3b 20 20 20 20 20 20 09 09 28 73 . ;; ..(s
6160: 65 74 21 20 74 65 73 74 64 61 74 2d 70 61 74 68 et! testdat-path
6170: 20 28 63 6f 6e 63 20 72 75 6e 64 69 72 20 22 2f (conc rundir "/
6180: 74 65 73 74 64 61 74 2e 64 62 22 29 29 0a 09 09 testdat.db"))...
6190: 09 09 09 09 20 20 20 3b 3b 20 20 20 20 20 20 09 .... ;; .
61a0: 09 30 29 29 29 29 0a 09 09 09 09 20 20 20 20 28 .0))))..... (
61b0: 6e 65 65 64 2d 75 70 64 61 74 65 20 20 20 28 6f need-update (o
61c0: 72 20 28 61 6e 64 20 28 3e 3d 20 63 75 72 72 2d r (and (>= curr-
61d0: 6d 6f 64 2d 74 69 6d 65 20 64 62 2d 6d 6f 64 2d mod-time db-mod-
61e0: 74 69 6d 65 29 0a 09 09 09 09 09 09 09 20 20 20 time)........
61f0: 20 28 3e 20 28 63 75 72 72 65 6e 74 2d 6d 69 6c (> (current-mil
6200: 6c 69 73 65 63 6f 6e 64 73 29 28 2b 20 6c 61 73 liseconds)(+ las
6210: 74 2d 75 70 64 61 74 65 20 32 35 30 29 29 29 20 t-update 250)))
6220: 3b 3b 20 65 76 65 72 79 20 68 61 6c 66 20 73 65 ;; every half se
6230: 63 6f 6e 64 73 20 69 66 20 64 62 20 74 6f 75 63 conds if db touc
6240: 68 65 64 0a 09 09 09 09 09 09 20 20 20 20 20 20 hed.......
6250: 20 28 3e 20 28 63 75 72 72 65 6e 74 2d 6d 69 6c (> (current-mil
6260: 6c 69 73 65 63 6f 6e 64 73 29 28 2b 20 6c 61 73 liseconds)(+ las
6270: 74 2d 75 70 64 61 74 65 20 31 30 30 30 30 29 29 t-update 10000))
6280: 20 20 20 20 20 3b 3b 20 66 6f 72 63 65 20 75 70 ;; force up
6290: 64 61 74 65 20 65 76 65 6e 20 31 30 20 73 65 63 date even 10 sec
62a0: 6f 6e 64 73 0a 09 09 09 09 09 09 20 20 20 20 20 onds.......
62b0: 20 20 72 65 71 75 65 73 74 2d 75 70 64 61 74 65 request-update
62c0: 29 29 0a 09 09 09 09 20 20 20 20 28 6e 65 77 74 ))..... (newt
62d0: 65 73 74 64 61 74 20 28 69 66 20 6e 65 65 64 2d estdat (if need-
62e0: 75 70 64 61 74 65 20 0a 09 09 09 09 09 09 20 20 update .......
62f0: 20 20 3b 3b 20 4e 4f 54 45 3a 20 42 55 47 20 48 ;; NOTE: BUG H
6300: 49 44 45 52 2c 20 74 72 79 20 74 6f 20 65 6c 69 IDER, try to eli
6310: 6d 69 6e 61 74 65 20 74 68 69 73 20 65 78 63 65 minate this exce
6320: 70 74 69 6f 6e 20 68 61 6e 64 6c 65 72 0a 09 09 ption handler...
6330: 09 09 09 09 20 20 20 20 28 68 61 6e 64 6c 65 2d .... (handle-
6340: 65 78 63 65 70 74 69 6f 6e 73 0a 09 09 09 09 09 exceptions......
6350: 09 20 20 20 20 20 65 78 6e 20 0a 09 09 09 09 09 . exn ......
6360: 09 20 20 20 20 20 28 64 65 62 75 67 3a 70 72 69 . (debug:pri
6370: 6e 74 2d 69 6e 66 6f 20 30 20 2a 64 65 66 61 75 nt-info 0 *defau
6380: 6c 74 2d 6c 6f 67 2d 70 6f 72 74 2a 20 22 74 65 lt-log-port* "te
6390: 73 74 20 64 62 20 61 63 63 65 73 73 20 69 73 73 st db access iss
63a0: 75 65 20 69 6e 20 65 78 61 6d 69 6e 65 20 74 65 ue in examine te
63b0: 73 74 20 66 6f 72 20 72 75 6e 2d 69 64 20 22 20 st for run-id "
63c0: 72 75 6e 2d 69 64 20 22 2c 20 74 65 73 74 2d 69 run-id ", test-i
63d0: 64 20 22 20 74 65 73 74 2d 69 64 20 22 3a 20 22 d " test-id ": "
63e0: 20 28 28 63 6f 6e 64 69 74 69 6f 6e 2d 70 72 6f ((condition-pro
63f0: 70 65 72 74 79 2d 61 63 63 65 73 73 6f 72 20 27 perty-accessor '
6400: 65 78 6e 20 27 6d 65 73 73 61 67 65 29 20 65 78 exn 'message) ex
6410: 6e 29 29 0a 09 09 09 09 09 09 20 20 20 20 20 28 n))....... (
6420: 72 6d 74 3a 67 65 74 2d 74 65 73 74 2d 69 6e 66 rmt:get-test-inf
6430: 6f 2d 62 79 2d 69 64 20 72 75 6e 2d 69 64 20 74 o-by-id run-id t
6440: 65 73 74 2d 69 64 20 29 29 29 29 29 0a 09 09 09 est-id )))))....
6450: 20 20 20 20 20 20 20 3b 3b 20 28 70 72 69 6e 74 ;; (print
6460: 20 22 49 4e 46 4f 3a 20 6e 65 65 64 2d 75 70 64 "INFO: need-upd
6470: 61 74 65 3d 20 22 20 6e 65 65 64 2d 75 70 64 61 ate= " need-upda
6480: 74 65 20 22 20 63 75 72 72 2d 6d 6f 64 2d 74 69 te " curr-mod-ti
6490: 6d 65 20 3d 20 22 20 63 75 72 72 2d 6d 6f 64 2d me = " curr-mod-
64a0: 74 69 6d 65 29 0a 09 09 09 20 20 20 20 20 20 20 time)....
64b0: 28 63 6f 6e 64 0a 09 09 09 09 28 28 61 6e 64 20 (cond.....((and
64c0: 6e 65 65 64 2d 75 70 64 61 74 65 20 6e 65 77 74 need-update newt
64d0: 65 73 74 64 61 74 29 0a 09 09 09 09 20 28 73 65 estdat)..... (se
64e0: 74 21 20 74 65 73 74 64 61 74 20 6e 65 77 74 65 t! testdat newte
64f0: 73 74 64 61 74 29 0a 09 09 09 09 20 28 73 65 74 stdat)..... (set
6500: 21 20 74 65 73 74 73 74 65 70 73 20 20 20 20 28 ! teststeps (
6510: 61 75 67 6d 65 6e 74 2d 74 65 73 74 73 74 65 70 augment-teststep
6520: 73 20 28 74 65 73 74 73 3a 67 65 74 2d 63 6f 6d s (tests:get-com
6530: 70 72 65 73 73 65 64 2d 73 74 65 70 73 20 72 75 pressed-steps ru
6540: 6e 2d 69 64 20 74 65 73 74 2d 69 64 29 29 29 0a n-id test-id))).
6550: 09 09 09 09 20 28 73 65 74 21 20 6c 6f 67 66 69 .... (set! logfi
6560: 6c 65 20 20 20 20 20 20 28 63 6f 6e 63 20 28 64 le (conc (d
6570: 62 3a 74 65 73 74 2d 67 65 74 2d 72 75 6e 64 69 b:test-get-rundi
6580: 72 20 74 65 73 74 64 61 74 29 20 22 2f 22 20 28 r testdat) "/" (
6590: 64 62 3a 74 65 73 74 2d 67 65 74 2d 66 69 6e 61 db:test-get-fina
65a0: 6c 5f 6c 6f 67 66 20 74 65 73 74 64 61 74 29 29 l_logf testdat))
65b0: 29 0a 09 09 09 09 20 28 73 65 74 21 20 72 75 6e )..... (set! run
65c0: 64 69 72 20 20 20 20 20 20 20 3b 3b 20 28 66 69 dir ;; (fi
65d0: 6c 65 64 62 3a 67 65 74 2d 70 61 74 68 20 2a 66 ledb:get-path *f
65e0: 64 62 2a 20 0a 09 09 09 09 20 20 20 20 20 20 20 db* .....
65f0: 28 64 62 3a 74 65 73 74 2d 67 65 74 2d 72 75 6e (db:test-get-run
6600: 64 69 72 20 74 65 73 74 64 61 74 29 29 20 3b 3b dir testdat)) ;;
6610: 20 29 0a 09 09 09 09 20 28 73 65 74 21 20 74 65 )..... (set! te
6620: 73 74 66 75 6c 6c 6e 61 6d 65 20 28 64 62 3a 74 stfullname (db:t
6630: 65 73 74 2d 67 65 74 2d 66 75 6c 6c 6e 61 6d 65 est-get-fullname
6640: 20 74 65 73 74 64 61 74 29 29 0a 09 09 09 09 20 testdat)).....
6650: 3b 3b 20 28 64 65 62 75 67 3a 70 72 69 6e 74 20 ;; (debug:print
6660: 30 20 2a 64 65 66 61 75 6c 74 2d 6c 6f 67 2d 70 0 *default-log-p
6670: 6f 72 74 2a 20 22 49 4e 46 4f 3a 20 74 65 73 74 ort* "INFO: test
6680: 73 74 65 70 73 3d 22 20 28 69 6e 74 65 72 73 70 steps=" (intersp
6690: 65 72 73 65 20 74 65 73 74 73 74 65 70 73 20 22 erse teststeps "
66a0: 5c 6e 20 20 20 20 22 29 29 0a 09 09 09 09 20 0a \n "))..... .
66b0: 09 09 09 09 20 3b 3b 20 49 20 64 6f 6e 27 74 20 .... ;; I don't
66c0: 73 65 65 20 77 68 79 20 74 68 69 73 20 77 61 73 see why this was
66d0: 20 69 6d 70 6c 65 6d 65 6e 74 65 64 20 74 68 69 implemented thi
66e0: 73 20 77 61 79 2e 20 50 6c 65 61 73 65 20 63 6f s way. Please co
66f0: 6d 6d 65 6e 74 20 69 74 20 2e 2e 2e 0a 09 09 09 mment it .......
6700: 09 20 3b 3b 20 28 69 66 20 28 65 71 3f 20 63 75 . ;; (if (eq? cu
6710: 72 72 2d 6d 6f 64 2d 74 69 6d 65 20 64 62 2d 6d rr-mod-time db-m
6720: 6f 64 2d 74 69 6d 65 29 20 3b 3b 20 64 6f 20 6f od-time) ;; do o
6730: 6e 6c 79 20 6f 6e 63 65 20 69 66 20 73 61 6d 65 nly once if same
6740: 0a 09 09 09 09 20 3b 3b 20 20 20 20 20 28 73 65 ..... ;; (se
6750: 74 21 20 64 62 2d 6d 6f 64 2d 74 69 6d 65 20 28 t! db-mod-time (
6760: 2b 20 63 75 72 72 2d 6d 6f 64 2d 74 69 6d 65 20 + curr-mod-time
6770: 31 29 29 0a 09 09 09 09 20 3b 3b 20 20 20 20 20 1))..... ;;
6780: 28 73 65 74 21 20 64 62 2d 6d 6f 64 2d 74 69 6d (set! db-mod-tim
6790: 65 20 63 75 72 72 2d 6d 6f 64 2d 74 69 6d 65 29 e curr-mod-time)
67a0: 29 0a 0a 09 09 09 09 20 28 69 66 20 28 6e 6f 74 )...... (if (not
67b0: 20 28 65 71 3f 20 63 75 72 72 2d 6d 6f 64 2d 74 (eq? curr-mod-t
67c0: 69 6d 65 20 64 62 2d 6d 6f 64 2d 74 69 6d 65 29 ime db-mod-time)
67d0: 29 0a 09 09 09 09 20 20 20 20 20 28 73 65 74 21 )..... (set!
67e0: 20 64 62 2d 6d 6f 64 2d 74 69 6d 65 20 63 75 72 db-mod-time cur
67f0: 72 2d 6d 6f 64 2d 74 69 6d 65 29 29 0a 09 09 09 r-mod-time))....
6800: 09 20 28 73 65 74 21 20 6c 61 73 74 2d 75 70 64 . (set! last-upd
6810: 61 74 65 20 28 63 75 72 72 65 6e 74 2d 6d 69 6c ate (current-mil
6820: 6c 69 73 65 63 6f 6e 64 73 29 29 0a 09 09 09 09 liseconds)).....
6830: 20 28 73 65 74 21 20 72 65 71 75 65 73 74 2d 75 (set! request-u
6840: 70 64 61 74 65 20 23 66 29 20 3b 3b 20 6d 65 74 pdate #f) ;; met
6850: 20 74 68 65 20 6e 65 65 64 20 2e 2e 2e 0a 09 09 the need ......
6860: 09 09 20 29 0a 09 09 09 09 28 6e 65 65 64 2d 75 .. ).....(need-u
6870: 70 64 61 74 65 20 3b 3b 20 69 66 20 74 68 69 73 pdate ;; if this
6880: 20 77 61 73 20 74 72 75 65 20 61 6e 64 20 79 65 was true and ye
6890: 74 20 74 68 65 72 65 20 69 73 20 6e 6f 20 64 61 t there is no da
68a0: 74 61 20 2e 2e 2e 2e 0a 09 09 09 09 20 28 64 62 ta ......... (db
68b0: 3a 74 65 73 74 2d 73 65 74 2d 74 65 73 74 6e 61 :test-set-testna
68c0: 6d 65 21 20 74 65 73 74 64 61 74 20 22 44 45 41 me! testdat "DEA
68d0: 44 20 4f 52 20 44 45 4c 45 54 45 44 20 54 45 53 D OR DELETED TES
68e0: 54 22 29 29 29 0a 09 09 09 20 20 20 20 20 20 20 T")))....
68f0: 28 69 66 20 6e 65 65 64 2d 75 70 64 61 74 65 0a (if need-update.
6900: 09 09 09 09 20 20 20 28 62 65 67 69 6e 0a 09 09 .... (begin...
6910: 09 09 20 20 20 20 20 3b 3b 20 75 70 64 61 74 65 .. ;; update
6920: 20 74 68 65 20 67 75 69 20 65 6c 65 6d 65 6e 74 the gui element
6930: 73 20 68 65 72 65 0a 09 09 09 09 20 20 20 20 20 s here.....
6940: 28 66 6f 72 2d 65 61 63 68 20 0a 09 09 09 09 20 (for-each .....
6950: 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 6b 65 (lambda (ke
6960: 79 29 0a 09 09 09 09 09 3b 3b 20 28 70 72 69 6e y)......;; (prin
6970: 74 20 22 55 70 64 61 74 69 6e 67 20 22 20 6b 65 t "Updating " ke
6980: 79 29 0a 09 09 09 09 09 28 28 68 61 73 68 2d 74 y)......((hash-t
6990: 61 62 6c 65 2d 72 65 66 20 77 69 64 67 65 74 73 able-ref widgets
69a0: 20 6b 65 79 29 20 74 65 73 74 64 61 74 29 29 0a key) testdat)).
69b0: 09 09 09 09 20 20 20 20 20 20 28 68 61 73 68 2d .... (hash-
69c0: 74 61 62 6c 65 2d 6b 65 79 73 20 77 69 64 67 65 table-keys widge
69d0: 74 73 29 29 0a 09 09 09 09 20 20 20 20 20 28 75 ts))..... (u
69e0: 70 64 61 74 65 2d 73 74 61 74 65 2d 73 74 61 74 pdate-state-stat
69f0: 75 73 2d 62 75 74 74 6f 6e 73 20 74 65 73 74 64 us-buttons testd
6a00: 61 74 29 29 29 0a 09 09 09 20 20 20 20 20 20 20 at)))....
6a10: 3b 3b 20 28 69 75 70 3a 72 65 66 72 65 73 68 20 ;; (iup:refresh
6a20: 73 65 6c 66 29 0a 09 09 09 20 20 20 20 20 20 20 self)....
6a30: 29 29 29 0a 09 20 20 20 20 20 20 20 28 6d 65 74 ))).. (met
6a40: 61 2d 77 69 64 67 65 74 73 20 28 6d 61 6b 65 2d a-widgets (make-
6a50: 68 61 73 68 2d 74 61 62 6c 65 29 29 0a 09 20 20 hash-table))..
6a60: 20 20 20 20 20 28 73 65 6c 66 20 20 20 20 20 20 (self
6a70: 20 20 20 23 66 29 0a 09 20 20 20 20 20 20 20 28 #f).. (
6a80: 73 74 6f 72 65 2d 6c 61 62 65 6c 20 20 28 6c 61 store-label (la
6a90: 6d 62 64 61 20 28 6e 61 6d 65 20 6c 62 6c 20 63 mbda (name lbl c
6aa0: 6d 64 29 0a 09 09 09 20 20 20 20 20 20 20 28 68 md).... (h
6ab0: 61 73 68 2d 74 61 62 6c 65 2d 73 65 74 21 20 77 ash-table-set! w
6ac0: 69 64 67 65 74 73 20 6e 61 6d 65 20 0a 09 09 09 idgets name ....
6ad0: 09 09 09 28 6c 61 6d 62 64 61 20 28 74 65 73 74 ...(lambda (test
6ae0: 64 61 74 29 0a 09 09 09 09 09 09 20 20 28 6c 65 dat)....... (le
6af0: 74 20 28 28 6e 65 77 76 61 6c 20 28 63 6d 64 20 t ((newval (cmd
6b00: 74 65 73 74 64 61 74 29 29 0a 09 09 09 09 09 09 testdat)).......
6b10: 09 28 6f 6c 64 76 61 6c 20 28 69 75 70 3a 61 74 .(oldval (iup:at
6b20: 74 72 69 62 75 74 65 20 6c 62 6c 20 22 54 49 54 tribute lbl "TIT
6b30: 4c 45 22 29 29 29 0a 09 09 09 09 09 09 20 20 20 LE"))).......
6b40: 20 28 69 66 20 28 6e 6f 74 20 28 65 71 75 61 6c (if (not (equal
6b50: 3f 20 6e 65 77 76 61 6c 20 6f 6c 64 76 61 6c 29 ? newval oldval)
6b60: 29 0a 09 09 09 09 09 09 09 28 62 65 67 69 6e 0a )........(begin.
6b70: 09 09 09 09 09 3b 28 6d 75 74 65 78 2d 6c 6f 63 .....;(mutex-loc
6b80: 6b 21 20 6d 78 31 29 0a 09 09 09 09 09 09 09 20 k! mx1)........
6b90: 20 28 69 75 70 3a 61 74 74 72 69 62 75 74 65 2d (iup:attribute-
6ba0: 73 65 74 21 20 6c 62 6c 20 22 54 49 54 4c 45 22 set! lbl "TITLE"
6bb0: 20 6e 65 77 76 61 6c 29 0a 09 09 09 09 09 3b 28 newval)......;(
6bc0: 6d 75 74 65 78 2d 75 6e 6c 6f 63 6b 21 20 6d 78 mutex-unlock! mx
6bd0: 31 29 0a 09 09 09 09 09 09 09 20 20 29 29 29 29 1)........ ))))
6be0: 29 0a 09 09 09 20 20 20 20 20 20 20 6c 62 6c 29 ).... lbl)
6bf0: 29 0a 09 20 20 20 20 20 20 20 28 73 74 6f 72 65 ).. (store
6c00: 2d 6d 65 74 61 20 20 28 6c 61 6d 62 64 61 20 28 -meta (lambda (
6c10: 6e 61 6d 65 20 6c 62 6c 20 63 6d 64 29 0a 09 09 name lbl cmd)...
6c20: 09 20 20 20 20 20 20 28 68 61 73 68 2d 74 61 62 . (hash-tab
6c30: 6c 65 2d 73 65 74 21 20 6d 65 74 61 2d 77 69 64 le-set! meta-wid
6c40: 67 65 74 73 20 6e 61 6d 65 20 0a 09 09 09 09 09 gets name ......
6c50: 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 (lambda (
6c60: 74 65 73 74 6d 65 74 61 29 0a 09 09 09 09 09 09 testmeta).......
6c70: 20 28 6c 65 74 20 28 28 6e 65 77 76 61 6c 20 28 (let ((newval (
6c80: 63 6d 64 20 74 65 73 74 6d 65 74 61 29 29 0a 09 cmd testmeta))..
6c90: 09 09 09 09 09 20 20 20 20 20 20 20 28 6f 6c 64 ..... (old
6ca0: 76 61 6c 20 28 69 75 70 3a 61 74 74 72 69 62 75 val (iup:attribu
6cb0: 74 65 20 6c 62 6c 20 22 54 49 54 4c 45 22 29 29 te lbl "TITLE"))
6cc0: 29 0a 09 09 09 09 09 09 20 20 20 28 69 66 20 28 )....... (if (
6cd0: 6e 6f 74 20 28 65 71 75 61 6c 3f 20 6e 65 77 76 not (equal? newv
6ce0: 61 6c 20 6f 6c 64 76 61 6c 29 29 0a 09 09 09 09 al oldval)).....
6cf0: 09 09 20 20 20 20 20 20 20 28 62 65 67 69 6e 0a .. (begin.
6d00: 09 09 09 09 09 3b 28 6d 75 74 65 78 2d 6c 6f 63 .....;(mutex-loc
6d10: 6b 21 20 6d 78 31 29 0a 09 09 09 09 09 09 09 20 k! mx1)........
6d20: 28 69 75 70 3a 61 74 74 72 69 62 75 74 65 2d 73 (iup:attribute-s
6d30: 65 74 21 20 6c 62 6c 20 22 54 49 54 4c 45 22 20 et! lbl "TITLE"
6d40: 6e 65 77 76 61 6c 29 0a 09 09 09 09 09 3b 28 6d newval)......;(m
6d50: 75 74 65 78 2d 75 6e 6c 6f 63 6b 21 20 6d 78 31 utex-unlock! mx1
6d60: 29 0a 09 09 09 09 09 09 09 20 29 29 29 29 29 0a )........ ))))).
6d70: 09 09 09 20 20 20 20 20 20 6c 62 6c 29 29 0a 09 ... lbl))..
6d80: 20 20 20 20 20 20 20 28 73 74 6f 72 65 2d 62 75 (store-bu
6d90: 74 74 6f 6e 20 73 74 6f 72 65 2d 6c 61 62 65 6c tton store-label
6da0: 29 0a 09 20 20 20 20 20 20 20 28 63 6f 6d 6d 61 ).. (comma
6db0: 6e 64 2d 70 72 6f 63 20 28 6c 61 6d 62 64 61 20 nd-proc (lambda
6dc0: 28 63 6f 6d 6d 61 6e 64 2d 74 65 78 74 2d 62 6f (command-text-bo
6dd0: 78 29 0a 09 09 09 20 20 20 20 20 20 20 28 6c 65 x).... (le
6de0: 74 2a 20 28 28 63 6d 64 20 20 20 20 20 28 69 75 t* ((cmd (iu
6df0: 70 3a 61 74 74 72 69 62 75 74 65 20 63 6f 6d 6d p:attribute comm
6e00: 61 6e 64 2d 74 65 78 74 2d 62 6f 78 20 22 56 41 and-text-box "VA
6e10: 4c 55 45 22 29 29 29 0a 09 09 09 09 20 28 63 6f LUE")))..... (co
6e20: 6d 6d 6f 6e 3a 72 75 6e 2d 61 2d 63 6f 6d 6d 61 mmon:run-a-comma
6e30: 6e 64 20 63 6d 64 20 77 69 74 68 2d 6f 72 69 67 nd cmd with-orig
6e40: 2d 65 6e 76 3a 20 23 74 29 29 29 29 0a 09 20 20 -env: #t))))..
6e50: 20 20 20 20 20 28 63 6f 6d 6d 61 6e 64 2d 74 65 (command-te
6e60: 78 74 2d 62 6f 78 20 28 69 75 70 3a 74 65 78 74 xt-box (iup:text
6e70: 62 6f 78 0a 09 09 09 09 20 20 23 3a 65 78 70 61 box..... #:expa
6e80: 6e 64 20 22 48 4f 52 49 5a 4f 4e 54 41 4c 22 0a nd "HORIZONTAL".
6e90: 09 09 09 09 20 20 23 3a 66 6f 6e 74 20 22 43 6f .... #:font "Co
6ea0: 75 72 69 65 72 20 4e 65 77 2c 20 2d 31 30 22 0a urier New, -10".
6eb0: 09 09 09 09 20 20 23 3a 61 63 74 69 6f 6e 20 28 .... #:action (
6ec0: 6c 61 6d 62 64 61 20 28 6f 62 6a 20 63 6e 75 6d lambda (obj cnum
6ed0: 20 76 61 6c 29 0a 09 09 09 09 09 20 20 20 20 20 val)......
6ee0: 3b 3b 20 28 70 72 69 6e 74 20 22 63 6e 75 6d 3d ;; (print "cnum=
6ef0: 22 20 63 6e 75 6d 29 0a 09 09 09 09 09 20 20 20 " cnum)......
6f00: 20 20 28 69 66 20 28 65 71 3f 20 63 6e 75 6d 20 (if (eq? cnum
6f10: 31 33 29 0a 09 09 09 09 09 09 20 28 63 6f 6d 6d 13)....... (comm
6f20: 61 6e 64 2d 70 72 6f 78 20 6f 62 6a 29 29 29 0a and-prox obj))).
6f30: 09 09 09 09 20 20 29 29 0a 09 20 20 20 20 20 20 .... ))..
6f40: 20 28 63 6f 6d 6d 61 6e 64 2d 6c 61 75 6e 63 68 (command-launch
6f50: 2d 62 75 74 74 6f 6e 20 28 69 75 70 3a 62 75 74 -button (iup:but
6f60: 74 6f 6e 20 22 45 78 65 63 75 74 65 21 22 20 23 ton "Execute!" #
6f70: 3a 61 63 74 69 6f 6e 20 28 6c 61 6d 62 64 61 20 :action (lambda
6f80: 28 78 29 0a 09 09 09 09 09 09 09 09 09 28 63 6f (x)..........(co
6f90: 6d 6d 61 6e 64 2d 70 72 6f 63 20 63 6f 6d 6d 61 mmand-proc comma
6fa0: 6e 64 2d 74 65 78 74 2d 62 6f 78 29 29 29 29 0a nd-text-box)))).
6fb0: 09 3b 3b 20 28 6c 61 6d 62 64 61 20 28 78 29 0a .;; (lambda (x).
6fc0: 09 3b 3b 20 09 09 09 09 09 09 09 09 28 6c 65 74 .;; ........(let
6fd0: 2a 20 28 28 63 6d 64 20 20 20 20 20 28 69 75 70 * ((cmd (iup
6fe0: 3a 61 74 74 72 69 62 75 74 65 20 63 6f 6d 6d 61 :attribute comma
6ff0: 6e 64 2d 74 65 78 74 2d 62 6f 78 20 22 56 41 4c nd-text-box "VAL
7000: 55 45 22 29 29 0a 09 3b 3b 20 09 09 09 09 09 09 UE"))..;; ......
7010: 09 09 20 20 20 20 20 20 20 28 66 75 6c 6c 63 6d .. (fullcm
7020: 64 20 28 63 6f 6e 63 20 28 64 74 65 73 74 73 3a d (conc (dtests:
7030: 67 65 74 2d 70 72 65 2d 63 6f 6d 6d 61 6e 64 29 get-pre-command)
7040: 0a 09 3b 3b 20 09 09 09 09 09 09 09 09 09 09 20 ..;; ..........
7050: 20 20 20 20 20 63 6d 64 20 0a 09 3b 3b 20 09 09 cmd ..;; ..
7060: 09 09 09 09 09 09 09 09 20 20 20 20 20 20 28 64 ........ (d
7070: 74 65 73 74 73 3a 67 65 74 2d 70 6f 73 74 2d 63 tests:get-post-c
7080: 6f 6d 6d 61 6e 64 29 29 29 29 0a 09 3b 3b 20 09 ommand))))..;; .
7090: 09 09 09 09 09 09 09 20 20 28 64 65 62 75 67 3a ....... (debug:
70a0: 70 72 69 6e 74 2d 69 6e 66 6f 20 30 32 20 2a 64 print-info 02 *d
70b0: 65 66 61 75 6c 74 2d 6c 6f 67 2d 70 6f 72 74 2a efault-log-port*
70c0: 20 22 52 75 6e 6e 69 6e 67 20 63 6f 6d 6d 61 6e "Running comman
70d0: 64 3a 20 22 20 66 75 6c 6c 63 6d 64 29 0a 09 3b d: " fullcmd)..;
70e0: 3b 20 09 09 09 09 09 09 09 09 20 20 28 63 6f 6d ; ........ (com
70f0: 6d 6f 6e 3a 77 69 74 68 6f 75 74 2d 76 61 72 73 mon:without-vars
7100: 20 66 75 6c 6c 63 6d 64 20 22 4d 54 5f 2e 2a 22 fullcmd "MT_.*"
7110: 29 29 29 29 29 0a 09 20 20 20 20 20 20 20 28 6b ))))).. (k
7120: 69 6c 6c 2d 6a 6f 62 73 20 28 6c 61 6d 62 64 61 ill-jobs (lambda
7130: 20 28 78 29 0a 09 09 09 20 20 20 20 28 69 75 70 (x).... (iup
7140: 3a 61 74 74 72 69 62 75 74 65 2d 73 65 74 21 20 :attribute-set!
7150: 0a 09 09 09 20 20 20 20 20 63 6f 6d 6d 61 6e 64 .... command
7160: 2d 74 65 78 74 2d 62 6f 78 20 22 56 41 4c 55 45 -text-box "VALUE
7170: 22 0a 09 09 09 20 20 20 20 20 28 63 6f 6e 63 20 ".... (conc
7180: 22 6d 65 67 61 74 65 73 74 20 2d 74 61 72 67 65 "megatest -targe
7190: 74 20 22 20 6b 65 79 73 74 72 69 6e 67 20 22 20 t " keystring "
71a0: 2d 72 75 6e 6e 61 6d 65 20 22 20 20 72 75 6e 6e -runname " runn
71b0: 61 6d 65 20 0a 09 09 09 09 20 20 20 22 20 2d 73 ame ..... " -s
71c0: 65 74 2d 73 74 61 74 65 2d 73 74 61 74 75 73 20 et-state-status
71d0: 4b 49 4c 4c 52 45 51 2c 6e 2f 61 20 2d 74 65 73 KILLREQ,n/a -tes
71e0: 74 70 61 74 74 20 25 2f 25 20 22 0a 09 09 09 09 tpatt %/% ".....
71f0: 20 20 20 22 20 2d 73 74 61 74 65 20 52 55 4e 4e " -state RUNN
7200: 49 4e 47 2c 52 45 4d 4f 54 45 48 4f 53 54 53 54 ING,REMOTEHOSTST
7210: 41 52 54 2c 4c 41 55 4e 43 48 45 44 22 29 29 29 ART,LAUNCHED")))
7220: 29 0a 09 20 20 20 20 20 20 20 28 72 75 6e 2d 74 ).. (run-t
7230: 65 73 74 20 20 28 6c 61 6d 62 64 61 20 28 78 29 est (lambda (x)
7240: 0a 09 09 09 20 20 20 20 28 69 75 70 3a 61 74 74 .... (iup:att
7250: 72 69 62 75 74 65 2d 73 65 74 21 20 0a 09 09 09 ribute-set! ....
7260: 20 20 20 20 20 63 6f 6d 6d 61 6e 64 2d 74 65 78 command-tex
7270: 74 2d 62 6f 78 20 22 56 41 4c 55 45 22 0a 09 09 t-box "VALUE"...
7280: 09 20 20 20 20 20 28 63 6f 6e 63 20 22 6d 65 67 . (conc "meg
7290: 61 74 65 73 74 20 2d 74 61 72 67 65 74 20 22 20 atest -target "
72a0: 6b 65 79 73 74 72 69 6e 67 20 22 20 2d 72 75 6e keystring " -run
72b0: 6e 61 6d 65 20 22 20 72 75 6e 6e 61 6d 65 20 0a name " runname .
72c0: 09 09 09 09 20 20 20 22 20 2d 72 75 6e 20 2d 74 .... " -run -t
72d0: 65 73 74 70 61 74 74 20 22 20 28 63 6f 6e 63 20 estpatt " (conc
72e0: 74 65 73 74 6e 61 6d 65 20 22 2f 22 20 28 69 66 testname "/" (if
72f0: 20 28 65 71 75 61 6c 3f 20 69 74 65 6d 2d 70 61 (equal? item-pa
7300: 74 68 20 22 22 29 0a 09 09 09 09 09 09 09 09 09 th "")..........
7310: 22 25 22 20 0a 09 09 09 09 09 09 09 09 09 69 74 "%" ..........it
7320: 65 6d 2d 70 61 74 68 29 29 0a 09 09 09 09 20 20 em-path)).....
7330: 20 22 20 2d 63 6c 65 61 6e 2d 63 61 63 68 65 22 " -clean-cache"
7340: 0a 09 09 09 09 20 20 20 29 29 29 29 0a 09 20 20 ..... ))))..
7350: 20 20 20 20 20 28 72 65 6d 6f 76 65 2d 74 65 73 (remove-tes
7360: 74 20 28 6c 61 6d 62 64 61 20 28 78 29 0a 09 09 t (lambda (x)...
7370: 09 20 20 20 20 20 20 28 69 75 70 3a 61 74 74 72 . (iup:attr
7380: 69 62 75 74 65 2d 73 65 74 21 0a 09 09 09 20 20 ibute-set!....
7390: 20 20 20 20 20 63 6f 6d 6d 61 6e 64 2d 74 65 78 command-tex
73a0: 74 2d 62 6f 78 20 22 56 41 4c 55 45 22 0a 09 09 t-box "VALUE"...
73b0: 09 20 20 20 20 20 20 20 28 63 6f 6e 63 20 22 6d . (conc "m
73c0: 65 67 61 74 65 73 74 20 2d 72 65 6d 6f 76 65 2d egatest -remove-
73d0: 72 75 6e 73 20 2d 74 61 72 67 65 74 20 22 20 6b runs -target " k
73e0: 65 79 73 74 72 69 6e 67 20 22 20 2d 72 75 6e 6e eystring " -runn
73f0: 61 6d 65 20 22 20 72 75 6e 6e 61 6d 65 0a 09 09 ame " runname...
7400: 09 09 20 20 20 20 20 22 20 2d 74 65 73 74 70 61 .. " -testpa
7410: 74 74 20 22 20 28 63 6f 6e 63 20 74 65 73 74 6e tt " (conc testn
7420: 61 6d 65 20 22 2f 22 20 28 69 66 20 28 65 71 75 ame "/" (if (equ
7430: 61 6c 3f 20 69 74 65 6d 2d 70 61 74 68 20 22 22 al? item-path ""
7440: 29 0a 09 09 09 09 09 09 09 09 09 20 20 22 25 22 ).......... "%"
7450: 0a 09 09 09 09 09 09 09 09 09 20 20 69 74 65 6d .......... item
7460: 2d 70 61 74 68 29 29 0a 09 09 09 09 20 20 20 20 -path)).....
7470: 20 22 20 2d 76 22 29 29 29 29 0a 09 20 20 20 20 " -v"))))..
7480: 20 20 20 28 63 6c 65 61 6e 2d 72 75 6e 2d 65 78 (clean-run-ex
7490: 65 63 75 74 65 20 20 28 6c 61 6d 62 64 61 20 28 ecute (lambda (
74a0: 78 29 0a 09 09 09 09 20 20 20 20 20 28 6c 65 74 x)..... (let
74b0: 20 28 28 63 6d 64 20 28 63 6f 6e 63 20 3b 3b 20 ((cmd (conc ;;
74c0: 22 6d 65 67 61 74 65 73 74 20 2d 72 65 6d 6f 76 "megatest -remov
74d0: 65 2d 72 75 6e 73 20 2d 74 61 72 67 65 74 20 22 e-runs -target "
74e0: 20 6b 65 79 73 74 72 69 6e 67 20 22 20 2d 72 75 keystring " -ru
74f0: 6e 6e 61 6d 65 20 22 20 72 75 6e 6e 61 6d 65 0a nname " runname.
7500: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
7510: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
7520: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
7530: 20 22 6d 65 67 61 74 65 73 74 20 2d 73 65 74 2d "megatest -set-
7540: 73 74 61 74 65 2d 73 74 61 74 75 73 20 4e 4f 54 state-status NOT
7550: 5f 53 54 41 52 54 45 44 2c 6e 2f 61 20 2d 74 61 _STARTED,n/a -ta
7560: 72 67 65 74 20 22 20 6b 65 79 73 74 72 69 6e 67 rget " keystring
7570: 20 22 20 2d 72 75 6e 6e 61 6d 65 20 22 20 72 75 " -runname " ru
7580: 6e 6e 61 6d 65 0a 09 09 09 09 09 09 20 20 20 20 nname.......
7590: 20 20 22 20 2d 74 65 73 74 70 61 74 74 20 22 20 " -testpatt "
75a0: 28 63 6f 6e 63 20 74 65 73 74 6e 61 6d 65 20 22 (conc testname "
75b0: 2f 22 20 28 69 66 20 28 65 71 75 61 6c 3f 20 69 /" (if (equal? i
75c0: 74 65 6d 2d 70 61 74 68 20 22 22 29 0a 09 09 09 tem-path "")....
75d0: 09 09 09 20 20 20 20 20 20 20 09 09 09 09 09 20 ... .....
75e0: 20 20 22 25 22 0a 09 09 09 09 09 09 20 20 20 20 "%".......
75f0: 20 20 20 09 09 09 09 09 20 20 20 69 74 65 6d 2d ..... item-
7600: 70 61 74 68 29 29 0a 20 20 20 20 20 20 20 20 20 path)).
7610: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
7620: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
7630: 20 20 20 20 20 20 20 20 20 20 20 20 20 22 3b 6d ";m
7640: 65 67 61 74 65 73 74 20 2d 74 61 72 67 65 74 20 egatest -target
7650: 22 20 6b 65 79 73 74 72 69 6e 67 20 22 20 2d 72 " keystring " -r
7660: 75 6e 6e 61 6d 65 20 22 20 72 75 6e 6e 61 6d 65 unname " runname
7670: 20 0a 09 09 09 09 09 09 20 20 20 20 20 20 22 20 ....... "
7680: 2d 72 75 6e 20 2d 70 72 65 63 6c 65 61 6e 20 2d -run -preclean -
7690: 74 65 73 74 70 61 74 74 20 22 20 28 63 6f 6e 63 testpatt " (conc
76a0: 20 74 65 73 74 6e 61 6d 65 20 22 2f 22 20 28 69 testname "/" (i
76b0: 66 20 28 65 71 75 61 6c 3f 20 69 74 65 6d 2d 70 f (equal? item-p
76c0: 61 74 68 20 22 22 29 0a 09 09 09 09 09 09 09 09 ath "").........
76d0: 09 09 09 20 20 20 22 25 22 20 0a 09 09 09 09 09 ... "%" ......
76e0: 09 09 09 09 09 09 20 20 20 69 74 65 6d 2d 70 61 ...... item-pa
76f0: 74 68 29 29 0a 09 09 09 09 09 09 20 20 20 20 20 th)).......
7700: 20 22 20 2d 63 6c 65 61 6e 2d 63 61 63 68 65 22 " -clean-cache"
7710: 0a 09 09 09 09 09 09 20 20 20 20 20 20 29 29 29 ....... )))
7720: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
7730: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
7740: 20 20 20 20 20 20 20 20 28 74 68 72 65 61 64 2d (thread-
7750: 73 74 61 72 74 21 20 28 6d 61 6b 65 2d 74 68 72 start! (make-thr
7760: 65 61 64 20 28 6c 61 6d 62 64 61 20 28 29 0a 20 ead (lambda ().
7770: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
7780: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
7790: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
77a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
77b0: 20 20 20 20 28 63 6f 6d 6d 6f 6e 3a 72 75 6e 2d (common:run-
77c0: 61 2d 63 6f 6d 6d 61 6e 64 20 63 6d 64 29 29 0a a-command cmd)).
77d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
77e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
77f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
7800: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
7810: 20 20 20 22 63 6c 65 61 6e 2d 72 75 6e 2d 65 78 "clean-run-ex
7820: 65 63 75 74 65 22 29 29 29 29 29 0a 09 20 20 20 ecute")))))..
7830: 20 20 20 20 28 72 65 6d 6f 76 65 2d 74 65 73 74 (remove-test
7840: 20 28 6c 61 6d 62 64 61 20 28 78 29 0a 09 09 09 (lambda (x)....
7850: 20 20 20 20 20 20 28 69 75 70 3a 61 74 74 72 69 (iup:attri
7860: 62 75 74 65 2d 73 65 74 21 0a 09 09 09 20 20 20 bute-set!....
7870: 20 20 20 20 63 6f 6d 6d 61 6e 64 2d 74 65 78 74 command-text
7880: 2d 62 6f 78 20 22 56 41 4c 55 45 22 0a 09 09 09 -box "VALUE"....
7890: 20 20 20 20 20 20 20 28 63 6f 6e 63 20 22 6d 65 (conc "me
78a0: 67 61 74 65 73 74 20 2d 72 65 6d 6f 76 65 2d 72 gatest -remove-r
78b0: 75 6e 73 20 2d 74 61 72 67 65 74 20 22 20 6b 65 uns -target " ke
78c0: 79 73 74 72 69 6e 67 20 22 20 2d 72 75 6e 6e 61 ystring " -runna
78d0: 6d 65 20 22 20 72 75 6e 6e 61 6d 65 0a 09 09 09 me " runname....
78e0: 09 20 20 20 20 20 22 20 2d 74 65 73 74 70 61 74 . " -testpat
78f0: 74 20 22 20 28 63 6f 6e 63 20 74 65 73 74 6e 61 t " (conc testna
7900: 6d 65 20 22 2f 22 20 28 69 66 20 28 65 71 75 61 me "/" (if (equa
7910: 6c 3f 20 69 74 65 6d 2d 70 61 74 68 20 22 22 29 l? item-path "")
7920: 0a 09 09 09 09 09 09 09 09 09 20 20 22 25 22 0a .......... "%".
7930: 09 09 09 09 09 09 09 09 09 20 20 69 74 65 6d 2d ......... item-
7940: 70 61 74 68 29 29 0a 09 09 09 09 20 20 20 20 20 path)).....
7950: 22 20 2d 76 22 29 29 29 29 0a 09 20 20 20 20 20 " -v"))))..
7960: 20 20 28 61 72 63 68 69 76 65 2d 74 65 73 74 20 (archive-test
7970: 20 28 6c 61 6d 62 64 61 20 28 78 29 0a 09 09 09 (lambda (x)....
7980: 09 28 69 75 70 3a 61 74 74 72 69 62 75 74 65 2d .(iup:attribute-
7990: 73 65 74 21 20 0a 09 09 09 09 20 63 6f 6d 6d 61 set! ..... comma
79a0: 6e 64 2d 74 65 78 74 2d 62 6f 78 20 22 56 41 4c nd-text-box "VAL
79b0: 55 45 22 0a 09 09 09 09 20 28 63 6f 6e 63 20 22 UE"..... (conc "
79c0: 6d 65 67 61 74 65 73 74 20 2d 74 61 72 67 65 74 megatest -target
79d0: 20 22 20 6b 65 79 73 74 72 69 6e 67 20 22 20 2d " keystring " -
79e0: 72 75 6e 6e 61 6d 65 20 22 20 72 75 6e 6e 61 6d runname " runnam
79f0: 65 20 0a 09 09 09 09 20 20 20 20 20 20 20 22 20 e ..... "
7a00: 2d 61 72 63 68 69 76 65 20 73 61 76 65 2d 72 65 -archive save-re
7a10: 6d 6f 76 65 20 2d 74 65 73 74 70 61 74 74 20 22 move -testpatt "
7a20: 20 28 63 6f 6e 63 20 74 65 73 74 6e 61 6d 65 20 (conc testname
7a30: 22 2f 22 20 28 69 66 20 28 65 71 75 61 6c 3f 20 "/" (if (equal?
7a40: 69 74 65 6d 2d 70 61 74 68 20 22 22 29 0a 09 09 item-path "")...
7a50: 09 09 09 09 09 09 09 09 09 09 20 22 25 22 20 0a .......... "%" .
7a60: 09 09 09 09 09 09 09 09 09 09 09 09 20 69 74 65 ............ ite
7a70: 6d 2d 70 61 74 68 29 29 0a 09 09 09 09 20 20 20 m-path)).....
7a80: 20 20 20 20 29 29 29 29 29 0a 09 20 20 28 63 6f ))))).. (co
7a90: 6e 64 0a 09 20 20 20 28 28 6e 6f 74 20 74 65 73 nd.. ((not tes
7aa0: 74 64 61 74 29 28 62 65 67 69 6e 20 28 70 72 69 tdat)(begin (pri
7ab0: 6e 74 20 22 45 52 52 4f 52 3a 20 62 61 64 20 74 nt "ERROR: bad t
7ac0: 65 73 74 20 69 6e 66 6f 20 66 6f 72 20 22 20 74 est info for " t
7ad0: 65 73 74 2d 69 64 29 28 65 78 69 74 20 31 29 29 est-id)(exit 1))
7ae0: 29 0a 09 20 20 20 28 28 6e 6f 74 20 72 75 6e 64 ).. ((not rund
7af0: 61 74 29 28 62 65 67 69 6e 20 28 70 72 69 6e 74 at)(begin (print
7b00: 20 22 45 52 52 4f 52 3a 20 66 6f 75 6e 64 20 74 "ERROR: found t
7b10: 65 73 74 20 69 6e 66 6f 20 62 75 74 20 74 68 65 est info but the
7b20: 72 65 20 69 73 20 61 20 70 72 6f 62 6c 65 6d 20 re is a problem
7b30: 77 69 74 68 20 74 68 65 20 72 75 6e 20 69 6e 66 with the run inf
7b40: 6f 20 66 6f 72 20 22 20 72 75 6e 2d 69 64 29 28 o for " run-id)(
7b50: 65 78 69 74 20 31 29 29 29 0a 09 20 20 20 28 65 exit 1))).. (e
7b60: 6c 73 65 0a 09 20 20 20 20 3b 3b 20 20 28 74 65 lse.. ;; (te
7b70: 73 74 2d 73 65 74 2d 73 74 61 74 75 73 21 20 64 st-set-status! d
7b80: 62 20 72 75 6e 2d 69 64 20 74 65 73 74 2d 6e 61 b run-id test-na
7b90: 6d 65 20 73 74 61 74 65 20 73 74 61 74 75 73 20 me state status
7ba0: 69 74 65 6d 64 61 74 29 0a 09 20 20 20 20 28 73 itemdat).. (s
7bb0: 65 74 21 20 73 65 6c 66 20 3b 20 0a 09 09 20 20 et! self ; ...
7bc0: 28 69 75 70 3a 64 69 61 6c 6f 67 20 23 3a 63 6c (iup:dialog #:cl
7bd0: 6f 73 65 5f 63 62 20 28 6c 61 6d 62 64 61 20 28 ose_cb (lambda (
7be0: 61 29 28 65 78 69 74 29 29 20 3b 20 23 3a 65 78 a)(exit)) ; #:ex
7bf0: 70 61 6e 64 20 22 59 45 53 22 0a 09 09 09 20 20 pand "YES"....
7c00: 20 20 20 20 23 3a 74 69 74 6c 65 20 74 65 73 74 #:title test
7c10: 66 75 6c 6c 6e 61 6d 65 0a 09 09 09 20 20 20 20 fullname....
7c20: 20 20 28 69 75 70 3a 76 62 6f 78 20 3b 20 23 3a (iup:vbox ; #:
7c30: 65 78 70 61 6e 64 20 22 59 45 53 22 0a 09 09 09 expand "YES"....
7c40: 20 20 20 20 20 20 20 3b 3b 20 54 68 65 20 72 75 ;; The ru
7c50: 6e 20 61 6e 64 20 74 65 73 74 20 69 6e 66 6f 0a n and test info.
7c60: 09 09 09 20 20 20 20 20 20 20 28 69 75 70 3a 68 ... (iup:h
7c70: 62 6f 78 20 20 3b 20 23 3a 65 78 70 61 6e 64 20 box ; #:expand
7c80: 22 59 45 53 22 0a 09 09 09 09 28 72 75 6e 2d 69 "YES".....(run-i
7c90: 6e 66 6f 2d 70 61 6e 65 6c 20 64 62 73 74 72 75 nfo-panel dbstru
7ca0: 63 74 20 6b 65 79 64 61 74 20 74 65 73 74 64 61 ct keydat testda
7cb0: 74 20 72 75 6e 6e 61 6d 65 29 0a 09 09 09 09 28 t runname).....(
7cc0: 74 65 73 74 2d 69 6e 66 6f 2d 70 61 6e 65 6c 20 test-info-panel
7cd0: 74 65 73 74 64 61 74 20 73 74 6f 72 65 2d 6c 61 testdat store-la
7ce0: 62 65 6c 20 77 69 64 67 65 74 73 29 0a 09 09 09 bel widgets)....
7cf0: 09 28 74 65 73 74 2d 6d 65 74 61 2d 70 61 6e 65 .(test-meta-pane
7d00: 6c 20 74 65 73 74 6d 65 74 61 20 73 74 6f 72 65 l testmeta store
7d10: 2d 6d 65 74 61 29 29 0a 09 09 09 20 20 20 20 20 -meta))....
7d20: 20 20 28 69 75 70 3a 68 62 6f 78 0a 09 09 09 09 (iup:hbox.....
7d30: 28 68 6f 73 74 2d 69 6e 66 6f 2d 70 61 6e 65 6c (host-info-panel
7d40: 20 74 65 73 74 64 61 74 20 73 74 6f 72 65 2d 6c testdat store-l
7d50: 61 62 65 6c 29 0a 09 09 09 09 28 73 75 62 6d 65 abel).....(subme
7d60: 67 61 74 65 73 74 2d 70 61 6e 65 6c 20 64 62 73 gatest-panel dbs
7d70: 74 72 75 63 74 20 6b 65 79 64 61 74 20 74 65 73 truct keydat tes
7d80: 74 64 61 74 20 72 75 6e 6e 61 6d 65 20 74 65 73 tdat runname tes
7d90: 74 63 6f 6e 66 69 67 29 29 0a 09 09 09 20 20 20 tconfig))....
7da0: 20 20 20 20 3b 3b 20 54 68 65 20 63 6f 6e 74 72 ;; The contr
7db0: 6f 6c 73 0a 09 09 09 20 20 20 20 20 20 20 28 69 ols.... (i
7dc0: 75 70 3a 66 72 61 6d 65 20 23 3a 74 69 74 6c 65 up:frame #:title
7dd0: 20 22 41 63 74 69 6f 6e 73 22 20 0a 09 09 09 09 "Actions" .....
7de0: 09 20 20 28 69 75 70 3a 76 62 6f 78 0a 09 09 09 . (iup:vbox....
7df0: 09 09 20 20 20 28 69 75 70 3a 68 62 6f 78 20 0a .. (iup:hbox .
7e00: 09 09 09 09 09 20 20 20 20 28 69 75 70 3a 62 75 ..... (iup:bu
7e10: 74 74 6f 6e 20 22 56 69 65 77 20 4c 6f 67 22 20 tton "View Log"
7e20: 20 20 20 20 20 23 3a 61 63 74 69 6f 6e 20 76 69 #:action vi
7e30: 65 77 6c 6f 67 20 20 20 20 20 20 23 3a 73 69 7a ewlog #:siz
7e40: 65 20 22 38 30 78 22 29 0a 09 09 09 09 09 20 20 e "80x")......
7e50: 20 20 28 69 75 70 3a 62 75 74 74 6f 6e 20 22 53 (iup:button "S
7e60: 74 61 72 74 20 58 74 65 72 6d 22 20 20 20 23 3a tart Xterm" #:
7e70: 61 63 74 69 6f 6e 20 78 74 65 72 6d 20 20 20 20 action xterm
7e80: 20 20 20 20 23 3a 73 69 7a 65 20 22 38 30 78 22 #:size "80x"
7e90: 29 0a 09 09 09 09 09 20 20 20 20 28 69 75 70 3a )...... (iup:
7ea0: 62 75 74 74 6f 6e 20 22 52 75 6e 20 54 65 73 74 button "Run Test
7eb0: 22 20 20 20 20 20 20 23 3a 61 63 74 69 6f 6e 20 " #:action
7ec0: 72 75 6e 2d 74 65 73 74 20 20 20 20 20 23 3a 73 run-test #:s
7ed0: 69 7a 65 20 22 38 30 78 22 29 0a 09 09 09 09 09 ize "80x")......
7ee0: 20 20 20 20 28 69 75 70 3a 62 75 74 74 6f 6e 20 (iup:button
7ef0: 22 43 6c 65 61 6e 20 54 65 73 74 22 20 20 20 20 "Clean Test"
7f00: 23 3a 61 63 74 69 6f 6e 20 72 65 6d 6f 76 65 2d #:action remove-
7f10: 74 65 73 74 20 20 23 3a 73 69 7a 65 20 22 38 30 test #:size "80
7f20: 78 22 29 0a 09 09 09 09 09 20 20 20 20 28 69 75 x")...... (iu
7f30: 70 3a 62 75 74 74 6f 6e 20 22 43 6c 65 61 6e 52 p:button "CleanR
7f40: 75 6e 45 78 65 63 75 74 65 21 22 20 20 20 20 23 unExecute!" #
7f50: 3a 61 63 74 69 6f 6e 20 63 6c 65 61 6e 2d 72 75 :action clean-ru
7f60: 6e 2d 65 78 65 63 75 74 65 20 23 3a 73 69 7a 65 n-execute #:size
7f70: 20 22 38 30 78 22 29 0a 09 09 09 09 09 20 20 20 "80x")......
7f80: 20 28 69 75 70 3a 62 75 74 74 6f 6e 20 22 4b 69 (iup:button "Ki
7f90: 6c 6c 20 41 6c 6c 20 4a 6f 62 73 22 20 23 3a 61 ll All Jobs" #:a
7fa0: 63 74 69 6f 6e 20 6b 69 6c 6c 2d 6a 6f 62 73 20 ction kill-jobs
7fb0: 20 20 20 23 3a 73 69 7a 65 20 22 38 30 78 22 29 #:size "80x")
7fc0: 0a 09 09 09 09 09 20 20 20 20 28 69 75 70 3a 62 ...... (iup:b
7fd0: 75 74 74 6f 6e 20 22 41 72 63 68 69 76 65 20 54 utton "Archive T
7fe0: 65 73 74 22 20 20 23 3a 61 63 74 69 6f 6e 20 61 est" #:action a
7ff0: 72 63 68 69 76 65 2d 74 65 73 74 20 23 3a 73 69 rchive-test #:si
8000: 7a 65 20 22 38 30 78 22 29 0a 09 09 09 09 09 20 ze "80x")......
8010: 20 20 20 28 69 75 70 3a 62 75 74 74 6f 6e 20 22 (iup:button "
8020: 43 6c 6f 73 65 22 20 20 20 20 20 20 20 20 20 23 Close" #
8030: 3a 61 63 74 69 6f 6e 20 28 6c 61 6d 62 64 61 20 :action (lambda
8040: 28 78 29 28 65 78 69 74 29 29 20 23 3a 73 69 7a (x)(exit)) #:siz
8050: 65 20 22 38 30 78 22 29 29 0a 09 09 09 09 09 20 e "80x"))......
8060: 20 20 28 61 70 70 6c 79 20 0a 09 09 09 09 09 20 (apply ......
8070: 20 20 20 69 75 70 3a 68 62 6f 78 0a 09 09 09 09 iup:hbox.....
8080: 09 20 20 20 20 28 6c 69 73 74 20 63 6f 6d 6d 61 . (list comma
8090: 6e 64 2d 74 65 78 74 2d 62 6f 78 20 63 6f 6d 6d nd-text-box comm
80a0: 61 6e 64 2d 6c 61 75 6e 63 68 2d 62 75 74 74 6f and-launch-butto
80b0: 6e 29 29 29 29 0a 09 09 09 20 20 20 20 20 20 20 n))))....
80c0: 28 73 65 74 2d 66 69 65 6c 64 73 2d 70 61 6e 65 (set-fields-pane
80d0: 6c 20 64 62 73 74 72 75 63 74 20 72 75 6e 2d 69 l dbstruct run-i
80e0: 64 20 74 65 73 74 2d 69 64 20 74 65 73 74 64 61 d test-id testda
80f0: 74 29 0a 09 09 09 20 20 20 20 20 20 20 28 6c 65 t).... (le
8100: 74 20 28 28 74 61 62 73 20 0a 09 09 09 09 20 20 t ((tabs .....
8110: 20 20 20 20 28 69 75 70 3a 74 61 62 73 0a 09 09 (iup:tabs...
8120: 09 09 20 20 20 20 20 20 20 3b 3b 20 52 65 70 6c .. ;; Repl
8130: 61 63 65 20 68 65 72 65 20 77 69 74 68 20 6d 61 ace here with ma
8140: 74 72 69 78 0a 09 09 09 09 20 20 20 20 20 20 20 trix.....
8150: 28 6c 65 74 20 28 28 73 74 65 70 73 2d 6d 61 74 (let ((steps-mat
8160: 72 69 78 20 28 69 75 70 3a 6d 61 74 72 69 78 0a rix (iup:matrix.
8170: 09 09 09 09 09 09 09 20 20 20 20 23 3a 66 6f 6e ....... #:fon
8180: 74 20 20 20 22 43 6f 75 72 69 65 72 20 4e 65 77 t "Courier New
8190: 2c 20 2d 38 22 0a 09 09 09 09 09 09 09 20 20 20 , -8"........
81a0: 20 23 3a 65 78 70 61 6e 64 20 22 59 45 53 22 0a #:expand "YES".
81b0: 09 09 09 09 09 09 09 20 20 20 20 23 3a 73 63 72 ....... #:scr
81c0: 6f 6c 6c 62 61 72 20 22 59 45 53 22 0a 09 09 09 ollbar "YES"....
81d0: 09 09 09 09 20 20 20 20 23 3a 6e 75 6d 63 6f 6c .... #:numcol
81e0: 20 39 0a 09 09 09 09 09 09 09 20 20 20 20 23 3a 9........ #:
81f0: 6e 75 6d 6c 69 6e 20 31 30 30 0a 09 09 09 09 09 numlin 100......
8200: 09 09 20 20 20 20 23 3a 6e 75 6d 63 6f 6c 2d 76 .. #:numcol-v
8210: 69 73 69 62 6c 65 20 39 0a 09 09 09 09 09 09 09 isible 9........
8220: 20 20 20 20 23 3a 6e 75 6d 6c 69 6e 2d 76 69 73 #:numlin-vis
8230: 69 62 6c 65 20 35 0a 09 09 09 09 09 09 09 20 20 ible 5........
8240: 20 20 23 3a 63 6c 69 63 6b 2d 63 62 20 28 6c 61 #:click-cb (la
8250: 6d 62 64 61 20 28 6f 62 6a 20 6c 69 6e 20 63 6f mbda (obj lin co
8260: 6c 20 73 74 61 74 75 73 29 0a 09 09 09 09 09 09 l status).......
8270: 09 09 09 20 3b 3b 20 28 69 66 20 28 65 71 75 61 ... ;; (if (equa
8280: 6c 3f 20 63 6f 6c 20 36 29 0a 09 09 09 09 09 09 l? col 6).......
8290: 09 09 09 20 28 6c 65 74 2a 20 28 28 6d 74 72 78 ... (let* ((mtrx
82a0: 2d 72 63 20 20 28 63 6f 6e 63 20 6c 69 6e 20 22 -rc (conc lin "
82b0: 3a 22 20 36 29 29 0a 09 09 09 09 09 09 09 09 09 :" 6))..........
82c0: 09 28 66 6e 61 6d 65 20 20 20 20 28 69 75 70 3a .(fname (iup:
82d0: 61 74 74 72 69 62 75 74 65 20 6f 62 6a 20 6d 74 attribute obj mt
82e0: 72 78 2d 72 63 29 29 0a 20 20 20 20 20 20 20 20 rx-rc)).
82f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
8300: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
8310: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
8320: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
8330: 20 20 20 20 20 20 20 20 28 73 74 65 70 6e 61 6d (stepnam
8340: 65 20 28 69 75 70 3a 61 74 74 72 69 62 75 74 65 e (iup:attribute
8350: 20 6f 62 6a 20 28 63 6f 6e 63 20 6c 69 6e 20 22 obj (conc lin "
8360: 3a 22 20 31 29 29 29 20 20 20 20 20 20 20 20 20 :" 1)))
8370: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
8380: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
8390: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
83a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
83b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
83c0: 20 20 20 28 63 6f 6d 6d 65 6e 74 20 20 28 69 75 (comment (iu
83d0: 70 3a 61 74 74 72 69 62 75 74 65 20 6f 62 6a 20 p:attribute obj
83e0: 28 63 6f 6e 63 20 6c 69 6e 20 22 3a 22 20 37 29 (conc lin ":" 7)
83f0: 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 ))).
8400: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
8410: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
8420: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
8430: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 (
8440: 63 61 73 65 20 63 6f 6c 0a 20 20 20 20 20 20 20 case col.
8450: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
8460: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
8470: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
8480: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
8490: 20 20 20 20 20 20 0a 20 20 20 20 20 20 20 20 20 .
84a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
84b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
84c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
84d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
84e0: 20 20 20 20 28 28 37 29 20 28 70 72 69 6e 74 20 ((7) (print
84f0: 22 43 6f 6d 6d 65 6e 74 20 66 72 6f 6d 20 73 74 "Comment from st
8500: 65 70 20 22 73 74 65 70 6e 61 6d 65 22 3a 20 22 ep "stepname": "
8510: 63 6f 6d 6d 65 6e 74 29 29 0a 20 20 20 20 20 20 comment)).
8520: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
8530: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
8540: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
8550: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
8560: 20 20 20 20 20 20 20 28 28 38 29 20 28 65 7a 73 ((8) (ezs
8570: 74 65 70 73 3a 73 70 61 77 6e 2d 72 75 6e 2d 66 teps:spawn-run-f
8580: 72 6f 6d 20 74 65 73 74 64 61 74 20 73 74 65 70 rom testdat step
8590: 6e 61 6d 65 20 23 74 29 29 0a 20 20 20 20 20 20 name #t)).
85a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
85b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
85c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
85d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
85e0: 20 20 20 20 20 20 20 28 28 39 29 20 28 65 7a 73 ((9) (ezs
85f0: 74 65 70 73 3a 73 70 61 77 6e 2d 72 75 6e 2d 66 teps:spawn-run-f
8600: 72 6f 6d 20 74 65 73 74 64 61 74 20 73 74 65 70 rom testdat step
8610: 6e 61 6d 65 20 23 66 29 29 0a 20 20 20 20 20 20 name #f)).
8620: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
8630: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
8640: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
8650: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
8660: 20 20 20 20 20 20 20 28 65 6c 73 65 20 28 76 69 (else (vi
8670: 65 77 2d 61 2d 6c 6f 67 20 66 6e 61 6d 65 29 29 ew-a-log fname))
8680: 29 29 29 29 29 29 0a 09 09 09 09 09 20 3b 3b 20 ))))))...... ;;
8690: 28 6c 65 74 20 6c 6f 6f 70 20 28 28 63 6f 75 6e (let loop ((coun
86a0: 74 20 30 29 29 0a 09 09 09 09 09 20 3b 3b 20 20 t 0))...... ;;
86b0: 20 28 69 75 70 3a 61 74 74 72 69 62 75 74 65 2d (iup:attribute-
86c0: 73 65 74 21 20 73 74 65 70 73 2d 6d 61 74 72 69 set! steps-matri
86d0: 78 20 22 46 49 54 54 4f 54 45 58 54 22 20 28 63 x "FITTOTEXT" (c
86e0: 6f 6e 63 20 22 4c 22 20 63 6f 75 6e 74 29 29 0a onc "L" count)).
86f0: 09 09 09 09 09 20 3b 3b 20 20 20 28 69 66 20 28 ..... ;; (if (
8700: 3c 20 63 6f 75 6e 74 20 33 30 29 0a 09 09 09 09 < count 30).....
8710: 09 20 3b 3b 20 20 20 20 20 20 20 28 6c 6f 6f 70 . ;; (loop
8720: 20 28 2b 20 63 6f 75 6e 74 20 31 29 29 29 29 0a (+ count 1)))).
8730: 09 09 09 09 09 20 28 69 75 70 3a 61 74 74 72 69 ..... (iup:attri
8740: 62 75 74 65 2d 73 65 74 21 20 73 74 65 70 73 2d bute-set! steps-
8750: 6d 61 74 72 69 78 20 22 30 3a 31 22 20 22 53 74 matrix "0:1" "St
8760: 65 70 20 4e 61 6d 65 22 29 0a 09 09 09 09 09 20 ep Name")......
8770: 28 69 75 70 3a 61 74 74 72 69 62 75 74 65 2d 73 (iup:attribute-s
8780: 65 74 21 20 73 74 65 70 73 2d 6d 61 74 72 69 78 et! steps-matrix
8790: 20 22 30 3a 32 22 20 22 53 74 61 72 74 22 29 0a "0:2" "Start").
87a0: 09 09 09 09 09 20 28 69 75 70 3a 61 74 74 72 69 ..... (iup:attri
87b0: 62 75 74 65 2d 73 65 74 21 20 73 74 65 70 73 2d bute-set! steps-
87c0: 6d 61 74 72 69 78 20 22 30 3a 33 22 20 22 45 6e matrix "0:3" "En
87d0: 64 22 29 0a 09 09 09 09 09 20 28 69 75 70 3a 61 d")...... (iup:a
87e0: 74 74 72 69 62 75 74 65 2d 73 65 74 21 20 73 74 ttribute-set! st
87f0: 65 70 73 2d 6d 61 74 72 69 78 20 22 57 49 44 54 eps-matrix "WIDT
8800: 48 33 22 20 22 35 30 22 29 0a 09 09 09 09 09 20 H3" "50")......
8810: 28 69 75 70 3a 61 74 74 72 69 62 75 74 65 2d 73 (iup:attribute-s
8820: 65 74 21 20 73 74 65 70 73 2d 6d 61 74 72 69 78 et! steps-matrix
8830: 20 22 30 3a 34 22 20 22 53 74 61 74 75 73 22 29 "0:4" "Status")
8840: 0a 09 09 09 09 09 20 28 69 75 70 3a 61 74 74 72 ...... (iup:attr
8850: 69 62 75 74 65 2d 73 65 74 21 20 73 74 65 70 73 ibute-set! steps
8860: 2d 6d 61 74 72 69 78 20 22 57 49 44 54 48 34 22 -matrix "WIDTH4"
8870: 20 22 35 30 22 29 0a 09 09 09 09 09 20 28 69 75 "50")...... (iu
8880: 70 3a 61 74 74 72 69 62 75 74 65 2d 73 65 74 21 p:attribute-set!
8890: 20 73 74 65 70 73 2d 6d 61 74 72 69 78 20 22 30 steps-matrix "0
88a0: 3a 35 22 20 22 44 75 72 61 74 69 6f 6e 22 29 0a :5" "Duration").
88b0: 09 09 09 09 09 20 28 69 75 70 3a 61 74 74 72 69 ..... (iup:attri
88c0: 62 75 74 65 2d 73 65 74 21 20 73 74 65 70 73 2d bute-set! steps-
88d0: 6d 61 74 72 69 78 20 22 30 3a 36 22 20 22 4c 6f matrix "0:6" "Lo
88e0: 67 20 46 69 6c 65 22 29 0a 09 09 09 09 09 20 28 g File")...... (
88f0: 69 75 70 3a 61 74 74 72 69 62 75 74 65 2d 73 65 iup:attribute-se
8900: 74 21 20 73 74 65 70 73 2d 6d 61 74 72 69 78 20 t! steps-matrix
8910: 22 30 3a 37 22 20 22 43 6f 6d 6d 65 6e 74 22 29 "0:7" "Comment")
8920: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
8930: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
8940: 20 20 20 20 20 20 20 20 20 20 28 69 75 70 3a 61 (iup:a
8950: 74 74 72 69 62 75 74 65 2d 73 65 74 21 20 73 74 ttribute-set! st
8960: 65 70 73 2d 6d 61 74 72 69 78 20 22 30 3a 38 22 eps-matrix "0:8"
8970: 20 22 72 65 72 75 6e 20 6f 6e 6c 79 22 29 0a 20 "rerun only").
8980: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
8990: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
89a0: 20 20 20 20 20 20 20 20 28 69 75 70 3a 61 74 74 (iup:att
89b0: 72 69 62 75 74 65 2d 73 65 74 21 20 73 74 65 70 ribute-set! step
89c0: 73 2d 6d 61 74 72 69 78 20 22 42 47 43 4f 4c 4f s-matrix "BGCOLO
89d0: 52 30 3a 39 22 20 22 31 34 39 20 32 30 38 20 32 R0:9" "149 208 2
89e0: 35 32 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 52").
89f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
8a00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 (i
8a10: 75 70 3a 61 74 74 72 69 62 75 74 65 2d 73 65 74 up:attribute-set
8a20: 21 20 73 74 65 70 73 2d 6d 61 74 72 69 78 20 22 ! steps-matrix "
8a30: 42 47 43 4f 4c 4f 52 30 3a 38 22 20 22 31 34 39 BGCOLOR0:8" "149
8a40: 20 32 30 38 20 32 35 32 22 29 0a 20 20 20 20 20 208 252").
8a50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
8a60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
8a70: 20 20 20 20 28 69 75 70 3a 61 74 74 72 69 62 75 (iup:attribu
8a80: 74 65 2d 73 65 74 21 20 73 74 65 70 73 2d 6d 61 te-set! steps-ma
8a90: 74 72 69 78 20 22 42 47 43 4f 4c 4f 52 30 3a 37 trix "BGCOLOR0:7
8aa0: 22 20 22 31 34 39 20 32 30 38 20 32 35 32 22 29 " "149 208 252")
8ab0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
8ac0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
8ad0: 20 20 20 20 20 20 20 20 20 20 28 69 75 70 3a 61 (iup:a
8ae0: 74 74 72 69 62 75 74 65 2d 73 65 74 21 20 73 74 ttribute-set! st
8af0: 65 70 73 2d 6d 61 74 72 69 78 20 22 30 3a 39 22 eps-matrix "0:9"
8b00: 20 22 72 65 72 75 6e 20 26 20 63 6f 6e 74 69 6e "rerun & contin
8b10: 75 65 22 29 0a 09 09 09 09 09 20 28 69 75 70 3a ue")...... (iup:
8b20: 61 74 74 72 69 62 75 74 65 2d 73 65 74 21 20 73 attribute-set! s
8b30: 74 65 70 73 2d 6d 61 74 72 69 78 20 22 41 4c 49 teps-matrix "ALI
8b40: 47 4e 4d 45 4e 54 31 22 20 22 41 4c 45 46 54 22 GNMENT1" "ALEFT"
8b50: 29 0a 09 09 09 09 09 20 3b 3b 20 28 69 75 70 3a )...... ;; (iup:
8b60: 61 74 74 72 69 62 75 74 65 2d 73 65 74 21 20 73 attribute-set! s
8b70: 74 65 70 73 2d 6d 61 74 72 69 78 20 22 46 49 58 teps-matrix "FIX
8b80: 54 4f 54 45 58 54 22 20 22 43 31 22 29 0a 09 09 TOTEXT" "C1")...
8b90: 09 09 09 20 28 69 75 70 3a 61 74 74 72 69 62 75 ... (iup:attribu
8ba0: 74 65 2d 73 65 74 21 20 73 74 65 70 73 2d 6d 61 te-set! steps-ma
8bb0: 74 72 69 78 20 22 52 45 53 49 5a 45 4d 41 54 52 trix "RESIZEMATR
8bc0: 49 58 22 20 22 59 45 53 22 29 0a 09 09 09 09 09 IX" "YES")......
8bd0: 20 28 6c 65 74 20 28 28 70 72 6f 63 0a 09 09 09 (let ((proc....
8be0: 09 09 09 28 6c 61 6d 62 64 61 20 28 74 65 73 74 ...(lambda (test
8bf0: 64 61 74 29 0a 09 09 09 09 09 09 20 20 28 64 63 dat)....... (dc
8c00: 6f 6d 6d 6f 6e 3a 70 6f 70 75 6c 61 74 65 2d 73 ommon:populate-s
8c10: 74 65 70 73 20 74 65 73 74 73 74 65 70 73 20 73 teps teststeps s
8c20: 74 65 70 73 2d 6d 61 74 72 69 78 29 29 29 29 0a teps-matrix)))).
8c30: 09 09 09 09 09 20 20 20 28 68 61 73 68 2d 74 61 ..... (hash-ta
8c40: 62 6c 65 2d 73 65 74 21 20 77 69 64 67 65 74 73 ble-set! widgets
8c50: 20 22 53 74 65 70 73 4d 61 74 72 69 78 22 20 70 "StepsMatrix" p
8c60: 72 6f 63 29 0a 09 09 09 09 09 20 20 20 28 70 72 roc)...... (pr
8c70: 6f 63 20 74 65 73 74 64 61 74 29 29 0a 09 09 09 oc testdat))....
8c80: 09 09 20 73 74 65 70 73 2d 6d 61 74 72 69 78 29 .. steps-matrix)
8c90: 0a 09 09 09 09 20 20 20 20 20 20 20 3b 3b 20 70 ..... ;; p
8ca0: 6f 70 75 6c 61 74 65 20 74 68 65 20 54 65 73 74 opulate the Test
8cb0: 20 44 61 74 61 20 70 61 6e 65 6c 0a 09 09 09 09 Data panel.....
8cc0: 20 20 20 20 20 20 20 28 69 75 70 3a 66 72 61 6d (iup:fram
8cd0: 65 0a 09 09 09 09 09 23 3a 74 69 74 6c 65 20 22 e......#:title "
8ce0: 54 65 73 74 20 44 61 74 61 22 0a 09 09 09 09 09 Test Data"......
8cf0: 28 6c 65 74 20 28 28 74 65 73 74 2d 64 61 74 61 (let ((test-data
8d00: 0a 09 09 09 09 09 20 20 20 20 20 20 20 28 69 75 ...... (iu
8d10: 70 3a 74 65 78 74 62 6f 78 20 20 3b 3b 20 23 3a p:textbox ;; #:
8d20: 61 63 74 69 6f 6e 20 28 6c 61 6d 62 64 61 20 28 action (lambda (
8d30: 6f 62 6a 20 63 68 61 72 20 76 61 6c 29 0a 09 09 obj char val)...
8d40: 09 09 09 09 3b 3b 20 20 20 09 23 66 29 0a 09 09 ....;; .#f)...
8d50: 09 09 09 09 23 3a 65 78 70 61 6e 64 20 22 59 45 ....#:expand "YE
8d60: 53 22 0a 09 09 09 09 09 09 23 3a 6d 75 6c 74 69 S".......#:multi
8d70: 6c 69 6e 65 20 22 59 45 53 22 0a 09 09 09 09 09 line "YES"......
8d80: 09 23 3a 66 6f 6e 74 20 22 43 6f 75 72 69 65 72 .#:font "Courier
8d90: 20 4e 65 77 2c 20 2d 31 30 22 0a 09 09 09 09 09 New, -10"......
8da0: 09 23 3a 73 69 7a 65 20 22 31 30 30 78 31 30 30 .#:size "100x100
8db0: 22 29 29 29 0a 09 09 09 09 09 20 20 28 68 61 73 ")))...... (has
8dc0: 68 2d 74 61 62 6c 65 2d 73 65 74 21 20 77 69 64 h-table-set! wid
8dd0: 67 65 74 73 20 22 54 65 73 74 20 44 61 74 61 22 gets "Test Data"
8de0: 0a 09 09 09 09 09 09 09 20 20 20 28 6c 61 6d 62 ........ (lamb
8df0: 64 61 20 28 74 65 73 74 64 61 74 29 20 3b 3b 20 da (testdat) ;;
8e00: 0a 09 09 09 09 09 09 09 20 20 20 20 20 28 6c 65 ........ (le
8e10: 74 2a 20 28 28 63 75 72 72 76 61 6c 20 28 69 75 t* ((currval (iu
8e20: 70 3a 61 74 74 72 69 62 75 74 65 20 74 65 73 74 p:attribute test
8e30: 2d 64 61 74 61 20 22 56 41 4c 55 45 22 29 29 20 -data "VALUE"))
8e40: 3b 3b 20 22 54 49 54 4c 45 22 29 29 0a 09 09 09 ;; "TITLE"))....
8e50: 09 09 09 09 09 20 20 20 20 28 66 6d 74 73 74 72 ..... (fmtstr
8e60: 20 20 22 7e 31 30 61 7e 31 30 61 7e 31 30 61 7e "~10a~10a~10a~
8e70: 31 30 61 7e 37 61 7e 37 61 7e 36 61 7e 37 61 7e 10a~7a~7a~6a~7a~
8e80: 61 22 29 20 3b 3b 20 63 61 74 65 67 6f 72 79 2c a") ;; category,
8e90: 76 61 72 69 61 62 6c 65 2c 76 61 6c 75 65 2c 65 variable,value,e
8ea0: 78 70 65 63 74 65 64 2c 74 6f 6c 2c 75 6e 69 74 xpected,tol,unit
8eb0: 73 2c 74 79 70 65 2c 63 6f 6d 6d 65 6e 74 0a 09 s,type,comment..
8ec0: 09 09 09 09 09 09 09 20 20 20 20 28 6e 65 77 76 ....... (newv
8ed0: 61 6c 20 20 28 73 74 72 69 6e 67 2d 69 6e 74 65 al (string-inte
8ee0: 72 73 70 65 72 73 65 20 0a 09 09 09 09 09 09 09 rsperse ........
8ef0: 09 09 20 20 20 20 20 20 28 61 70 70 65 6e 64 0a .. (append.
8f00: 09 09 09 09 09 09 09 09 09 20 20 20 20 20 20 20 .........
8f10: 28 6c 69 73 74 20 0a 09 09 09 09 09 09 09 09 09 (list ..........
8f20: 09 28 66 6f 72 6d 61 74 20 23 66 20 66 6d 74 73 .(format #f fmts
8f30: 74 72 20 22 43 61 74 65 67 6f 72 79 22 20 22 56 tr "Category" "V
8f40: 61 72 69 61 62 6c 65 22 20 22 56 61 6c 75 65 22 ariable" "Value"
8f50: 20 22 45 78 70 65 63 74 65 64 22 20 22 54 6f 6c "Expected" "Tol
8f60: 22 20 22 53 74 61 74 75 73 22 20 22 55 6e 69 74 " "Status" "Unit
8f70: 73 22 20 22 54 79 70 65 22 20 22 43 6f 6d 6d 65 s" "Type" "Comme
8f80: 6e 74 22 29 0a 09 09 09 09 09 09 09 09 09 09 28 nt")...........(
8f90: 66 6f 72 6d 61 74 20 23 66 20 66 6d 74 73 74 72 format #f fmtstr
8fa0: 20 22 3d 3d 3d 3d 3d 3d 3d 3d 22 20 22 3d 3d 3d "========" "===
8fb0: 3d 3d 3d 3d 3d 22 20 22 3d 3d 3d 3d 3d 22 20 22 =====" "=====" "
8fc0: 3d 3d 3d 3d 3d 3d 3d 3d 22 20 22 3d 3d 3d 22 20 ========" "==="
8fd0: 22 3d 3d 3d 3d 3d 3d 22 20 22 3d 3d 3d 3d 3d 22 "======" "====="
8fe0: 20 22 3d 3d 3d 3d 22 20 22 3d 3d 3d 3d 3d 3d 3d "====" "=======
8ff0: 22 29 29 0a 09 09 09 09 09 09 09 09 09 20 20 20 "))..........
9000: 20 20 20 20 28 6d 61 70 20 28 6c 61 6d 62 64 61 (map (lambda
9010: 20 28 78 29 0a 09 09 09 09 09 09 09 09 09 09 20 (x)...........
9020: 20 20 20 20 20 28 66 6f 72 6d 61 74 20 23 66 20 (format #f
9030: 66 6d 74 73 74 72 0a 09 09 09 09 09 09 09 09 09 fmtstr..........
9040: 09 09 20 20 20 20 20 20 28 64 62 3a 74 65 73 74 .. (db:test
9050: 2d 64 61 74 61 2d 67 65 74 2d 63 61 74 65 67 6f -data-get-catego
9060: 72 79 20 78 29 0a 09 09 09 09 09 09 09 09 09 09 ry x)...........
9070: 09 20 20 20 20 20 20 28 64 62 3a 74 65 73 74 2d . (db:test-
9080: 64 61 74 61 2d 67 65 74 2d 76 61 72 69 61 62 6c data-get-variabl
9090: 65 20 78 29 0a 09 09 09 09 09 09 09 09 09 09 09 e x)............
90a0: 20 20 20 20 20 20 28 64 62 3a 74 65 73 74 2d 64 (db:test-d
90b0: 61 74 61 2d 67 65 74 2d 76 61 6c 75 65 20 20 20 ata-get-value
90c0: 20 78 29 0a 09 09 09 09 09 09 09 09 09 09 09 20 x)............
90d0: 20 20 20 20 20 28 64 62 3a 74 65 73 74 2d 64 61 (db:test-da
90e0: 74 61 2d 67 65 74 2d 65 78 70 65 63 74 65 64 20 ta-get-expected
90f0: 78 29 0a 09 09 09 09 09 09 09 09 09 09 09 20 20 x)............
9100: 20 20 20 20 28 64 62 3a 74 65 73 74 2d 64 61 74 (db:test-dat
9110: 61 2d 67 65 74 2d 74 6f 6c 20 20 20 20 20 20 78 a-get-tol x
9120: 29 0a 09 09 09 09 09 09 09 09 09 09 09 20 20 20 )............
9130: 20 20 20 28 64 62 3a 74 65 73 74 2d 64 61 74 61 (db:test-data
9140: 2d 67 65 74 2d 73 74 61 74 75 73 20 20 20 78 29 -get-status x)
9150: 0a 09 09 09 09 09 09 09 09 09 09 09 20 20 20 20 ............
9160: 20 20 28 64 62 3a 74 65 73 74 2d 64 61 74 61 2d (db:test-data-
9170: 67 65 74 2d 75 6e 69 74 73 20 20 20 20 78 29 0a get-units x).
9180: 09 09 09 09 09 09 09 09 09 09 09 20 20 20 20 20 ...........
9190: 20 28 64 62 3a 74 65 73 74 2d 64 61 74 61 2d 67 (db:test-data-g
91a0: 65 74 2d 74 79 70 65 20 20 20 20 20 78 29 0a 09 et-type x)..
91b0: 09 09 09 09 09 09 09 09 09 09 20 20 20 20 20 20 ..........
91c0: 28 64 62 3a 74 65 73 74 2d 64 61 74 61 2d 67 65 (db:test-data-ge
91d0: 74 2d 63 6f 6d 6d 65 6e 74 20 20 78 29 29 29 0a t-comment x))).
91e0: 09 09 09 09 09 09 09 09 09 09 20 20 20 20 28 72 .......... (r
91f0: 6d 74 3a 72 65 61 64 2d 74 65 73 74 2d 64 61 74 mt:read-test-dat
9200: 61 20 72 75 6e 2d 69 64 20 74 65 73 74 2d 69 64 a run-id test-id
9210: 20 22 25 22 29 29 29 0a 09 09 09 09 09 09 09 09 "%"))).........
9220: 09 20 20 20 20 20 20 22 5c 6e 22 29 29 29 0a 09 . "\n")))..
9230: 09 09 09 09 09 09 20 20 20 20 20 20 20 28 69 66 ...... (if
9240: 20 28 6e 6f 74 20 28 65 71 75 61 6c 3f 20 63 75 (not (equal? cu
9250: 72 72 76 61 6c 20 6e 65 77 76 61 6c 29 29 0a 09 rrval newval))..
9260: 09 09 09 09 09 09 09 20 20 20 28 69 75 70 3a 61 ....... (iup:a
9270: 74 74 72 69 62 75 74 65 2d 73 65 74 21 20 74 65 ttribute-set! te
9280: 73 74 2d 64 61 74 61 20 22 56 41 4c 55 45 22 20 st-data "VALUE"
9290: 6e 65 77 76 61 6c 20 29 29 29 29 29 20 3b 3b 20 newval ))))) ;;
92a0: 22 54 49 54 4c 45 22 20 6e 65 77 76 61 6c 29 29 "TITLE" newval))
92b0: 29 29 29 0a 09 09 09 09 09 20 20 74 65 73 74 2d )))...... test-
92c0: 64 61 74 61 29 29 0a 09 09 09 09 20 20 20 20 20 data)).....
92d0: 20 20 3b 3b 28 64 61 73 68 62 6f 61 72 64 3a 72 ;;(dashboard:r
92e0: 75 6e 2d 63 6f 6e 74 72 6f 6c 73 29 0a 09 09 09 un-controls)....
92f0: 09 20 20 20 20 20 20 20 29 29 29 0a 09 09 09 09 . ))).....
9300: 20 28 69 75 70 3a 61 74 74 72 69 62 75 74 65 2d (iup:attribute-
9310: 73 65 74 21 20 74 61 62 73 20 22 54 41 42 54 49 set! tabs "TABTI
9320: 54 4c 45 30 22 20 22 53 74 65 70 73 22 29 0a 09 TLE0" "Steps")..
9330: 09 09 09 20 28 69 75 70 3a 61 74 74 72 69 62 75 ... (iup:attribu
9340: 74 65 2d 73 65 74 21 20 74 61 62 73 20 22 54 41 te-set! tabs "TA
9350: 42 54 49 54 4c 45 31 22 20 22 54 65 73 74 20 44 BTITLE1" "Test D
9360: 61 74 61 22 29 0a 09 09 09 09 20 74 61 62 73 29 ata")..... tabs)
9370: 29 29 29 0a 09 20 20 20 20 28 69 75 70 3a 73 68 ))).. (iup:sh
9380: 6f 77 20 73 65 6c 66 29 0a 09 20 20 20 20 28 69 ow self).. (i
9390: 75 70 3a 63 61 6c 6c 62 61 63 6b 2d 73 65 74 21 up:callback-set!
93a0: 20 2a 74 69 6d 2a 20 22 41 43 54 49 4f 4e 5f 43 *tim* "ACTION_C
93b0: 42 22 0a 09 09 09 20 20 20 20 20 20 20 28 6c 61 B".... (la
93c0: 6d 62 64 61 20 28 78 29 0a 09 09 09 09 20 3b 3b mbda (x)..... ;;
93d0: 20 4e 6f 77 20 73 74 61 72 74 20 6b 65 65 70 69 Now start keepi
93e0: 6e 67 20 74 68 65 20 67 75 69 20 75 70 64 61 74 ng the gui updat
93f0: 65 64 20 66 72 6f 6d 20 74 68 65 20 64 62 0a 09 ed from the db..
9400: 09 09 09 20 28 72 65 66 72 65 73 68 64 61 74 29 ... (refreshdat)
9410: 20 3b 3b 20 75 70 64 61 74 65 20 66 72 6f 6d 20 ;; update from
9420: 74 68 65 20 64 62 20 68 65 72 65 0a 09 09 09 09 the db here.....
9430: 09 3b 28 74 68 72 65 61 64 2d 73 75 73 70 65 6e .;(thread-suspen
9440: 64 21 20 6f 74 68 65 72 2d 74 68 72 65 61 64 29 d! other-thread)
9450: 0a 09 09 09 09 20 28 69 66 20 2a 65 78 69 74 2d ..... (if *exit-
9460: 73 74 61 72 74 65 64 2a 0a 09 09 09 09 20 20 20 started*.....
9470: 20 20 28 73 65 74 21 20 2a 65 78 69 74 2d 73 74 (set! *exit-st
9480: 61 72 74 65 64 2a 20 27 6f 6b 29 29 29 29 29 29 arted* 'ok))))))
9490: 29 29 29 29 0a 0a ))))..