From bc4f4e7a453748e20c2197674273f7d2b0bf71c9 Mon Sep 17 00:00:00 2001 From: Eli Barzilay Date: Sun, 7 Nov 2010 19:35:53 -0500 Subject: [PATCH] Fix the simple drracket test --- collects/meta/build/test-drracket.rkt | 30 ++++++++++++++------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/collects/meta/build/test-drracket.rkt b/collects/meta/build/test-drracket.rkt index b7cea9a277..985fae1050 100755 --- a/collects/meta/build/test-drracket.rkt +++ b/collects/meta/build/test-drracket.rkt @@ -45,26 +45,28 @@ exec "$PLTHOME/bin/gracket" "$0" (with-output-to-file (find-system-path 'pref-file) #:exists 'truncate (lambda () (printf "~s\n" `((plt:framework-prefs - ((drscheme:last-version ,(version)) - (drscheme:last-language english))))))) + ((drracket:last-version ,(version)) + (drracket:last-language english))))))) -;; start drscheme -(queue-callback - (lambda () - (dynamic-require '(lib "drscheme.ss" "drscheme") #f))) +;; start drracket +(queue-callback (lambda () (dynamic-require 'drracket #f))) -;; wait for the drscheme window to appear +;; FIXME: hack a predicate for the splash window +(define (is-splash? win) (eq? 'object:splash-tlw% (object-name win))) + +;; wait for the drracket window to appear (define (window-title w) (send w get-label)) (let loop () (sleep 1/100) (let ([wins (get-top-level-windows)]) - (cond [(null? wins) (loop)] - [(and (regexp-match #rx"^Untitled( - DrScheme)?$" - (window-title (car wins))) - (null? (cdr wins))) - (fprintf stderr "got a good window: ~a\n" - (window-title (car wins)))] - [else (die "bad windows popped up: ~s" (map window-title wins))]))) + (cond + [(null? wins) (loop)] + [(ormap is-splash? wins) (loop)] ; splash present => keep waiting + [(pair? (cdr wins)) + (die "too many windows popped up: ~s" (map window-title wins))] + [(regexp-match #rx"^Untitled( - DrRacket)?$" (window-title (car wins))) + (fprintf stderr "got a good window: ~a\n" (window-title (car wins)))] + [else (die "bad window popped up: ~s" (window-title (car wins)))]))) ;; handle some events (let loop ([n 20]) (unless (zero? n) (yield) (loop (sub1 n))))