Strip package-content-state from info files when stripping to source
This commit is contained in:
parent
22069faebc
commit
7538011f5f
|
@ -2,6 +2,7 @@
|
|||
(require rackunit
|
||||
racket/file
|
||||
pkg/strip
|
||||
setup/getinfo
|
||||
"util.rkt")
|
||||
|
||||
(this-test-is-run-by-the-main-test)
|
||||
|
@ -12,7 +13,9 @@
|
|||
(define tmp-dir (path->directory-path (make-temporary-file "tmp~a" 'directory)))
|
||||
(define pkg-path (build-path "test-pkgs" "pkg-strip"))
|
||||
(define pkg-dest-path (build-path tmp-dir "pkg-strip"))
|
||||
(define pkg-dest-path-for-built (build-path tmp-dir "pkg-strip-built"))
|
||||
(make-directory pkg-dest-path)
|
||||
(make-directory pkg-dest-path-for-built)
|
||||
|
||||
(define rx:does-not-exist #rx"directory does not exist")
|
||||
|
||||
|
@ -49,4 +52,15 @@
|
|||
;; Paths to existing src and dest directories should succeed.
|
||||
(check-not-exn (lambda () (generate-stripped-directory 'source pkg-path pkg-dest-path)))
|
||||
|
||||
;; check that stripping from built to source correctly changes pkg type
|
||||
(check-equal?
|
||||
(begin
|
||||
(generate-stripped-directory 'source pkg-path pkg-dest-path-for-built)
|
||||
(generate-stripped-directory 'built pkg-dest-path-for-built pkg-dest-path-for-built)
|
||||
(generate-stripped-directory 'source pkg-dest-path-for-built pkg-dest-path-for-built)
|
||||
((get-info/full pkg-dest-path-for-built)
|
||||
'package-content-state
|
||||
(lambda () 'no-package-content-state)))
|
||||
'no-package-content-state)
|
||||
|
||||
))
|
||||
|
|
|
@ -181,11 +181,9 @@
|
|||
[else #f]))
|
||||
|
||||
(define (fixup new-p path src-base level)
|
||||
(case mode
|
||||
[(binary binary-lib built)
|
||||
(define bstr (path->bytes path))
|
||||
(cond
|
||||
[(regexp-match? #rx"[.]html$" bstr)
|
||||
[(and (not (eq? mode 'source)) (regexp-match? #rx"[.]html$" bstr))
|
||||
(fixup-html new-p)]
|
||||
[else
|
||||
(case mode
|
||||
|
@ -195,14 +193,14 @@
|
|||
(fixup-info new-p src-base level mode)]
|
||||
[(regexp-match? #rx"[.]zo$" bstr)
|
||||
(fixup-zo new-p)])]
|
||||
[(built)
|
||||
[(built source)
|
||||
(when (or (eq? level 'package)
|
||||
(eq? level 'package+collection))
|
||||
(cond
|
||||
[(equal? #"info.rkt" bstr)
|
||||
(fixup-info new-p src-base level mode)]
|
||||
[else (void)]))]
|
||||
[else (void)])])]))
|
||||
[else (void)])]))
|
||||
|
||||
(define (explore base ; containing directory relative to `dir`, 'base at start
|
||||
paths ; paths in `base'
|
||||
|
@ -269,9 +267,7 @@
|
|||
[else 'package])))
|
||||
|
||||
(explore 'same (directory-list dir) drops keeps #f level)
|
||||
(case mode
|
||||
[(binary binary-lib built) (unmove-files dir dest-dir drop-keep-ns)]
|
||||
[else (void)])
|
||||
(unmove-files dir dest-dir drop-keep-ns)
|
||||
(case mode
|
||||
[(built binary binary-lib)
|
||||
(create-info-as-needed mode dest-dir level)]
|
||||
|
@ -373,7 +369,9 @@
|
|||
[(binary binary-lib)
|
||||
`((define assume-virtual-sources #t))]
|
||||
[else '()])
|
||||
(define package-content-state '(,mode ,(version)))
|
||||
,@(case mode
|
||||
[(source) '()]
|
||||
[else `((define package-content-state '(,mode ,(version))))])
|
||||
. ,(filter values
|
||||
(map (fixup-info-definition get-info mode) defns)))))
|
||||
(define new-content
|
||||
|
@ -403,7 +401,7 @@
|
|||
[`(define package-content-state . ,v) #f]
|
||||
[_
|
||||
(case mode
|
||||
[(built) defn]
|
||||
[(built source) defn]
|
||||
[else
|
||||
(match defn
|
||||
[`(define build-deps . ,v) #f]
|
||||
|
|
Loading…
Reference in New Issue
Block a user