adjust drracket to run the test submodule before the main one.

This commit is contained in:
Robby Findler 2013-12-30 10:57:17 -06:00
parent bce27aa387
commit ae278e3130
2 changed files with 16 additions and 15 deletions

View File

@ -81,9 +81,9 @@
(preferences:set-default 'drracket:logger-scroll-to-bottom? #t boolean?) (preferences:set-default 'drracket:logger-scroll-to-bottom? #t boolean?)
(preferences:set-default 'drracket:submodules-to-choose-from (preferences:set-default 'drracket:submodules-to-choose-from
'((main) (test)) '((test) (main))
(cons/c (list/c 'main)
(cons/c (list/c 'test) (cons/c (list/c 'test)
(cons/c (list/c 'main)
(listof (listof symbol?))))) (listof (listof symbol?)))))
(preferences:set-default 'drracket:defs/ints-labels #t boolean?) (preferences:set-default 'drracket:defs/ints-labels #t boolean?)

View File

@ -129,7 +129,7 @@
(define default-compilation-on? #t) (define default-compilation-on? #t)
(define default-full-trace? #t) (define default-full-trace? #t)
(define default-submodules-to-run (list '(main) '(test))) (define default-submodules-to-run (list '(test) '(main)))
(define default-enforce-module-constants #t) (define default-enforce-module-constants #t)
(define (get-default-auto-text) (preferences:get 'drracket:module-language:auto-text)) (define (get-default-auto-text) (preferences:get 'drracket:module-language:auto-text))
@ -647,14 +647,18 @@
(define right-debugging-radio-box #f) (define right-debugging-radio-box #f)
(define submodules-to-run #f) (define submodules-to-run #f)
(define (sort-submodules-to-run!) (define (set-submodules-to-run l)
(define ht (make-hash)) (define ht (make-hash))
(for ([submod (in-list (preferences:get 'drracket:submodules-to-choose-from))] (for ([submod (in-list (preferences:get 'drracket:submodules-to-choose-from))]
[x (in-naturals)]) [x (in-naturals)])
(hash-set! ht submod x)) (hash-set! ht submod x))
(set! submodules-to-run (sort submodules-to-run
< ;; there may be a submodule in this list that is no longer choosable from
#:key (λ (x) (hash-ref ht x))))) ;; the preferences (if the user edits their prefs or the defaults change)
;; make sure the sort below doesn't crash by putting in an +inf.0
;; (also, rely on sort's stability)
(set! submodules-to-run (sort l <
#:key (λ (x) (hash-ref ht x +inf.0)))))
(define simple-case-lambda (define simple-case-lambda
(drracket:language:simple-module-based-language-config-panel (drracket:language:simple-module-based-language-config-panel
@ -697,10 +701,8 @@
[callback [callback
(λ (a b) (λ (a b)
(if (member item submodules-to-run) (if (member item submodules-to-run)
(set! submodules-to-run (remove item submodules-to-run)) (set-submodules-to-run (remove item submodules-to-run))
(begin (set-submodules-to-run (cons item submodules-to-run))))]
(set! submodules-to-run (cons item submodules-to-run))
(sort-submodules-to-run!))))]
[parent menu])) [parent menu]))
(new separator-menu-item% [parent menu]) (new separator-menu-item% [parent menu])
(new menu-item% (new menu-item%
@ -709,8 +711,7 @@
(λ (a b) (λ (a b)
(define new-submod (add-another-possible-submodule parent)) (define new-submod (add-another-possible-submodule parent))
(when new-submod (when new-submod
(set! submodules-to-run (cons new-submod submodules-to-run)) (set-submodules-to-run (cons new-submod submodules-to-run))))]
(sort-submodules-to-run!)))]
[label (string-constant add-submodule)])) [label (string-constant add-submodule)]))
(super-new (super-new
[font normal-control-font] [font normal-control-font]
@ -902,7 +903,7 @@
(send compilation-on-check-box set-value (module-language-settings-compilation-on? settings)) (send compilation-on-check-box set-value (module-language-settings-compilation-on? settings))
(update-compilation-checkbox left-debugging-radio-box right-debugging-radio-box) (update-compilation-checkbox left-debugging-radio-box right-debugging-radio-box)
(send save-stacktrace-on-check-box set-value (module-language-settings-full-trace? settings)) (send save-stacktrace-on-check-box set-value (module-language-settings-full-trace? settings))
(set! submodules-to-run (module-language-settings-submodules-to-run settings)) (set-submodules-to-run (module-language-settings-submodules-to-run settings))
(send enforce-module-constants-checkbox set-value (send enforce-module-constants-checkbox set-value
(module-language-settings-enforce-module-constants settings)) (module-language-settings-enforce-module-constants settings))
(update-buttons)])) (update-buttons)]))