Add assertions to place-channel tests
This commit is contained in:
parent
49444460d5
commit
68d49e9f59
|
@ -169,38 +169,44 @@
|
||||||
(let ()
|
(let ()
|
||||||
(define p1 (place ch
|
(define p1 (place ch
|
||||||
(define in (place-channel-get ch))
|
(define in (place-channel-get ch))
|
||||||
(displayln (place-channel-get in))))
|
(test 'val place-channel-get in)))
|
||||||
(define p2 (place ch
|
(define p2 (place ch
|
||||||
(define in (place-channel-get ch))
|
(define in (place-channel-get ch))
|
||||||
(sleep 1)
|
(sleep 1)
|
||||||
(define t (thread
|
(define t (thread
|
||||||
(lambda ()
|
(lambda ()
|
||||||
(displayln (place-channel-get in)))))
|
(test 'val place-channel-get in))))
|
||||||
(sleep 1)
|
(sleep 1)
|
||||||
(printf "bye\n")
|
|
||||||
'done))
|
'done))
|
||||||
(define-values (in out) (place-channel))
|
(define-values (in out) (place-channel))
|
||||||
(place-channel-put p1 in)
|
(place-channel-put p1 in)
|
||||||
(place-channel-put p2 in)
|
(place-channel-put p2 in)
|
||||||
(sleep 4)
|
(sleep 4)
|
||||||
(place-channel-put out 'val)
|
(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
|
; test signal-handle vector growing
|
||||||
(let ()
|
(let ()
|
||||||
(define ps (for/list ([i (in-range 4)])
|
(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))
|
(define-values (in out) (place-channel))
|
||||||
(for ([p ps]) (place-channel-put p in))
|
(for ([p ps]) (place-channel-put p in))
|
||||||
(sleep 4)
|
(sleep 4)
|
||||||
(for ([x (list 'val1 'val2 'val3 'val4)]) (place-channel-put out x))
|
(for ([x (list 'val1 'val2 'val3 'val4)]) (place-channel-put out x))
|
||||||
(sleep 4)
|
(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
|
; test signal-handle vector shrinking
|
||||||
(let ()
|
(let ()
|
||||||
(define ps (for/list ([i (in-range 4)])
|
(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))
|
(define-values (in out) (place-channel))
|
||||||
(for ([p ps]) (place-channel-put p in))
|
(for ([p ps]) (place-channel-put p in))
|
||||||
(sleep 4)
|
(sleep 4)
|
||||||
|
@ -210,13 +216,16 @@
|
||||||
|
|
||||||
(define p0 (place ch
|
(define p0 (place ch
|
||||||
(define in (place-channel-get ch))
|
(define in (place-channel-get ch))
|
||||||
(for ([i (in-range 4)])
|
(test 'p0val1 place-channel-get in)
|
||||||
(printf "p0 got ~a\n" (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)
|
(place-channel-put p0 in)
|
||||||
(for ([x (list 'p0val1 'p0val2 'p0val3)]) (place-channel-put out x))
|
(for ([x (list 'p0val1 'p0val2 'p0val3)]) (place-channel-put out x))
|
||||||
(sleep 4)
|
(sleep 4)
|
||||||
(place-channel-put out 'p0val4)
|
(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"))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -2184,7 +2184,7 @@ static void place_async_send(Scheme_Place_Async_Channel *ch, Scheme_Object *uo)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
printf("Opps not a valid ch->wakeup_signal\n");
|
printf("Oops not a valid ch->wakeup_signal\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2240,7 +2240,7 @@ static void register_place_object_with_channel(Scheme_Place_Async_Channel *ch, S
|
||||||
ch->wakeup_signal = v;
|
ch->wakeup_signal = v;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
printf("Opps not a valid ch->wakeup_signal\n");
|
printf("Oops not a valid ch->wakeup_signal\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user