racket/collects/tests/planet2/test.rkt

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