Megatest

Hex Artifact Content
Login

Artifact 7236ce28391e9ea2c95c53b7b2344a2db840b851:


0000: 3b 3b 20 6d 61 6b 65 2d 76 65 63 74 6f 72 2d 72  ;; make-vector-r
0010: 65 63 6f 72 64 20 74 65 73 74 73 20 74 65 73 74  ecord tests test
0020: 71 75 65 75 65 20 74 65 73 74 6e 61 6d 65 20 74  queue testname t
0030: 65 73 74 63 6f 6e 66 69 67 20 77 61 69 74 6f 6e  estconfig waiton
0040: 73 20 70 72 69 6f 72 69 74 79 20 69 74 65 6d 73  s priority items
0050: 0a 28 64 65 66 69 6e 65 20 28 6d 61 6b 65 2d 74  .(define (make-t
0060: 65 73 74 73 3a 74 65 73 74 71 75 65 75 65 29 28  ests:testqueue)(
0070: 6d 61 6b 65 2d 76 65 63 74 6f 72 20 36 20 23 66  make-vector 6 #f
0080: 29 29 0a 28 64 65 66 69 6e 65 2d 69 6e 6c 69 6e  )).(define-inlin
0090: 65 20 28 74 65 73 74 73 3a 74 65 73 74 71 75 65  e (tests:testque
00a0: 75 65 2d 67 65 74 2d 74 65 73 74 6e 61 6d 65 20  ue-get-testname 
00b0: 20 20 20 20 76 65 63 29 20 20 20 20 28 76 65 63      vec)    (vec
00c0: 74 6f 72 2d 72 65 66 20 20 76 65 63 20 30 29 29  tor-ref  vec 0))
00d0: 0a 28 64 65 66 69 6e 65 2d 69 6e 6c 69 6e 65 20  .(define-inline 
00e0: 28 74 65 73 74 73 3a 74 65 73 74 71 75 65 75 65  (tests:testqueue
00f0: 2d 67 65 74 2d 74 65 73 74 63 6f 6e 66 69 67 20  -get-testconfig 
0100: 20 20 76 65 63 29 20 20 20 20 28 76 65 63 74 6f    vec)    (vecto
0110: 72 2d 72 65 66 20 20 76 65 63 20 31 29 29 0a 28  r-ref  vec 1)).(
0120: 64 65 66 69 6e 65 2d 69 6e 6c 69 6e 65 20 28 74  define-inline (t
0130: 65 73 74 73 3a 74 65 73 74 71 75 65 75 65 2d 67  ests:testqueue-g
0140: 65 74 2d 77 61 69 74 6f 6e 73 20 20 20 20 20 20  et-waitons      
0150: 76 65 63 29 20 20 20 20 28 76 65 63 74 6f 72 2d  vec)    (vector-
0160: 72 65 66 20 20 76 65 63 20 32 29 29 0a 28 64 65  ref  vec 2)).(de
0170: 66 69 6e 65 2d 69 6e 6c 69 6e 65 20 28 74 65 73  fine-inline (tes
0180: 74 73 3a 74 65 73 74 71 75 65 75 65 2d 67 65 74  ts:testqueue-get
0190: 2d 70 72 69 6f 72 69 74 79 20 20 20 20 20 76 65  -priority     ve
01a0: 63 29 20 20 20 20 28 76 65 63 74 6f 72 2d 72 65  c)    (vector-re
01b0: 66 20 20 76 65 63 20 33 29 29 0a 3b 3b 20 69 74  f  vec 3)).;; it
01c0: 65 6d 73 3a 20 23 66 3d 6e 6f 20 69 74 65 6d 73  ems: #f=no items
01d0: 2c 20 6c 69 73 74 3d 6c 69 73 74 20 6f 66 20 69  , list=list of i
01e0: 74 65 6d 73 20 72 65 6d 61 69 6e 69 6e 67 2c 20  tems remaining, 
01f0: 70 72 6f 63 3d 6e 65 65 64 20 74 6f 20 63 61 6c  proc=need to cal
0200: 6c 20 74 6f 20 67 65 74 20 69 74 65 6d 73 0a 28  l to get items.(
0210: 64 65 66 69 6e 65 2d 69 6e 6c 69 6e 65 20 28 74  define-inline (t
0220: 65 73 74 73 3a 74 65 73 74 71 75 65 75 65 2d 67  ests:testqueue-g
0230: 65 74 2d 69 74 65 6d 73 20 20 20 20 20 20 20 20  et-items        
0240: 76 65 63 29 20 20 20 20 28 76 65 63 74 6f 72 2d  vec)    (vector-
0250: 72 65 66 20 20 76 65 63 20 34 29 29 0a 28 64 65  ref  vec 4)).(de
0260: 66 69 6e 65 2d 69 6e 6c 69 6e 65 20 28 74 65 73  fine-inline (tes
0270: 74 73 3a 74 65 73 74 71 75 65 75 65 2d 67 65 74  ts:testqueue-get
0280: 2d 69 74 65 6d 64 61 74 20 20 20 20 20 20 76 65  -itemdat      ve
0290: 63 29 20 20 20 20 28 76 65 63 74 6f 72 2d 72 65  c)    (vector-re
02a0: 66 20 20 76 65 63 20 35 29 29 0a 0a 28 64 65 66  f  vec 5))..(def
02b0: 69 6e 65 2d 69 6e 6c 69 6e 65 20 28 74 65 73 74  ine-inline (test
02c0: 73 3a 74 65 73 74 71 75 65 75 65 2d 73 65 74 2d  s:testqueue-set-
02d0: 74 65 73 74 6e 61 6d 65 21 20 20 20 20 76 65 63  testname!    vec
02e0: 20 76 61 6c 29 28 76 65 63 74 6f 72 2d 73 65 74   val)(vector-set
02f0: 21 20 76 65 63 20 30 20 76 61 6c 29 29 0a 28 64  ! vec 0 val)).(d
0300: 65 66 69 6e 65 2d 69 6e 6c 69 6e 65 20 28 74 65  efine-inline (te
0310: 73 74 73 3a 74 65 73 74 71 75 65 75 65 2d 73 65  sts:testqueue-se
0320: 74 2d 74 65 73 74 63 6f 6e 66 69 67 21 20 20 76  t-testconfig!  v
0330: 65 63 20 76 61 6c 29 28 76 65 63 74 6f 72 2d 73  ec val)(vector-s
0340: 65 74 21 20 76 65 63 20 31 20 76 61 6c 29 29 0a  et! vec 1 val)).
0350: 28 64 65 66 69 6e 65 2d 69 6e 6c 69 6e 65 20 28  (define-inline (
0360: 74 65 73 74 73 3a 74 65 73 74 71 75 65 75 65 2d  tests:testqueue-
0370: 73 65 74 2d 77 61 69 74 6f 6e 73 21 20 20 20 20  set-waitons!    
0380: 20 76 65 63 20 76 61 6c 29 28 76 65 63 74 6f 72   vec val)(vector
0390: 2d 73 65 74 21 20 76 65 63 20 32 20 76 61 6c 29  -set! vec 2 val)
03a0: 29 0a 28 64 65 66 69 6e 65 2d 69 6e 6c 69 6e 65  ).(define-inline
03b0: 20 28 74 65 73 74 73 3a 74 65 73 74 71 75 65 75   (tests:testqueu
03c0: 65 2d 73 65 74 2d 70 72 69 6f 72 69 74 79 21 20  e-set-priority! 
03d0: 20 20 20 76 65 63 20 76 61 6c 29 28 76 65 63 74     vec val)(vect
03e0: 6f 72 2d 73 65 74 21 20 76 65 63 20 33 20 76 61  or-set! vec 3 va
03f0: 6c 29 29 0a 28 64 65 66 69 6e 65 2d 69 6e 6c 69  l)).(define-inli
0400: 6e 65 20 28 74 65 73 74 73 3a 74 65 73 74 71 75  ne (tests:testqu
0410: 65 75 65 2d 73 65 74 2d 69 74 65 6d 73 21 20 20  eue-set-items!  
0420: 20 20 20 20 20 76 65 63 20 76 61 6c 29 28 76 65       vec val)(ve
0430: 63 74 6f 72 2d 73 65 74 21 20 76 65 63 20 34 20  ctor-set! vec 4 
0440: 76 61 6c 29 29 0a 28 64 65 66 69 6e 65 2d 69 6e  val)).(define-in
0450: 6c 69 6e 65 20 28 74 65 73 74 73 3a 74 65 73 74  line (tests:test
0460: 71 75 65 75 65 2d 73 65 74 2d 69 74 65 6d 64 61  queue-set-itemda
0470: 74 21 20 20 20 20 20 76 65 63 20 76 61 6c 29 28  t!     vec val)(
0480: 76 65 63 74 6f 72 2d 73 65 74 21 20 76 65 63 20  vector-set! vec 
0490: 35 20 76 61 6c 29 29 0a                          5 val)).