36 lines
1.3 KiB
Racket
36 lines
1.3 KiB
Racket
#lang racket/base
|
|
(require lang/private/create-htdp-executable
|
|
racket/file
|
|
racket/system)
|
|
(define tmpfile (make-temporary-file "executable-creation-test~a"))
|
|
|
|
(create-htdp-lang-executable (collection-file-path
|
|
"image-and-comment-box.rkt"
|
|
"tests"
|
|
"drracket")
|
|
tmpfile
|
|
'(lib "htdp-beginner-reader.ss" "lang"))
|
|
|
|
(define sp (open-output-string))
|
|
(define res
|
|
(let/ec k
|
|
(parameterize ([error-escape-handler (λ () (k #f))])
|
|
(parameterize ([current-output-port sp]
|
|
[current-error-port sp]
|
|
[current-input-port (open-input-string "")])
|
|
(case (system-type)
|
|
[(macosx)
|
|
(define-values (base name dir) (split-path tmpfile))
|
|
(system
|
|
(path->string
|
|
(build-path tmpfile "Contents" "MacOS" name)))]
|
|
[(unix)
|
|
(system (path->string tmpfile))]
|
|
[(windows)
|
|
(error 'teaching-lang-executable-creation.rkt "test not supported")])))))
|
|
(delete-directory/files tmpfile)
|
|
|
|
(define expected "1\n")
|
|
(unless (and res (equal? (get-output-string sp) expected))
|
|
(eprintf "TEST FAILED; res ~s\n~a\n" res (get-output-string sp)))
|