Strip package-content-state from info files when stripping to source

This commit is contained in:
Spencer Florence 2020-05-21 13:48:02 -05:00 committed by Matthew Flatt
parent 22069faebc
commit 7538011f5f
2 changed files with 38 additions and 26 deletions

View File

@ -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)
))

View File

@ -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]