Add assertions to place-channel tests

This commit is contained in:
Kevin Tew 2011-07-06 17:08:13 -06:00
parent 49444460d5
commit 68d49e9f59
2 changed files with 21 additions and 12 deletions

View File

@ -169,38 +169,44 @@
(let ()
(define p1 (place ch
(define in (place-channel-get ch))
(displayln (place-channel-get in))))
(test 'val place-channel-get in)))
(define p2 (place ch
(define in (place-channel-get ch))
(sleep 1)
(define t (thread
(lambda ()
(displayln (place-channel-get in)))))
(test 'val place-channel-get in))))
(sleep 1)
(printf "bye\n")
'done))
(define-values (in out) (place-channel))
(place-channel-put p1 in)
(place-channel-put p2 in)
(sleep 4)
(place-channel-put out 'val)
(sleep 4))
(sleep 4)
(place-channel-put out 'val)
(place-wait p1)
(place-wait p2)
(test (void) printf "Matthew's example completes"))
; test signal-handle vector growing
(let ()
(define ps (for/list ([i (in-range 4)])
(place ch (define in (place-channel-get ch)) (displayln (place-channel-get in)))))
(place ch (define in (place-channel-get ch))
(test #t not (not (member (place-channel-get in) (list 'val1 'val2 'val3 'val4)))))))
(define-values (in out) (place-channel))
(for ([p ps]) (place-channel-put p in))
(sleep 4)
(for ([x (list 'val1 'val2 'val3 'val4)]) (place-channel-put out x))
(sleep 4)
(for ([p ps]) (place-wait p)))
(for ([p ps]) (place-wait p))
(test (void) printf "signal-handle vector growing completes"))
; test signal-handle vector shrinking
(let ()
(define ps (for/list ([i (in-range 4)])
(place ch (define in (place-channel-get ch)) (displayln (place-channel-get in)))))
(place ch (define in (place-channel-get ch))
(test #t not (not (member (place-channel-get in) (list 'val1 'val2 'val3 'val4)))))))
(define-values (in out) (place-channel))
(for ([p ps]) (place-channel-put p in))
(sleep 4)
@ -210,13 +216,16 @@
(define p0 (place ch
(define in (place-channel-get ch))
(for ([i (in-range 4)])
(printf "p0 got ~a\n" (place-channel-get in)))))
(test 'p0val1 place-channel-get in)
(test 'p0val2 place-channel-get in)
(test 'p0val3 place-channel-get in)
(test 'p0val4 place-channel-get in)))
(place-channel-put p0 in)
(for ([x (list 'p0val1 'p0val2 'p0val3)]) (place-channel-put out x))
(sleep 4)
(place-channel-put out 'p0val4)
(for ([p ps]) (place-wait p0)))
(for ([p ps]) (place-wait p0))
(test (void) printf "signal-handle vector growing completes"))

View File

@ -2184,7 +2184,7 @@ static void place_async_send(Scheme_Place_Async_Channel *ch, Scheme_Object *uo)
}
}
else {
printf("Opps not a valid ch->wakeup_signal\n");
printf("Oops not a valid ch->wakeup_signal\n");
exit(1);
}
}
@ -2240,7 +2240,7 @@ static void register_place_object_with_channel(Scheme_Place_Async_Channel *ch, S
ch->wakeup_signal = v;
}
else {
printf("Opps not a valid ch->wakeup_signal\n");
printf("Oops not a valid ch->wakeup_signal\n");
exit(1);
}
}