Megatest

Hex Artifact Content
Login

Artifact 51a14a852438535d6880f7f884011a48621069b6:


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 29 29 29 0a 28 74 65  t.config"))).(te
0170: 73 74 20 22 52 65 61 64 20 61 20 63 6f 6e 66 69  st "Read a confi
0180: 67 20 74 68 61 74 20 64 6f 65 73 6e 27 74 20 65  g that doesn't e
0190: 78 69 73 74 22 20 23 74 20 28 68 61 73 68 2d 74  xist" #t (hash-t
01a0: 61 62 6c 65 3f 20 28 72 65 61 64 2d 63 6f 6e 66  able? (read-conf
01b0: 69 67 20 22 6e 61 64 61 2e 63 6f 6e 66 69 67 22  ig "nada.config"
01c0: 29 29 29 0a 0a 28 73 65 74 21 20 63 6f 6e 66 66  )))..(set! conff
01d0: 69 6c 65 20 28 72 65 61 64 2d 63 6f 6e 66 69 67  ile (read-config
01e0: 20 22 74 65 73 74 2e 63 6f 6e 66 69 67 22 29 29   "test.config"))
01f0: 0a 28 74 65 73 74 20 22 47 65 74 20 61 76 61 69  .(test "Get avai
0200: 6c 61 62 6c 65 20 64 69 73 6b 73 70 61 63 65 22  lable diskspace"
0210: 20 23 74 20 28 6e 75 6d 62 65 72 3f 20 28 67 65   #t (number? (ge
0220: 74 2d 64 66 20 22 2e 2f 22 29 29 29 0a 28 74 65  t-df "./"))).(te
0230: 73 74 20 22 47 65 74 20 62 65 73 74 20 64 69 72  st "Get best dir
0240: 22 20 23 74 20 28 6c 65 74 20 28 28 62 65 73 74  " #t (let ((best
0250: 64 69 72 20 28 67 65 74 2d 62 65 73 74 2d 64 69  dir (get-best-di
0260: 73 6b 20 63 6f 6e 66 66 69 6c 65 29 29 29 0a 09  sk conffile)))..
0270: 09 09 20 20 20 20 20 20 28 6f 72 20 28 65 71 75  ..      (or (equ
0280: 61 6c 3f 20 22 2e 2f 22 20 20 20 62 65 73 74 64  al? "./"   bestd
0290: 69 72 29 0a 09 09 09 09 20 20 28 65 71 75 61 6c  ir).....  (equal
02a0: 3f 20 22 2f 74 6d 70 22 20 62 65 73 74 64 69 72  ? "/tmp" bestdir
02b0: 29 29 29 29 0a 0a 3b 3b 20 64 62 0a 28 64 65 66  ))))..;; db.(def
02c0: 69 6e 65 20 72 6f 77 20 20 20 20 28 76 65 63 74  ine row    (vect
02d0: 6f 72 20 22 61 22 20 22 62 22 20 22 63 22 20 22  or "a" "b" "c" "
02e0: 62 6c 61 68 22 29 29 0a 28 64 65 66 69 6e 65 20  blah")).(define 
02f0: 68 65 61 64 65 72 20 28 6c 69 73 74 20 22 63 6f  header (list "co
0300: 6c 31 22 20 22 63 6f 6c 32 22 20 22 63 6f 6c 33  l1" "col2" "col3
0310: 22 20 22 63 6f 6c 34 22 29 29 0a 28 74 65 73 74  " "col4")).(test
0320: 20 22 47 65 74 20 72 6f 77 20 62 79 20 68 65 61   "Get row by hea
0330: 64 65 72 22 20 22 62 6c 61 68 22 20 28 64 62 3a  der" "blah" (db:
0340: 67 65 74 2d 76 61 6c 75 65 2d 62 79 2d 68 65 61  get-value-by-hea
0350: 64 65 72 20 72 6f 77 20 68 65 61 64 65 72 20 22  der row header "
0360: 63 6f 6c 34 22 29 29 0a 0a 3b 3b 20 28 64 65 66  col4"))..;; (def
0370: 69 6e 65 20 2a 74 6f 70 70 61 74 68 2a 20 22 74  ine *toppath* "t
0380: 65 73 74 73 22 29 0a 28 64 65 66 69 6e 65 20 2a  ests").(define *
0390: 64 62 2a 20 23 66 29 0a 28 74 65 73 74 20 22 73  db* #f).(test "s
03a0: 65 74 75 70 20 66 6f 72 20 72 75 6e 22 20 23 74  etup for run" #t
03b0: 20 28 62 65 67 69 6e 20 28 73 65 74 75 70 2d 66   (begin (setup-f
03c0: 6f 72 2d 72 75 6e 29 0a 09 09 09 09 28 73 74 72  or-run).....(str
03d0: 69 6e 67 3f 20 28 67 65 74 65 6e 76 20 22 4d 54  ing? (getenv "MT
03e0: 5f 52 55 4e 5f 41 52 45 41 5f 48 4f 4d 45 22 29  _RUN_AREA_HOME")
03f0: 29 29 29 0a 28 74 65 73 74 20 22 6f 70 65 6e 2d  ))).(test "open-
0400: 64 62 22 20 23 74 20 28 62 65 67 69 6e 0a 09 09  db" #t (begin...
0410: 20 20 20 20 20 28 73 65 74 21 20 2a 64 62 2a 20       (set! *db* 
0420: 28 6f 70 65 6e 2d 64 62 29 29 0a 09 09 20 20 20  (open-db))...   
0430: 20 20 28 69 66 20 2a 64 62 2a 20 23 74 20 23 66    (if *db* #t #f
0440: 29 29 29 0a 0a 3b 3b 20 71 75 69 74 20 77 61 73  )))..;; quit was
0450: 74 69 6e 67 20 74 69 6d 65 20 63 68 61 6e 67 69  ting time changi
0460: 6e 67 20 64 62 20 74 6f 20 2a 64 62 2a 0a 28 64  ng db to *db*.(d
0470: 65 66 69 6e 65 20 64 62 20 2a 64 62 2a 29 0a 0a  efine db *db*)..
0480: 28 74 65 73 74 20 22 67 65 74 20 63 70 75 20 6c  (test "get cpu l
0490: 6f 61 64 22 20 23 74 20 28 6e 75 6d 62 65 72 3f  oad" #t (number?
04a0: 20 28 67 65 74 2d 63 70 75 2d 6c 6f 61 64 29 29   (get-cpu-load))
04b0: 29 0a 28 74 65 73 74 20 22 67 65 74 20 75 6e 61  ).(test "get una
04c0: 6d 65 22 20 20 20 20 23 74 20 28 73 74 72 69 6e  me"    #t (strin
04d0: 67 3f 20 28 67 65 74 2d 75 6e 61 6d 65 29 29 29  g? (get-uname)))
04e0: 0a 0a 28 74 65 73 74 20 22 67 65 74 20 76 61 6c  ..(test "get val
04f0: 69 64 76 61 6c 75 65 73 20 61 73 20 6c 69 73 74  idvalues as list
0500: 22 20 28 6c 69 73 74 20 22 73 74 61 72 74 22 20  " (list "start" 
0510: 22 65 6e 64 22 20 22 63 6f 6d 70 6c 65 74 65 64  "end" "completed
0520: 22 29 0a 20 20 20 20 20 20 28 73 74 72 69 6e 67  ").      (string
0530: 2d 73 70 6c 69 74 20 28 63 6f 6e 66 69 67 2d 6c  -split (config-l
0540: 6f 6f 6b 75 70 20 2a 63 6f 6e 66 69 67 64 61 74  ookup *configdat
0550: 2a 20 22 76 61 6c 69 64 76 61 6c 75 65 73 22 20  * "validvalues" 
0560: 22 73 74 61 74 65 22 29 29 29 0a 0a 28 66 6f 72  "state")))..(for
0570: 2d 65 61 63 68 20 28 6c 61 6d 62 64 61 20 28 69  -each (lambda (i
0580: 74 65 6d 29 0a 09 20 20 20 20 28 74 65 73 74 20  tem)..    (test 
0590: 28 63 6f 6e 63 20 22 67 65 74 20 76 61 6c 69 64  (conc "get valid
05a0: 20 69 74 65 6d 73 20 28 22 20 69 74 65 6d 20 22   items (" item "
05b0: 29 22 29 0a 09 09 20 20 69 74 65 6d 20 28 63 68  )")...  item (ch
05c0: 65 63 6b 2d 76 61 6c 69 64 2d 69 74 65 6d 73 20  eck-valid-items 
05d0: 22 73 74 61 74 65 22 20 69 74 65 6d 29 29 29 0a  "state" item))).
05e0: 09 20 20 28 6c 69 73 74 20 22 73 74 61 72 74 22  .  (list "start"
05f0: 20 22 65 6e 64 22 20 22 63 6f 6d 70 6c 65 74 65   "end" "complete
0600: 64 22 29 29 0a 0a 28 66 6f 72 2d 65 61 63 68 20  d"))..(for-each 
0610: 28 6c 61 6d 62 64 61 20 28 69 74 65 6d 29 0a 09  (lambda (item)..
0620: 20 20 20 20 28 74 65 73 74 20 28 63 6f 6e 63 20      (test (conc 
0630: 22 67 65 74 20 76 61 6c 69 64 20 69 74 65 6d 73  "get valid items
0640: 20 28 22 20 69 74 65 6d 20 22 29 22 29 0a 09 09   (" item ")")...
0650: 20 20 69 74 65 6d 20 28 63 68 65 63 6b 2d 76 61    item (check-va
0660: 6c 69 64 2d 69 74 65 6d 73 20 22 73 74 61 74 75  lid-items "statu
0670: 73 22 20 69 74 65 6d 29 29 29 0a 09 20 20 28 6c  s" item)))..  (l
0680: 69 73 74 20 22 70 61 73 73 22 20 22 66 61 69 6c  ist "pass" "fail
0690: 22 20 22 6e 2f 61 22 29 29 0a 0a 28 74 65 73 74  " "n/a"))..(test
06a0: 20 22 77 72 69 74 65 20 65 6e 76 20 66 69 6c 65   "write env file
06b0: 73 22 20 22 6e 61 64 61 2e 63 73 68 22 20 28 62  s" "nada.csh" (b
06c0: 65 67 69 6e 0a 20 20 20 20 20 20 20 20 20 20 20  egin.           
06d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
06e0: 20 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65             (save
06f0: 2d 65 6e 76 69 72 6f 6e 6d 65 6e 74 2d 61 73 2d  -environment-as-
0700: 66 69 6c 65 73 20 22 6e 61 64 61 22 29 0a 20 20  files "nada").  
0710: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0720: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0730: 20 20 20 20 28 61 6e 64 20 28 66 69 6c 65 2d 65      (and (file-e
0740: 78 69 73 74 73 3f 20 22 6e 61 64 61 2e 73 68 22  xists? "nada.sh"
0750: 29 0a 20 20 20 20 09 09 09 20 20 20 20 20 20 20  ).    ...       
0760: 20 20 20 20 20 20 20 20 20 20 28 66 69 6c 65 2d            (file-
0770: 65 78 69 73 74 73 3f 20 22 6e 61 64 61 2e 63 73  exists? "nada.cs
0780: 68 22 29 29 29 29 0a 0a 28 74 65 73 74 20 22 67  h"))))..(test "g
0790: 65 74 20 61 6c 6c 20 6c 65 67 61 6c 20 74 65 73  et all legal tes
07a0: 74 73 22 20 28 6c 69 73 74 20 22 72 75 6e 66 69  ts" (list "runfi
07b0: 72 73 74 22 20 22 72 75 6e 77 69 74 68 66 69 72  rst" "runwithfir
07c0: 73 74 22 20 22 73 69 6e 67 6c 65 74 65 73 74 22  st" "singletest"
07d0: 20 22 73 69 6e 67 6c 65 74 65 73 74 32 22 20 22   "singletest2" "
07e0: 73 71 6c 69 74 65 73 70 65 65 64 22 29 20 28 73  sqlitespeed") (s
07f0: 6f 72 74 20 28 67 65 74 2d 61 6c 6c 2d 6c 65 67  ort (get-all-leg
0800: 61 6c 2d 74 65 73 74 73 29 20 73 74 72 69 6e 67  al-tests) string
0810: 3c 3d 3f 29 29 0a 0a 28 74 65 73 74 20 22 72 65  <=?))..(test "re
0820: 67 69 73 74 65 72 2d 74 65 73 74 2c 20 74 65 73  gister-test, tes
0830: 74 20 69 6e 66 6f 22 20 22 4e 4f 54 5f 53 54 41  t info" "NOT_STA
0840: 52 54 45 44 22 0a 20 20 20 20 20 20 28 62 65 67  RTED".      (beg
0850: 69 6e 0a 09 28 72 65 67 69 73 74 65 72 2d 74 65  in..(register-te
0860: 73 74 20 2a 64 62 2a 20 31 20 22 6e 61 64 61 22  st *db* 1 "nada"
0870: 20 22 22 29 0a 09 28 74 65 73 74 3a 67 65 74 2d   "")..(test:get-
0880: 73 74 61 74 65 20 28 64 62 3a 67 65 74 2d 74 65  state (db:get-te
0890: 73 74 2d 69 6e 66 6f 20 2a 64 62 2a 20 31 20 22  st-info *db* 1 "
08a0: 6e 61 64 61 22 20 22 22 29 29 29 29 0a 0a 28 74  nada" ""))))..(t
08b0: 65 73 74 20 22 67 65 74 2d 6b 65 79 73 22 20 22  est "get-keys" "
08c0: 73 79 73 6e 61 6d 65 22 20 28 6b 65 79 3a 67 65  sysname" (key:ge
08d0: 74 2d 66 69 65 6c 64 6e 61 6d 65 20 28 63 61 72  t-fieldname (car
08e0: 20 28 73 6f 72 74 20 28 64 62 2d 67 65 74 2d 6b   (sort (db-get-k
08f0: 65 79 73 20 2a 64 62 2a 29 28 6c 61 6d 62 64 61  eys *db*)(lambda
0900: 20 28 61 20 62 29 28 73 74 72 69 6e 67 3e 3d 3f   (a b)(string>=?
0910: 20 28 76 65 63 74 6f 72 2d 72 65 66 20 61 20 30   (vector-ref a 0
0920: 29 28 76 65 63 74 6f 72 2d 72 65 66 20 62 20 30  )(vector-ref b 0
0930: 29 29 29 29 29 29 29 0a 0a 28 64 65 66 69 6e 65  )))))))..(define
0940: 20 72 65 6d 61 72 67 73 20 28 61 72 67 73 3a 67   remargs (args:g
0950: 65 74 2d 61 72 67 73 0a 09 09 20 27 28 22 62 61  et-args... '("ba
0960: 72 22 20 22 66 6f 6f 22 20 22 3a 72 75 6e 6e 61  r" "foo" ":runna
0970: 6d 65 22 20 22 62 6f 62 22 20 22 3a 73 79 73 6e  me" "bob" ":sysn
0980: 61 6d 65 22 20 22 75 62 75 6e 74 75 22 20 22 3a  ame" "ubuntu" ":
0990: 66 73 6e 61 6d 65 22 20 22 6e 66 73 22 20 22 3a  fsname" "nfs" ":
09a0: 64 61 74 61 70 61 74 68 22 20 22 62 6c 61 68 2f  datapath" "blah/
09b0: 66 6f 6f 22 20 22 6e 61 64 61 22 29 0a 09 09 20  foo" "nada")... 
09c0: 28 6c 69 73 74 20 22 3a 72 75 6e 6e 61 6d 65 22  (list ":runname"
09d0: 20 22 3a 73 74 61 74 65 22 20 22 3a 73 74 61 74   ":state" ":stat
09e0: 75 73 22 29 0a 09 09 20 28 6c 69 73 74 20 22 2d  us")... (list "-
09f0: 68 22 29 0a 09 09 20 61 72 67 73 3a 61 72 67 2d  h")... args:arg-
0a00: 68 61 73 68 0a 09 09 20 30 29 29 0a 0a 28 74 65  hash... 0))..(te
0a10: 73 74 20 22 72 65 67 69 73 74 65 72 2d 72 75 6e  st "register-run
0a20: 22 20 23 74 20 28 6e 75 6d 62 65 72 3f 20 28 72  " #t (number? (r
0a30: 65 67 69 73 74 65 72 2d 72 75 6e 20 2a 64 62 2a  egister-run *db*
0a40: 20 28 64 62 2d 67 65 74 2d 6b 65 79 73 20 2a 64   (db-get-keys *d
0a50: 62 2a 29 29 29 29 0a 0a 3b 3b 28 74 65 73 74 20  b*))))..;;(test 
0a60: 22 75 70 64 61 74 65 2d 74 65 73 74 2d 69 6e 66  "update-test-inf
0a70: 6f 22 20 23 74 20 28 74 65 73 74 2d 75 70 64 61  o" #t (test-upda
0a80: 74 65 2d 6d 65 74 61 2d 69 6e 66 6f 20 2a 64 62  te-meta-info *db
0a90: 2a 20 31 20 22 6e 61 64 61 22 20 0a 28 73 65 74  * 1 "nada" .(set
0aa0: 65 6e 76 20 22 42 4c 41 48 46 4f 4f 22 20 22 31  env "BLAHFOO" "1
0ab0: 32 33 34 22 29 0a 28 75 6e 73 65 74 65 6e 76 20  234").(unsetenv 
0ac0: 22 4e 41 44 41 46 4f 4f 22 29 0a 28 74 65 73 74  "NADAFOO").(test
0ad0: 20 22 65 6e 76 20 74 65 6d 70 20 6f 76 65 72 72   "env temp overr
0ae0: 69 64 65 73 22 20 22 78 79 7a 22 20 28 6c 65 74  ides" "xyz" (let
0af0: 20 28 28 70 72 65 76 76 61 6c 73 20 28 61 6c 69   ((prevvals (ali
0b00: 73 74 2d 3e 65 6e 76 2d 76 61 72 73 20 27 28 28  st->env-vars '((
0b10: 22 42 4c 41 48 46 4f 4f 22 20 34 33 32 31 29 28  "BLAHFOO" 4321)(
0b20: 22 4e 41 44 41 46 4f 4f 22 20 78 79 7a 29 29 29  "NADAFOO" xyz)))
0b30: 29 0a 09 09 09 09 20 20 20 20 20 20 20 28 72 65  ).....       (re
0b40: 73 75 6c 74 20 20 20 28 67 65 74 2d 65 6e 76 69  sult   (get-envi
0b50: 72 6f 6e 6d 65 6e 74 2d 76 61 72 69 61 62 6c 65  ronment-variable
0b60: 20 22 4e 41 44 41 46 4f 4f 22 29 29 29 0a 09 09   "NADAFOO")))...
0b70: 09 09 20 20 20 20 28 61 6c 69 73 74 2d 3e 65 6e  ..    (alist->en
0b80: 76 2d 76 61 72 73 20 70 72 65 76 76 61 6c 73 29  v-vars prevvals)
0b90: 0a 09 09 09 09 20 20 20 20 72 65 73 75 6c 74 29  .....    result)
0ba0: 29 0a 0a 28 74 65 73 74 20 22 65 6e 76 20 72 65  )..(test "env re
0bb0: 73 74 6f 72 65 64 22 20 22 31 32 33 34 22 20 28  stored" "1234" (
0bc0: 67 65 74 2d 65 6e 76 69 72 6f 6e 6d 65 6e 74 2d  get-environment-
0bd0: 76 61 72 69 61 62 6c 65 20 22 42 4c 41 48 46 4f  variable "BLAHFO
0be0: 4f 22 29 29 0a 0a 0a 28 74 65 73 74 20 22 49 74  O"))...(test "It
0bf0: 65 6d 73 20 61 73 73 6f 63 22 20 22 45 6c 65 70  ems assoc" "Elep
0c00: 68 61 6e 74 22 20 28 63 61 64 61 72 20 28 63 61  hant" (cadar (ca
0c10: 64 72 20 28 69 74 65 6d 2d 61 73 73 6f 63 2d 3e  dr (item-assoc->
0c20: 69 74 65 6d 2d 6c 69 73 74 20 27 28 28 22 41 4e  item-list '(("AN
0c30: 49 4d 41 4c 22 20 22 45 6c 65 70 68 61 6e 74 20  IMAL" "Elephant 
0c40: 4c 69 6f 6e 22 29 28 22 53 45 41 53 4f 4e 22 20  Lion")("SEASON" 
0c50: 22 53 70 72 69 6e 67 20 46 61 6c 6c 22 29 29 29  "Spring Fall")))
0c60: 29 29 29 0a 28 73 65 74 21 20 2a 76 65 72 62 6f  ))).(set! *verbo
0c70: 73 69 74 79 2a 20 36 29 0a 28 74 65 73 74 20 22  sity* 6).(test "
0c80: 49 74 65 6d 73 20 61 73 73 6f 63 22 20 27 28 29  Items assoc" '()
0c90: 28 69 74 65 6d 2d 61 73 73 6f 63 2d 3e 69 74 65  (item-assoc->ite
0ca0: 6d 2d 6c 69 73 74 20 27 28 28 22 61 22 20 22 61  m-list '(("a" "a
0cb0: 20 62 20 63 20 64 22 29 28 22 62 22 20 22 63 20   b c d")("b" "c 
0cc0: 64 20 65 22 29 28 22 63 22 20 22 22 29 28 22 64  d e")("c" "")("d
0cd0: 22 29 29 29 29 0a 28 73 65 74 21 20 2a 76 65 72  ")))).(set! *ver
0ce0: 62 6f 73 69 74 79 2a 20 2d 31 29 0a 28 74 65 73  bosity* -1).(tes
0cf0: 74 20 22 49 74 65 6d 73 20 61 73 73 6f 63 20 65  t "Items assoc e
0d00: 6d 70 74 79 20 69 74 65 6d 73 22 20 27 28 29 20  mpty items" '() 
0d10: 20 20 28 69 74 65 6d 2d 61 73 73 6f 63 2d 3e 69    (item-assoc->i
0d20: 74 65 6d 2d 6c 69 73 74 20 27 28 28 22 41 22 29  tem-list '(("A")
0d30: 29 29 29 0a 28 73 65 74 21 20 2a 76 65 72 62 6f  ))).(set! *verbo
0d40: 73 69 74 79 2a 20 31 29 0a 28 74 65 73 74 20 22  sity* 1).(test "
0d50: 49 74 65 6d 73 20 74 61 62 6c 65 22 20 22 53 45  Items table" "SE
0d60: 41 53 4f 4e 22 20 28 63 61 61 64 61 72 20 28 69  ASON" (caadar (i
0d70: 74 65 6d 2d 74 61 62 6c 65 2d 3e 69 74 65 6d 2d  tem-table->item-
0d80: 6c 69 73 74 20 27 28 28 22 41 4e 49 4d 41 4c 22  list '(("ANIMAL"
0d90: 20 22 45 6c 65 70 68 61 6e 74 20 4c 69 6f 6e 22   "Elephant Lion"
0da0: 29 28 22 53 45 41 53 4f 4e 22 20 22 53 70 72 69  )("SEASON" "Spri
0db0: 6e 67 20 57 69 6e 74 65 72 22 29 29 29 29 29 0a  ng Winter"))))).
0dc0: 28 74 65 73 74 20 22 49 74 65 6d 73 20 74 61 62  (test "Items tab
0dd0: 6c 65 20 65 6d 70 74 79 20 69 74 65 6d 73 20 49  le empty items I
0de0: 22 20 27 28 29 20 28 69 74 65 6d 2d 74 61 62 6c  " '() (item-tabl
0df0: 65 2d 3e 69 74 65 6d 2d 6c 69 73 74 20 27 28 28  e->item-list '((
0e00: 22 41 22 29 29 29 29 0a 28 74 65 73 74 20 22 49  "A")))).(test "I
0e10: 74 65 6d 73 20 74 61 62 6c 65 20 65 6d 70 74 79  tems table empty
0e20: 20 69 74 65 6d 73 20 49 49 22 20 27 28 29 20 28   items II" '() (
0e30: 69 74 65 6d 2d 74 61 62 6c 65 2d 3e 69 74 65 6d  item-table->item
0e40: 2d 6c 69 73 74 20 27 28 28 22 41 22 20 22 22 29  -list '(("A" "")
0e50: 29 29 29                                         )))