racket/pkgs/racket-test/tests/pkg/tests-implies.rkt
Matthew Flatt 2d4f3e2ac9 remove the "racket-pkgs" directory layer
The layer is now redundant, since everything left in "pkgs" is in the
"racket-pkgs" category.
2014-12-08 05:22:59 -07:00

76 lines
2.7 KiB
Racket

#lang racket/base
(require racket/file
"shelly.rkt"
"util.rkt")
(this-test-is-run-by-the-main-test)
(pkg-tests
(shelly-begin
(initialize-catalogs)
(shelly-case
"create packages"
$ "raco pkg create --format zip test-pkgs/pkg-implied-one"
$ "raco pkg create --format zip test-pkgs/pkg-implied-two"
$ "raco pkg create --format zip test-pkgs/pkg-implies")
(define (implied-version! s)
(hash-set! *index-ht-1* "pkg-implied"
(hasheq 'checksum
(file->string (format "test-pkgs/pkg-implied-~a.zip.CHECKSUM" s))
'source
(format "http://localhost:9997/pkg-implied-~a.zip" s))))
(implied-version! "one")
(hash-set! *index-ht-1* "pkg-implies"
(hasheq 'checksum
(file->string "test-pkgs/pkg-implies.zip.CHECKSUM")
'source
"http://localhost:9997/pkg-implies.zip"))
(with-fake-root
(shelly-begin
$ "raco pkg config --set catalogs http://localhost:9990")
(shelly-case
"install with auto-dependencies"
$ "raco pkg install --auto pkg-implies"
$ "racket -l pkg-implied" =stdout> #rx"implied-1")
(shelly-case
"update checks implied, but does nothing"
$ "raco pkg update pkg-implies" =stdout> #rx"pkg-implied.*No updates available")
(implied-version! "two") ; << UPDATE version
(shelly-case
"update does not auto-update implies when disabled"
$ "raco pkg update --ignore-implies pkg-implies" =stdout> #rx"^(?!pkg-implied).*No updates available"
$ "racket -l pkg-implied" =stdout> #rx"implied-1")
(shelly-case
"update auto-updates implied by default"
$ "raco pkg update pkg-implies" =stdout> #rx"pkg-implied"
$ "racket -l pkg-implied" =stdout> #rx"implied-2")
(implied-version! "one") ; << UPDATE version
(shelly-case
"installign a package updates its implied packages"
$ "raco pkg remove pkg-implies"
$ "racket -l pkg-implied" =stdout> #rx"implied-2"
$ "raco pkg install pkg-implies" =stdout> #rx"pkg-implied"
$ "racket -l pkg-implied" =stdout> #rx"implied-1")
(implied-version! "two") ; << UPDATE version
(shelly-case
"implied packages can be treated as normal dependencies"
$ "raco pkg update --ignore-implies pkg-implies" =stdout> #rx"^(?!pkg-implied).*No updates available"
$ "racket -l pkg-implied" =stdout> #rx"implied-1"
$ "raco pkg update --ignore-implies --auto pkg-implies"
$ "racket -l pkg-implied" =stdout> #rx"implied-2")
(implied-version! "one") ; << UPDATE version
(shelly-case
"update works ok with --all"
$ "raco pkg update --all"
$ "racket -l pkg-implied" =stdout> #rx"implied-1")
(void))))