Merge in the docs test into the rest of the scribble tests.
Also fixed it to scan all scrbl files in the docs directory, use runtime-path, and change the rest to racket to get the quoted printout right.
This commit is contained in:
parent
90b8296c8f
commit
0801525931
|
@ -1,4 +1,4 @@
|
|||
#lang scheme/base
|
||||
#lang racket/base
|
||||
|
||||
(require tests/eli-tester scribble/text/syntax-utils)
|
||||
|
||||
|
|
|
@ -2,34 +2,42 @@
|
|||
|
||||
;; Use text renderer to check some Scribble functionality
|
||||
|
||||
;; ----------------------------------------
|
||||
(require scribble/base-render (prefix-in text: scribble/text-render)
|
||||
racket/file racket/class racket/runtime-path tests/eli-tester)
|
||||
|
||||
(require scribble/base-render
|
||||
racket/file
|
||||
racket/class
|
||||
(prefix-in text: scribble/text-render))
|
||||
(define-runtime-path source-dir "docs")
|
||||
(define work-dir (build-path (find-system-path 'temp-dir)
|
||||
"scribble-docs-tests"))
|
||||
|
||||
(define (build-text-doc src-file dest-file)
|
||||
(define dir (find-system-path 'temp-dir))
|
||||
(let ([renderer (new (text:render-mixin render%)
|
||||
[dest-dir dir])])
|
||||
(let* ([docs (list (dynamic-require `(file ,src-file) 'doc))]
|
||||
[fns (list (build-path dir dest-file))]
|
||||
[fp (send renderer traverse docs fns)]
|
||||
[info (send renderer collect docs fns fp)])
|
||||
(let ([r-info (send renderer resolve docs fns info)])
|
||||
(send renderer render docs fns r-info)))))
|
||||
(let* ([renderer (new (text:render-mixin render%) [dest-dir work-dir])]
|
||||
[docs (list (dynamic-require src-file 'doc))]
|
||||
[fns (list (build-path work-dir dest-file))]
|
||||
[fp (send renderer traverse docs fns)]
|
||||
[info (send renderer collect docs fns fp)]
|
||||
[r-info (send renderer resolve docs fns info)])
|
||||
(send renderer render docs fns r-info)))
|
||||
|
||||
(define (check-text-build name)
|
||||
(define src-file (string-append "docs/" name ".scrbl"))
|
||||
(define expect-file (string-append "docs/" name ".txt"))
|
||||
(define (check-text-build src-file expect-file)
|
||||
(build-text-doc src-file "gen.txt")
|
||||
(unless (string=? (file->string expect-file)
|
||||
(file->string (build-path (find-system-path 'temp-dir)
|
||||
"gen.txt")))
|
||||
(error 'check-text-build "mismatch from: ~e expected: ~e"
|
||||
src-file expect-file)))
|
||||
(define (contents file) (regexp-replace #rx"\n+$" (file->string file) ""))
|
||||
(string=? (contents expect-file) (contents (build-path work-dir "gen.txt"))))
|
||||
|
||||
;; ----------------------------------------
|
||||
|
||||
(check-text-build "print-lines")
|
||||
(provide docs-tests)
|
||||
(define (docs-tests)
|
||||
(when (or (file-exists? work-dir) (directory-exists? work-dir))
|
||||
(delete-directory/files work-dir))
|
||||
(make-directory work-dir)
|
||||
(dynamic-wind void
|
||||
(lambda ()
|
||||
(define files (map path-element->string (directory-list source-dir)))
|
||||
(for ([scrbl (in-list files)]
|
||||
#:when (regexp-match? #rx"\\.scrbl$" scrbl)
|
||||
[txt (in-value (regexp-replace #rx"\\.scrbl$" scrbl ".txt"))]
|
||||
#:when (member txt files))
|
||||
;; (printf "Testing ~s -> ~s\n" scrbl txt)
|
||||
(test #:failure-message
|
||||
(format "mismatch from: \"~a\" expected: \"~a\"" scrbl txt)
|
||||
(check-text-build (build-path source-dir scrbl)
|
||||
(build-path source-dir txt)))))
|
||||
(lambda () (delete-directory/files work-dir))))
|
||||
|
|
|
@ -15,4 +15,4 @@ Example:
|
|||
(b ("b-arg"))
|
||||
(c (("first c1" "second c1") ("first c2" "second c2")))
|
||||
(d #f)
|
||||
(e ()))
|
||||
(e ()))
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
#lang scheme/base
|
||||
#lang racket/base
|
||||
|
||||
(require tests/eli-tester "reader.ss" "preprocessor.ss" "collect.ss")
|
||||
(require tests/eli-tester
|
||||
"reader.rkt" "preprocessor.rkt" "collect.rkt" "docs.rkt")
|
||||
|
||||
(test do (reader-tests)
|
||||
do (begin/collect-tests)
|
||||
do (preprocessor-tests))
|
||||
do (preprocessor-tests)
|
||||
do (docs-tests))
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#lang scheme/base
|
||||
#lang racket/base
|
||||
|
||||
(require tests/eli-tester scheme/runtime-path scheme/port scheme/sandbox
|
||||
(require tests/eli-tester racket/runtime-path racket/port racket/sandbox
|
||||
(prefix-in doc: (lib "scribblings/scribble/preprocessor.scrbl")))
|
||||
|
||||
(provide preprocessor-tests)
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#lang scheme/base
|
||||
#lang racket/base
|
||||
|
||||
(require tests/eli-tester (prefix-in scr: scribble/reader) scheme/list)
|
||||
(require tests/eli-tester (prefix-in scr: scribble/reader) racket/list)
|
||||
|
||||
(provide reader-tests)
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user