44 lines
1.0 KiB
Racket
44 lines
1.0 KiB
Racket
#lang racket/base
|
|
(require (for-syntax racket/base
|
|
"util.rkt")
|
|
"shelly.rkt"
|
|
"util.rkt")
|
|
|
|
;; By making these syntax-time includes, it made it so they would be
|
|
;; rebuilt and register as real dependencies.
|
|
(define-syntax (run-tests stx)
|
|
(syntax-case stx ()
|
|
[(_ f ...)
|
|
(with-syntax
|
|
([(tests-f ...)
|
|
(for/list ([f-stx (in-list (syntax->list #'(f ...)))])
|
|
(define f (syntax->datum f-stx))
|
|
`(file ,(format "tests-~a.rkt" f)))])
|
|
(syntax/loc stx
|
|
(run-tests*
|
|
(list (let ()
|
|
(local-require (only-in tests-f run-pkg-tests))
|
|
run-pkg-tests)
|
|
...))))]))
|
|
|
|
(define (run-tests* l)
|
|
(run-pkg-tests*
|
|
(λ ()
|
|
(shelly-case "All tests"
|
|
(for-each (λ (x) (x)) l)))))
|
|
|
|
(run-tests
|
|
"name"
|
|
"basic" "create" "install"
|
|
"network" "conflicts" "checksums"
|
|
"deps" "update"
|
|
"remove"
|
|
"locking"
|
|
"overwrite"
|
|
"config"
|
|
"planet"
|
|
"update-deps"
|
|
"update-auto"
|
|
"raco"
|
|
"main-server")
|