70 lines
1.3 KiB
Racket
70 lines
1.3 KiB
Racket
#lang racket/base
|
|
(require racket/class
|
|
unstable/class-iop)
|
|
(provide (all-defined-out))
|
|
|
|
;; controller
|
|
;; Manages the model and view.
|
|
;; Propagates status changes from model to view.
|
|
(define-interface controller<%> ()
|
|
(get-selected-model
|
|
set-selected-model
|
|
listen-selected-model
|
|
|
|
create-model
|
|
on-model-status-change
|
|
register-view
|
|
on-view-shutdown
|
|
|
|
;; field: locked?
|
|
))
|
|
|
|
;; result
|
|
;; Represents a test (case or suite) together with the state associated
|
|
;; with the last run of that test.
|
|
(define-interface result<%> ()
|
|
(get-test
|
|
get-parent
|
|
get-name
|
|
get-controller
|
|
|
|
finished?
|
|
success?
|
|
failure?
|
|
error?
|
|
has-output?
|
|
has-trash?
|
|
|
|
get-total-cases
|
|
get-total-successes
|
|
get-total-failures))
|
|
|
|
(define-interface case<%> (result<%>)
|
|
(update
|
|
get-result
|
|
get-timing
|
|
get-output
|
|
get-trash
|
|
get-property
|
|
get-property-set
|
|
get-all-properties))
|
|
|
|
(define-interface suite<%> (result<%>)
|
|
(get-children
|
|
add-child
|
|
finish!
|
|
on-child-status-change))
|
|
|
|
|
|
;; view
|
|
;; Presents a graphical interface for inspecting and running tests.
|
|
(define-interface view<%> ()
|
|
(create-view-link
|
|
queue-for-update
|
|
shutdown))
|
|
|
|
;; style-map
|
|
;; Maps symbolic style names ('bold, 'red) to GRacket styles.
|
|
(define-interface style-map<%> ()
|
|
(get-style))
|