fix `planet'-path bug in module-name resolver for generated eecutables

original commit: 195b37831b
This commit is contained in:
Matthew Flatt 2010-07-09 09:48:41 -06:00
parent d35c8cac36
commit 5b322e2bd7
6 changed files with 121 additions and 37 deletions

View File

@ -0,0 +1,6 @@
#lang racket/base
(require "main.ss")
(with-output-to-file "stdout"
#:exists 'append
(lambda () (displayln "alt")))

View File

@ -0,0 +1,4 @@
#lang racket/base
(with-output-to-file "stdout"
(lambda () (displayln "one")))

View File

@ -0,0 +1,6 @@
#lang racket/base
(require (planet racket-tester/p2))
(with-output-to-file "stdout"
#:exists 'append
(lambda () (displayln "other")))

View File

@ -0,0 +1,5 @@
#lang racket/base
(with-output-to-file "stdout"
(lambda () (displayln "two")))

View File

@ -0,0 +1,6 @@
#lang racket/base
(require "../main.ss")
(with-output-to-file "stdout"
#:exists 'append
(lambda () (displayln "sub")))

View File

@ -234,6 +234,7 @@
`(,(flags "ne") "(out \"\u7237...\U1D671\n\")")) `(,(flags "ne") "(out \"\u7237...\U1D671\n\")"))
(try-exe dest "\uA9, \u7238, and \U1D670\n\u7237...\U1D671\n" mred?)) (try-exe dest "\uA9, \u7238, and \U1D670\n\u7237...\U1D671\n" mred?))
(define (try-basic)
(mz-tests #f) (mz-tests #f)
(mz-tests #t) (mz-tests #t)
@ -245,7 +246,7 @@
null null
#f #f
`("-l" "tests/racket/embed-me5.rkt")) `("-l" "tests/racket/embed-me5.rkt"))
(try-exe mr-dest "This is 5: #<class:button%>\n" #t)) (try-exe mr-dest "This is 5: #<class:button%>\n" #t)))
;; Try the mzc interface: ;; Try the mzc interface:
(require setup/dirs (require setup/dirs
@ -306,8 +307,9 @@
(void))) (void)))
(define (try-mzc)
(mzc-tests #f) (mzc-tests #f)
(mzc-tests #t) (mzc-tests #t))
(require dynext/file) (require dynext/file)
(define (extension-test mred?) (define (extension-test mred?)
@ -364,9 +366,11 @@
(path->string (build-path (collection-path "tests" "racket") "embed-me10.rkt"))) (path->string (build-path (collection-path "tests" "racket") "embed-me10.rkt")))
(try-exe (mk-dest mred?) "#t\n" mred?))) (try-exe (mk-dest mred?) "#t\n" mred?)))
(define (try-extension)
(extension-test #f) (extension-test #f)
(extension-test #t) (extension-test #t))
(define (try-gracket)
;; A GRacket-specific test with mzc: ;; A GRacket-specific test with mzc:
(parameterize ([current-directory (find-system-path 'temp-dir)]) (parameterize ([current-directory (find-system-path 'temp-dir)])
(system* mzc (system* mzc
@ -389,7 +393,7 @@
"--gui-exe" "--gui-exe"
(path->string (mk-dest #t)) (path->string (mk-dest #t))
(path->string (build-path (collection-path "tests" "racket") "embed-me7.rkt"))) (path->string (build-path (collection-path "tests" "racket") "embed-me7.rkt")))
(try-exe (mk-dest #t) "plotted\n" #t)) (try-exe (mk-dest #t) "plotted\n" #t)))
;; Try including source that needs a reader extension ;; Try including source that needs a reader extension
@ -417,7 +421,60 @@
(try-exe dest "It goes to eleven!\n" mred?) (try-exe dest "It goes to eleven!\n" mred?)
(putenv "ELEVEN" "done")) (putenv "ELEVEN" "done"))
(define (try-reader)
(try-reader-test #f) (try-reader-test #f)
(try-reader-test #t) (try-reader-test #t))
;; ----------------------------------------
(define planet (build-path (find-console-bin-dir) (if (eq? 'windows (system-type))
"planet.exe"
"planet")))
(define (try-planet)
(system* planet "link" "racket-tester" "p1.plt" "1" "0"
(path->string (collection-path "tests" "racket" "embed-planet-1")))
(system* planet "link" "racket-tester" "p2.plt" "2" "2"
(path->string (collection-path "tests" "racket" "embed-planet-2")))
(let ([go (lambda (path expected)
(printf "Trying planet ~s...\n" path)
(let ([tmp (make-temporary-file)]
[dest (mk-dest #f)])
(with-output-to-file tmp
#:exists 'truncate
(lambda ()
(printf "#lang racket/base (require ~s)\n" path)))
(system* mzc "--exe" (path->string dest) (path->string tmp))
(try-exe dest expected #f)
(delete-directory/files dest)
(delete-file tmp)))])
(go '(planet racket-tester/p1) "one\n")
(go '(planet "racket-tester/p1:1") "one\n")
(go '(planet "racket-tester/p1:1:0") "one\n")
(go '(planet "racket-tester/p1:1:0/main.ss") "one\n")
(go '(planet racket-tester/p2) "two\n")
(go '(planet racket-tester/p1/alt) "one\nalt\n")
(go '(planet racket-tester/p1/other) "two\nother\n")
(go '(planet "private/sub.rkt" ("racket-tester" "p2.plt" 2 0)) "two\nsub\n")
(void))
(system* planet "unlink" "racket-tester" "p1.plt" "1" "0")
(system* planet "unlink" "racket-tester" "p2.plt" "2" "2"))
;; ----------------------------------------
(try-basic)
(try-mzc)
(try-extension)
(try-gracket)
(try-reader)
(try-planet)
;; ----------------------------------------
(report-errs) (report-errs)