Artifact
197f4966586634a0c7d7600cad276dd0a08b806d :
File
tests/tests.scm
— part of check-in
[8d90044094]
at
2011-08-11 17:06:59
on branch rollup-runs
— Added ability to update the test meta data from the command line
(user:
mrwellan
size: 3819)
[more...]
0000: 28 75 73 65 20 74 65 73 74 29 0a 3b 3b 20 28 72 (use test).;; (r
0010: 65 71 75 69 72 65 2d 6c 69 62 72 61 72 79 20 61 equire-library a
0020: 72 67 73 29 0a 0a 28 69 6e 63 6c 75 64 65 20 22 rgs)..(include "
0030: 2e 2e 2f 63 6f 6d 6d 6f 6e 2e 73 63 6d 22 29 0a ../common.scm").
0040: 28 69 6e 63 6c 75 64 65 20 22 2e 2e 2f 6b 65 79 (include "../key
0050: 73 2e 73 63 6d 22 29 0a 28 69 6e 63 6c 75 64 65 s.scm").(include
0060: 20 22 2e 2e 2f 64 62 2e 73 63 6d 22 29 0a 28 69 "../db.scm").(i
0070: 6e 63 6c 75 64 65 20 22 2e 2e 2f 63 6f 6e 66 69 nclude "../confi
0080: 67 66 2e 73 63 6d 22 29 0a 28 69 6e 63 6c 75 64 gf.scm").(includ
0090: 65 20 22 2e 2e 2f 70 72 6f 63 65 73 73 2e 73 63 e "../process.sc
00a0: 6d 22 29 0a 28 69 6e 63 6c 75 64 65 20 22 2e 2e m").(include "..
00b0: 2f 6c 61 75 6e 63 68 2e 73 63 6d 22 29 0a 28 69 /launch.scm").(i
00c0: 6e 63 6c 75 64 65 20 22 2e 2e 2f 69 74 65 6d 73 nclude "../items
00d0: 2e 73 63 6d 22 29 0a 28 69 6e 63 6c 75 64 65 20 .scm").(include
00e0: 22 2e 2e 2f 72 75 6e 73 2e 73 63 6d 22 29 0a 28 "../runs.scm").(
00f0: 69 6e 63 6c 75 64 65 20 22 2e 2e 2f 6d 65 67 61 include "../mega
0100: 74 65 73 74 2d 76 65 72 73 69 6f 6e 2e 73 63 6d test-version.scm
0110: 22 29 0a 0a 28 64 65 66 69 6e 65 20 63 6f 6e 66 ")..(define conf
0120: 66 69 6c 65 20 23 66 29 0a 28 74 65 73 74 20 22 file #f).(test "
0130: 52 65 61 64 20 61 20 63 6f 6e 66 69 67 22 20 23 Read a config" #
0140: 74 20 28 68 61 73 68 2d 74 61 62 6c 65 3f 20 28 t (hash-table? (
0150: 72 65 61 64 2d 63 6f 6e 66 69 67 20 22 74 65 73 read-config "tes
0160: 74 2e 63 6f 6e 66 69 67 22 20 23 66 20 23 66 29 t.config" #f #f)
0170: 29 29 0a 28 74 65 73 74 20 22 52 65 61 64 20 61 )).(test "Read a
0180: 20 63 6f 6e 66 69 67 20 74 68 61 74 20 64 6f 65 config that doe
0190: 73 6e 27 74 20 65 78 69 73 74 22 20 23 74 20 28 sn't exist" #t (
01a0: 68 61 73 68 2d 74 61 62 6c 65 3f 20 28 72 65 61 hash-table? (rea
01b0: 64 2d 63 6f 6e 66 69 67 20 22 6e 61 64 61 2e 63 d-config "nada.c
01c0: 6f 6e 66 69 67 22 20 23 66 20 23 66 29 29 29 0a onfig" #f #f))).
01d0: 0a 28 73 65 74 21 20 63 6f 6e 66 66 69 6c 65 20 .(set! conffile
01e0: 28 72 65 61 64 2d 63 6f 6e 66 69 67 20 22 74 65 (read-config "te
01f0: 73 74 2e 63 6f 6e 66 69 67 22 20 23 66 20 23 66 st.config" #f #f
0200: 29 29 0a 28 74 65 73 74 20 22 47 65 74 20 61 76 )).(test "Get av
0210: 61 69 6c 61 62 6c 65 20 64 69 73 6b 73 70 61 63 ailable diskspac
0220: 65 22 20 23 74 20 28 6e 75 6d 62 65 72 3f 20 28 e" #t (number? (
0230: 67 65 74 2d 64 66 20 22 2e 2f 22 29 29 29 0a 28 get-df "./"))).(
0240: 74 65 73 74 20 22 47 65 74 20 62 65 73 74 20 64 test "Get best d
0250: 69 72 22 20 23 74 20 28 6c 65 74 20 28 28 62 65 ir" #t (let ((be
0260: 73 74 64 69 72 20 28 67 65 74 2d 62 65 73 74 2d stdir (get-best-
0270: 64 69 73 6b 20 63 6f 6e 66 66 69 6c 65 29 29 29 disk conffile)))
0280: 0a 09 09 09 20 20 20 20 20 20 28 6f 72 20 28 65 .... (or (e
0290: 71 75 61 6c 3f 20 22 2e 2f 22 20 20 20 62 65 73 qual? "./" bes
02a0: 74 64 69 72 29 0a 09 09 09 09 20 20 28 65 71 75 tdir)..... (equ
02b0: 61 6c 3f 20 22 2f 74 6d 70 22 20 62 65 73 74 64 al? "/tmp" bestd
02c0: 69 72 29 29 29 29 0a 28 74 65 73 74 20 22 4d 75 ir)))).(test "Mu
02d0: 6c 74 69 6c 69 6e 65 20 76 61 72 69 61 62 6c 65 ltiline variable
02e0: 22 20 34 20 28 6c 65 6e 67 74 68 20 28 73 74 72 " 4 (length (str
02f0: 69 6e 67 2d 73 70 6c 69 74 20 28 63 6f 6e 66 69 ing-split (confi
0300: 67 2d 6c 6f 6f 6b 75 70 20 63 6f 6e 66 66 69 6c g-lookup conffil
0310: 65 20 22 6d 65 74 61 64 61 74 61 22 20 22 64 65 e "metadata" "de
0320: 73 63 72 69 70 74 69 6f 6e 22 29 20 22 5c 6e 22 scription") "\n"
0330: 29 29 29 0a 0a 3b 3b 20 64 62 0a 28 64 65 66 69 )))..;; db.(defi
0340: 6e 65 20 72 6f 77 20 20 20 20 28 76 65 63 74 6f ne row (vecto
0350: 72 20 22 61 22 20 22 62 22 20 22 63 22 20 22 62 r "a" "b" "c" "b
0360: 6c 61 68 22 29 29 0a 28 64 65 66 69 6e 65 20 68 lah")).(define h
0370: 65 61 64 65 72 20 28 6c 69 73 74 20 22 63 6f 6c eader (list "col
0380: 31 22 20 22 63 6f 6c 32 22 20 22 63 6f 6c 33 22 1" "col2" "col3"
0390: 20 22 63 6f 6c 34 22 29 29 0a 28 74 65 73 74 20 "col4")).(test
03a0: 22 47 65 74 20 72 6f 77 20 62 79 20 68 65 61 64 "Get row by head
03b0: 65 72 22 20 22 62 6c 61 68 22 20 28 64 62 3a 67 er" "blah" (db:g
03c0: 65 74 2d 76 61 6c 75 65 2d 62 79 2d 68 65 61 64 et-value-by-head
03d0: 65 72 20 72 6f 77 20 68 65 61 64 65 72 20 22 63 er row header "c
03e0: 6f 6c 34 22 29 29 0a 0a 3b 3b 20 28 64 65 66 69 ol4"))..;; (defi
03f0: 6e 65 20 2a 74 6f 70 70 61 74 68 2a 20 22 74 65 ne *toppath* "te
0400: 73 74 73 22 29 0a 28 64 65 66 69 6e 65 20 2a 64 sts").(define *d
0410: 62 2a 20 23 66 29 0a 28 74 65 73 74 20 22 73 65 b* #f).(test "se
0420: 74 75 70 20 66 6f 72 20 72 75 6e 22 20 23 74 20 tup for run" #t
0430: 28 62 65 67 69 6e 20 28 73 65 74 75 70 2d 66 6f (begin (setup-fo
0440: 72 2d 72 75 6e 29 0a 09 09 09 09 28 73 74 72 69 r-run).....(stri
0450: 6e 67 3f 20 28 67 65 74 65 6e 76 20 22 4d 54 5f ng? (getenv "MT_
0460: 52 55 4e 5f 41 52 45 41 5f 48 4f 4d 45 22 29 29 RUN_AREA_HOME"))
0470: 29 29 0a 28 74 65 73 74 20 22 6f 70 65 6e 2d 64 )).(test "open-d
0480: 62 22 20 23 74 20 28 62 65 67 69 6e 0a 09 09 20 b" #t (begin...
0490: 20 20 20 20 28 73 65 74 21 20 2a 64 62 2a 20 28 (set! *db* (
04a0: 6f 70 65 6e 2d 64 62 29 29 0a 09 09 20 20 20 20 open-db))...
04b0: 20 28 69 66 20 2a 64 62 2a 20 23 74 20 23 66 29 (if *db* #t #f)
04c0: 29 29 0a 0a 3b 3b 20 71 75 69 74 20 77 61 73 74 ))..;; quit wast
04d0: 69 6e 67 20 74 69 6d 65 20 63 68 61 6e 67 69 6e ing time changin
04e0: 67 20 64 62 20 74 6f 20 2a 64 62 2a 0a 28 64 65 g db to *db*.(de
04f0: 66 69 6e 65 20 64 62 20 2a 64 62 2a 29 0a 0a 28 fine db *db*)..(
0500: 74 65 73 74 20 22 67 65 74 20 63 70 75 20 6c 6f test "get cpu lo
0510: 61 64 22 20 23 74 20 28 6e 75 6d 62 65 72 3f 20 ad" #t (number?
0520: 28 67 65 74 2d 63 70 75 2d 6c 6f 61 64 29 29 29 (get-cpu-load)))
0530: 0a 28 74 65 73 74 20 22 67 65 74 20 75 6e 61 6d .(test "get unam
0540: 65 22 20 20 20 20 23 74 20 28 73 74 72 69 6e 67 e" #t (string
0550: 3f 20 28 67 65 74 2d 75 6e 61 6d 65 29 29 29 0a ? (get-uname))).
0560: 0a 28 74 65 73 74 20 22 67 65 74 20 76 61 6c 69 .(test "get vali
0570: 64 76 61 6c 75 65 73 20 61 73 20 6c 69 73 74 22 dvalues as list"
0580: 20 28 6c 69 73 74 20 22 73 74 61 72 74 22 20 22 (list "start" "
0590: 65 6e 64 22 20 22 63 6f 6d 70 6c 65 74 65 64 22 end" "completed"
05a0: 29 0a 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d ). (string-
05b0: 73 70 6c 69 74 20 28 63 6f 6e 66 69 67 2d 6c 6f split (config-lo
05c0: 6f 6b 75 70 20 2a 63 6f 6e 66 69 67 64 61 74 2a okup *configdat*
05d0: 20 22 76 61 6c 69 64 76 61 6c 75 65 73 22 20 22 "validvalues" "
05e0: 73 74 61 74 65 22 29 29 29 0a 0a 28 66 6f 72 2d state")))..(for-
05f0: 65 61 63 68 20 28 6c 61 6d 62 64 61 20 28 69 74 each (lambda (it
0600: 65 6d 29 0a 09 20 20 20 20 28 74 65 73 74 20 28 em).. (test (
0610: 63 6f 6e 63 20 22 67 65 74 20 76 61 6c 69 64 20 conc "get valid
0620: 69 74 65 6d 73 20 28 22 20 69 74 65 6d 20 22 29 items (" item ")
0630: 22 29 0a 09 09 20 20 69 74 65 6d 20 28 63 68 65 ")... item (che
0640: 63 6b 2d 76 61 6c 69 64 2d 69 74 65 6d 73 20 22 ck-valid-items "
0650: 73 74 61 74 65 22 20 69 74 65 6d 29 29 29 0a 09 state" item)))..
0660: 20 20 28 6c 69 73 74 20 22 73 74 61 72 74 22 20 (list "start"
0670: 22 65 6e 64 22 20 22 63 6f 6d 70 6c 65 74 65 64 "end" "completed
0680: 22 29 29 0a 0a 28 66 6f 72 2d 65 61 63 68 20 28 "))..(for-each (
0690: 6c 61 6d 62 64 61 20 28 69 74 65 6d 29 0a 09 20 lambda (item)..
06a0: 20 20 20 28 74 65 73 74 20 28 63 6f 6e 63 20 22 (test (conc "
06b0: 67 65 74 20 76 61 6c 69 64 20 69 74 65 6d 73 20 get valid items
06c0: 28 22 20 69 74 65 6d 20 22 29 22 29 0a 09 09 20 (" item ")")...
06d0: 20 69 74 65 6d 20 28 63 68 65 63 6b 2d 76 61 6c item (check-val
06e0: 69 64 2d 69 74 65 6d 73 20 22 73 74 61 74 75 73 id-items "status
06f0: 22 20 69 74 65 6d 29 29 29 0a 09 20 20 28 6c 69 " item))).. (li
0700: 73 74 20 22 70 61 73 73 22 20 22 66 61 69 6c 22 st "pass" "fail"
0710: 20 22 6e 2f 61 22 29 29 0a 0a 28 74 65 73 74 20 "n/a"))..(test
0720: 22 77 72 69 74 65 20 65 6e 76 20 66 69 6c 65 73 "write env files
0730: 22 20 22 6e 61 64 61 2e 63 73 68 22 20 28 62 65 " "nada.csh" (be
0740: 67 69 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 gin.
0750: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0760: 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d (save-
0770: 65 6e 76 69 72 6f 6e 6d 65 6e 74 2d 61 73 2d 66 environment-as-f
0780: 69 6c 65 73 20 22 6e 61 64 61 22 29 0a 20 20 20 iles "nada").
0790: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
07a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
07b0: 20 20 20 28 61 6e 64 20 28 66 69 6c 65 2d 65 78 (and (file-ex
07c0: 69 73 74 73 3f 20 22 6e 61 64 61 2e 73 68 22 29 ists? "nada.sh")
07d0: 0a 20 20 20 20 09 09 09 20 20 20 20 20 20 20 20 . ...
07e0: 20 20 20 20 20 20 20 20 20 28 66 69 6c 65 2d 65 (file-e
07f0: 78 69 73 74 73 3f 20 22 6e 61 64 61 2e 63 73 68 xists? "nada.csh
0800: 22 29 29 29 29 0a 0a 28 74 65 73 74 20 22 67 65 "))))..(test "ge
0810: 74 20 61 6c 6c 20 6c 65 67 61 6c 20 74 65 73 74 t all legal test
0820: 73 22 20 28 6c 69 73 74 20 22 72 75 6e 66 69 72 s" (list "runfir
0830: 73 74 22 20 22 72 75 6e 77 69 74 68 66 69 72 73 st" "runwithfirs
0840: 74 22 20 22 73 69 6e 67 6c 65 74 65 73 74 22 20 t" "singletest"
0850: 22 73 69 6e 67 6c 65 74 65 73 74 32 22 20 22 73 "singletest2" "s
0860: 71 6c 69 74 65 73 70 65 65 64 22 29 20 28 73 6f qlitespeed") (so
0870: 72 74 20 28 67 65 74 2d 61 6c 6c 2d 6c 65 67 61 rt (get-all-lega
0880: 6c 2d 74 65 73 74 73 29 20 73 74 72 69 6e 67 3c l-tests) string<
0890: 3d 3f 29 29 0a 0a 28 74 65 73 74 20 22 72 65 67 =?))..(test "reg
08a0: 69 73 74 65 72 2d 74 65 73 74 2c 20 74 65 73 74 ister-test, test
08b0: 20 69 6e 66 6f 22 20 22 4e 4f 54 5f 53 54 41 52 info" "NOT_STAR
08c0: 54 45 44 22 0a 20 20 20 20 20 20 28 62 65 67 69 TED". (begi
08d0: 6e 0a 09 28 72 65 67 69 73 74 65 72 2d 74 65 73 n..(register-tes
08e0: 74 20 2a 64 62 2a 20 31 20 22 6e 61 64 61 22 20 t *db* 1 "nada"
08f0: 22 22 20 27 28 22 74 61 67 31 22 20 22 74 61 67 "" '("tag1" "tag
0900: 32 22 20 22 74 61 67 33 22 29 29 0a 09 28 74 65 2" "tag3"))..(te
0910: 73 74 3a 67 65 74 2d 73 74 61 74 65 20 28 64 62 st:get-state (db
0920: 3a 67 65 74 2d 74 65 73 74 2d 69 6e 66 6f 20 2a :get-test-info *
0930: 64 62 2a 20 31 20 22 6e 61 64 61 22 20 22 22 29 db* 1 "nada" "")
0940: 29 29 29 0a 0a 28 74 65 73 74 20 22 67 65 74 2d )))..(test "get-
0950: 6b 65 79 73 22 20 22 73 79 73 6e 61 6d 65 22 20 keys" "sysname"
0960: 28 6b 65 79 3a 67 65 74 2d 66 69 65 6c 64 6e 61 (key:get-fieldna
0970: 6d 65 20 28 63 61 72 20 28 73 6f 72 74 20 28 64 me (car (sort (d
0980: 62 2d 67 65 74 2d 6b 65 79 73 20 2a 64 62 2a 29 b-get-keys *db*)
0990: 28 6c 61 6d 62 64 61 20 28 61 20 62 29 28 73 74 (lambda (a b)(st
09a0: 72 69 6e 67 3e 3d 3f 20 28 76 65 63 74 6f 72 2d ring>=? (vector-
09b0: 72 65 66 20 61 20 30 29 28 76 65 63 74 6f 72 2d ref a 0)(vector-
09c0: 72 65 66 20 62 20 30 29 29 29 29 29 29 29 0a 0a ref b 0)))))))..
09d0: 28 64 65 66 69 6e 65 20 72 65 6d 61 72 67 73 20 (define remargs
09e0: 28 61 72 67 73 3a 67 65 74 2d 61 72 67 73 0a 09 (args:get-args..
09f0: 09 20 27 28 22 62 61 72 22 20 22 66 6f 6f 22 20 . '("bar" "foo"
0a00: 22 3a 72 75 6e 6e 61 6d 65 22 20 22 62 6f 62 22 ":runname" "bob"
0a10: 20 22 3a 73 79 73 6e 61 6d 65 22 20 22 75 62 75 ":sysname" "ubu
0a20: 6e 74 75 22 20 22 3a 66 73 6e 61 6d 65 22 20 22 ntu" ":fsname" "
0a30: 6e 66 73 22 20 22 3a 64 61 74 61 70 61 74 68 22 nfs" ":datapath"
0a40: 20 22 62 6c 61 68 2f 66 6f 6f 22 20 22 6e 61 64 "blah/foo" "nad
0a50: 61 22 29 0a 09 09 20 28 6c 69 73 74 20 22 3a 72 a")... (list ":r
0a60: 75 6e 6e 61 6d 65 22 20 22 3a 73 74 61 74 65 22 unname" ":state"
0a70: 20 22 3a 73 74 61 74 75 73 22 29 0a 09 09 20 28 ":status")... (
0a80: 6c 69 73 74 20 22 2d 68 22 29 0a 09 09 20 61 72 list "-h")... ar
0a90: 67 73 3a 61 72 67 2d 68 61 73 68 0a 09 09 20 30 gs:arg-hash... 0
0aa0: 29 29 0a 0a 28 74 65 73 74 20 22 72 65 67 69 73 ))..(test "regis
0ab0: 74 65 72 2d 72 75 6e 22 20 23 74 20 28 6e 75 6d ter-run" #t (num
0ac0: 62 65 72 3f 20 28 72 65 67 69 73 74 65 72 2d 72 ber? (register-r
0ad0: 75 6e 20 2a 64 62 2a 20 28 64 62 2d 67 65 74 2d un *db* (db-get-
0ae0: 6b 65 79 73 20 2a 64 62 2a 29 29 29 29 0a 0a 3b keys *db*))))..;
0af0: 3b 28 74 65 73 74 20 22 75 70 64 61 74 65 2d 74 ;(test "update-t
0b00: 65 73 74 2d 69 6e 66 6f 22 20 23 74 20 28 74 65 est-info" #t (te
0b10: 73 74 2d 75 70 64 61 74 65 2d 6d 65 74 61 2d 69 st-update-meta-i
0b20: 6e 66 6f 20 2a 64 62 2a 20 31 20 22 6e 61 64 61 nfo *db* 1 "nada
0b30: 22 20 0a 28 73 65 74 65 6e 76 20 22 42 4c 41 48 " .(setenv "BLAH
0b40: 46 4f 4f 22 20 22 31 32 33 34 22 29 0a 28 75 6e FOO" "1234").(un
0b50: 73 65 74 65 6e 76 20 22 4e 41 44 41 46 4f 4f 22 setenv "NADAFOO"
0b60: 29 0a 28 74 65 73 74 20 22 65 6e 76 20 74 65 6d ).(test "env tem
0b70: 70 20 6f 76 65 72 72 69 64 65 73 22 20 22 78 79 p overrides" "xy
0b80: 7a 22 20 28 6c 65 74 20 28 28 70 72 65 76 76 61 z" (let ((prevva
0b90: 6c 73 20 28 61 6c 69 73 74 2d 3e 65 6e 76 2d 76 ls (alist->env-v
0ba0: 61 72 73 20 27 28 28 22 42 4c 41 48 46 4f 4f 22 ars '(("BLAHFOO"
0bb0: 20 34 33 32 31 29 28 22 4e 41 44 41 46 4f 4f 22 4321)("NADAFOO"
0bc0: 20 78 79 7a 29 29 29 29 0a 09 09 09 09 20 20 20 xyz)))).....
0bd0: 20 20 20 20 28 72 65 73 75 6c 74 20 20 20 28 67 (result (g
0be0: 65 74 2d 65 6e 76 69 72 6f 6e 6d 65 6e 74 2d 76 et-environment-v
0bf0: 61 72 69 61 62 6c 65 20 22 4e 41 44 41 46 4f 4f ariable "NADAFOO
0c00: 22 29 29 29 0a 09 09 09 09 20 20 20 20 28 61 6c ")))..... (al
0c10: 69 73 74 2d 3e 65 6e 76 2d 76 61 72 73 20 70 72 ist->env-vars pr
0c20: 65 76 76 61 6c 73 29 0a 09 09 09 09 20 20 20 20 evvals).....
0c30: 72 65 73 75 6c 74 29 29 0a 0a 28 74 65 73 74 20 result))..(test
0c40: 22 65 6e 76 20 72 65 73 74 6f 72 65 64 22 20 22 "env restored" "
0c50: 31 32 33 34 22 20 28 67 65 74 2d 65 6e 76 69 72 1234" (get-envir
0c60: 6f 6e 6d 65 6e 74 2d 76 61 72 69 61 62 6c 65 20 onment-variable
0c70: 22 42 4c 41 48 46 4f 4f 22 29 29 0a 0a 0a 28 74 "BLAHFOO"))...(t
0c80: 65 73 74 20 22 49 74 65 6d 73 20 61 73 73 6f 63 est "Items assoc
0c90: 22 20 22 45 6c 65 70 68 61 6e 74 22 20 28 63 61 " "Elephant" (ca
0ca0: 64 61 72 20 28 63 61 64 72 20 28 69 74 65 6d 2d dar (cadr (item-
0cb0: 61 73 73 6f 63 2d 3e 69 74 65 6d 2d 6c 69 73 74 assoc->item-list
0cc0: 20 27 28 28 22 41 4e 49 4d 41 4c 22 20 22 45 6c '(("ANIMAL" "El
0cd0: 65 70 68 61 6e 74 20 4c 69 6f 6e 22 29 28 22 53 ephant Lion")("S
0ce0: 45 41 53 4f 4e 22 20 22 53 70 72 69 6e 67 20 46 EASON" "Spring F
0cf0: 61 6c 6c 22 29 29 29 29 29 29 0a 28 73 65 74 21 all")))))).(set!
0d00: 20 2a 76 65 72 62 6f 73 69 74 79 2a 20 36 29 0a *verbosity* 6).
0d10: 28 74 65 73 74 20 22 49 74 65 6d 73 20 61 73 73 (test "Items ass
0d20: 6f 63 22 20 27 28 29 28 69 74 65 6d 2d 61 73 73 oc" '()(item-ass
0d30: 6f 63 2d 3e 69 74 65 6d 2d 6c 69 73 74 20 27 28 oc->item-list '(
0d40: 28 22 61 22 20 22 61 20 62 20 63 20 64 22 29 28 ("a" "a b c d")(
0d50: 22 62 22 20 22 63 20 64 20 65 22 29 28 22 63 22 "b" "c d e")("c"
0d60: 20 22 22 29 28 22 64 22 29 29 29 29 0a 28 73 65 "")("d")))).(se
0d70: 74 21 20 2a 76 65 72 62 6f 73 69 74 79 2a 20 2d t! *verbosity* -
0d80: 31 29 0a 28 74 65 73 74 20 22 49 74 65 6d 73 20 1).(test "Items
0d90: 61 73 73 6f 63 20 65 6d 70 74 79 20 69 74 65 6d assoc empty item
0da0: 73 22 20 27 28 29 20 20 20 28 69 74 65 6d 2d 61 s" '() (item-a
0db0: 73 73 6f 63 2d 3e 69 74 65 6d 2d 6c 69 73 74 20 ssoc->item-list
0dc0: 27 28 28 22 41 22 29 29 29 29 0a 28 73 65 74 21 '(("A")))).(set!
0dd0: 20 2a 76 65 72 62 6f 73 69 74 79 2a 20 31 29 0a *verbosity* 1).
0de0: 28 74 65 73 74 20 22 49 74 65 6d 73 20 74 61 62 (test "Items tab
0df0: 6c 65 22 20 22 53 45 41 53 4f 4e 22 20 28 63 61 le" "SEASON" (ca
0e00: 61 64 61 72 20 28 69 74 65 6d 2d 74 61 62 6c 65 adar (item-table
0e10: 2d 3e 69 74 65 6d 2d 6c 69 73 74 20 27 28 28 22 ->item-list '(("
0e20: 41 4e 49 4d 41 4c 22 20 22 45 6c 65 70 68 61 6e ANIMAL" "Elephan
0e30: 74 20 4c 69 6f 6e 22 29 28 22 53 45 41 53 4f 4e t Lion")("SEASON
0e40: 22 20 22 53 70 72 69 6e 67 20 57 69 6e 74 65 72 " "Spring Winter
0e50: 22 29 29 29 29 29 0a 28 74 65 73 74 20 22 49 74 "))))).(test "It
0e60: 65 6d 73 20 74 61 62 6c 65 20 65 6d 70 74 79 20 ems table empty
0e70: 69 74 65 6d 73 20 49 22 20 27 28 29 20 28 69 74 items I" '() (it
0e80: 65 6d 2d 74 61 62 6c 65 2d 3e 69 74 65 6d 2d 6c em-table->item-l
0e90: 69 73 74 20 27 28 28 22 41 22 29 29 29 29 0a 28 ist '(("A")))).(
0ea0: 74 65 73 74 20 22 49 74 65 6d 73 20 74 61 62 6c test "Items tabl
0eb0: 65 20 65 6d 70 74 79 20 69 74 65 6d 73 20 49 49 e empty items II
0ec0: 22 20 27 28 29 20 28 69 74 65 6d 2d 74 61 62 6c " '() (item-tabl
0ed0: 65 2d 3e 69 74 65 6d 2d 6c 69 73 74 20 27 28 28 e->item-list '((
0ee0: 22 41 22 20 22 22 29 29 29 29 0a "A" "")))).