make the framework test suite only modify gui objects on the eventspace handler thread
original commit: a32adbe7db6e8302bbd2bf0d21b6ad9cb04ad0d1
This commit is contained in:
parent
0c9aceeb9e
commit
24a195eee2
|
@ -13,7 +13,7 @@
|
||||||
(define schedule? #t)
|
(define schedule? #t)
|
||||||
|
|
||||||
;; all of the sexpression transactions between mz and mred
|
;; all of the sexpression transactions between mz and mred
|
||||||
(define messages? #f)
|
(define messages? #t)
|
||||||
|
|
||||||
(define-syntax (debug-when stx)
|
(define-syntax (debug-when stx)
|
||||||
(syntax-case stx (mr-tcp mz-tcp admin schedule messages)
|
(syntax-case stx (mr-tcp mz-tcp admin schedule messages)
|
||||||
|
|
|
@ -12,9 +12,11 @@
|
||||||
(lambda ()
|
(lambda ()
|
||||||
(let ([frame-label
|
(let ([frame-label
|
||||||
(send-sexp-to-mred
|
(send-sexp-to-mred
|
||||||
`(let ([f (instantiate ,class-expression () ,@args)])
|
`(queue-callback/res
|
||||||
(send f show #t)
|
(λ ()
|
||||||
(send f get-label)))])
|
(let ([f (instantiate ,class-expression () ,@args)])
|
||||||
|
(send f show #t)
|
||||||
|
(send f get-label)))))])
|
||||||
(wait-for-frame frame-label)
|
(wait-for-frame frame-label)
|
||||||
(queue-sexp-to-mred
|
(queue-sexp-to-mred
|
||||||
'(send (get-top-level-focus-window) close))
|
'(send (get-top-level-focus-window) close))
|
||||||
|
|
|
@ -22,6 +22,11 @@
|
||||||
|
|
||||||
(namespace-require 'racket/gui)
|
(namespace-require 'racket/gui)
|
||||||
|
|
||||||
|
(eval '(define (queue-callback/res thunk)
|
||||||
|
(define c (make-channel))
|
||||||
|
(queue-callback (λ () (channel-put c (thunk))))
|
||||||
|
(channel-get c)))
|
||||||
|
|
||||||
(void
|
(void
|
||||||
(thread
|
(thread
|
||||||
(lambda ()
|
(lambda ()
|
||||||
|
|
|
@ -21,8 +21,8 @@
|
||||||
(when (file-exists? prefs-file)
|
(when (file-exists? prefs-file)
|
||||||
(copy-file prefs-file saved-prefs-file)
|
(copy-file prefs-file saved-prefs-file)
|
||||||
(delete-file prefs-file)
|
(delete-file prefs-file)
|
||||||
(debug-printf admin "saved preferences file from ~s to ~s\n"
|
(debug-printf admin "saved preferences file from ~s\n" prefs-file)
|
||||||
prefs-file saved-prefs-file))
|
(debug-printf admin " to ~s\n" saved-prefs-file))
|
||||||
|
|
||||||
(shutdown-mred)
|
(shutdown-mred)
|
||||||
|
|
||||||
|
@ -92,20 +92,20 @@
|
||||||
(test 'dialog-appears
|
(test 'dialog-appears
|
||||||
(lambda (x) (eq? 'passed x))
|
(lambda (x) (eq? 'passed x))
|
||||||
(lambda ()
|
(lambda ()
|
||||||
(send-sexp-to-mred '(begin (send (make-object frame:basic% "frame") show #t)
|
(queue-sexp-to-mred '(begin (send (make-object frame:basic% "frame") show #t)
|
||||||
(preferences:show-dialog)))
|
(preferences:show-dialog)))
|
||||||
(wait-for-frame "Preferences")
|
(wait-for-frame "Preferences")
|
||||||
(send-sexp-to-mred '(begin (preferences:hide-dialog)
|
(queue-sexp-to-mred '(begin (preferences:hide-dialog)
|
||||||
(let ([f (get-top-level-focus-window)])
|
(let ([f (get-top-level-focus-window)])
|
||||||
(if f
|
(if f
|
||||||
(if (string=? "Preferences" (send f get-label))
|
(if (string=? "Preferences" (send f get-label))
|
||||||
'failed
|
'failed
|
||||||
'passed)
|
'passed)
|
||||||
'passed))))))
|
'passed))))))
|
||||||
|
|
||||||
(when (file-exists? saved-prefs-file)
|
(when (file-exists? saved-prefs-file)
|
||||||
(debug-printf admin "restoring preferences file from ~s to ~s\n"
|
(debug-printf admin "restoring preferences file from ~s\n" saved-prefs-file)
|
||||||
saved-prefs-file prefs-file)
|
(debug-printf admin " to ~s\n" prefs-file)
|
||||||
(when (file-exists? prefs-file)
|
(when (file-exists? prefs-file)
|
||||||
(delete-file prefs-file))
|
(delete-file prefs-file))
|
||||||
(copy-file saved-prefs-file prefs-file)
|
(copy-file saved-prefs-file prefs-file)
|
||||||
|
|
|
@ -140,12 +140,11 @@
|
||||||
(define queue-sexp-to-mred
|
(define queue-sexp-to-mred
|
||||||
(lambda (sexp)
|
(lambda (sexp)
|
||||||
(send-sexp-to-mred
|
(send-sexp-to-mred
|
||||||
`(let ([thunk (lambda () ,sexp)]
|
`(let ([thunk (lambda () ,sexp)] ;; lotech hygiene
|
||||||
[sema (make-semaphore 0)])
|
[c (make-channel)])
|
||||||
(queue-callback (lambda ()
|
(queue-callback (lambda () (channel-put c (thunk))))
|
||||||
(thunk)
|
(channel-wait c)))))
|
||||||
(semaphore-post sema)))
|
|
||||||
(semaphore-wait sema)))))
|
|
||||||
|
|
||||||
(define re:tcp-read-error (regexp "tcp-read:"))
|
(define re:tcp-read-error (regexp "tcp-read:"))
|
||||||
(define re:tcp-write-error (regexp "tcp-write:"))
|
(define re:tcp-write-error (regexp "tcp-write:"))
|
||||||
|
|
Loading…
Reference in New Issue
Block a user