racket/pkgs/racket-test/tests/pkg/tests-failure.rkt
2014-12-14 08:46:13 -07:00

38 lines
1.5 KiB
Racket

#lang racket/base
(require rackunit
racket/system
"shelly.rkt"
"util.rkt")
(this-test-is-run-by-the-main-test)
(pkg-tests
(shelly-begin
(initialize-catalogs)
(with-fake-root
(shelly-case
"failure on remove"
$ "raco pkg install test-pkgs/pkg-test1.zip" =exit> 0
$ "raco pkg show -l -u -a -d" =stdout> #rx"Package +Checksum +Source +Directory\npkg-test1 +[a-f0-9.]+ .*pkg-test1\"\n"
$ "racket -e '(require pkg-test1)'" =exit> 0
$ "racket -e '(file-or-directory-permissions (collection-path \"pkg-test1\") #o500)'"
$ "raco pkg remove --no-trash pkg-test1" =exit> 1
$ "racket -e '(require pkg-test1)'" =exit> 1)
(shelly-case
"re-install must go to \"+1\""
$ "raco pkg install test-pkgs/pkg-test1.zip" =exit> 0
$ "raco pkg show -l -u -a -d" =stdout> #rx"Package +Checksum +Source +Directory\npkg-test1 +[a-f0-9.]+ .*pkg-test1[+]1\"\n"
$ "racket -e '(require pkg-test1)'" =exit> 0
$ "raco pkg remove pkg-test1" =exit> 0
$ "racket -e '(require pkg-test1)'" =exit> 1)
(shelly-case
"re-install can go back to original place"
$ "racket -l racket/base -l setup/dirs -e '(file-or-directory-permissions (build-path (find-user-pkgs-dir) \"pkg-test1/pkg-test1\") #o700)'"
$ "raco pkg install test-pkgs/pkg-test1.zip" =exit> 0
$ "raco pkg show -l -u -a -d" =stdout> #rx"Package +Checksum +Source +Directory\npkg-test1 +[a-f0-9.]+ .*pkg-test1\"\n"
$ "racket -e '(require pkg-test1)'" =exit> 0
$ "raco pkg remove pkg-test1" =exit> 0))))