diff options
Diffstat (limited to 'test/lisp/vc/vc-tests/vc-tests.el')
| -rw-r--r-- | test/lisp/vc/vc-tests/vc-tests.el | 66 |
1 files changed, 65 insertions, 1 deletions
diff --git a/test/lisp/vc/vc-tests/vc-tests.el b/test/lisp/vc/vc-tests/vc-tests.el index 788db646db3..ed0f2597bd0 100644 --- a/test/lisp/vc/vc-tests/vc-tests.el +++ b/test/lisp/vc/vc-tests/vc-tests.el | |||
| @@ -624,6 +624,54 @@ This checks also `vc-backend' and `vc-responsible-backend'." | |||
| 624 | (ignore-errors | 624 | (ignore-errors |
| 625 | (run-hooks 'vc-test--cleanup-hook)))))) | 625 | (run-hooks 'vc-test--cleanup-hook)))))) |
| 626 | 626 | ||
| 627 | (defun vc-test--rename-directory (backend) | ||
| 628 | "Check the rename-file action for directories." | ||
| 629 | (ert-with-temp-directory tempdir | ||
| 630 | (let ((vc-handled-backends `(,backend)) | ||
| 631 | (default-directory | ||
| 632 | (file-name-as-directory | ||
| 633 | (expand-file-name | ||
| 634 | (make-temp-name "vc-test") temporary-file-directory))) | ||
| 635 | (process-environment process-environment) | ||
| 636 | vc-test--cleanup-hook) | ||
| 637 | (vc--fix-home-for-bzr tempdir) | ||
| 638 | (unwind-protect | ||
| 639 | (progn | ||
| 640 | ;; Cleanup. | ||
| 641 | (add-hook | ||
| 642 | 'vc-test--cleanup-hook | ||
| 643 | (let ((dir default-directory)) | ||
| 644 | (lambda () (delete-directory dir 'recursive)))) | ||
| 645 | |||
| 646 | ;; Create empty repository. | ||
| 647 | (make-directory default-directory) | ||
| 648 | (vc-test--create-repo-function backend) | ||
| 649 | |||
| 650 | (let* ((tmp-dir (expand-file-name "dir1/" default-directory)) | ||
| 651 | (tmp-name1 (expand-file-name "foo" tmp-dir)) | ||
| 652 | (tmp-name2 (expand-file-name "bar" tmp-dir)) | ||
| 653 | (new-dir (expand-file-name "dir2/" default-directory)) | ||
| 654 | (new-name1 (expand-file-name "foo" new-dir)) | ||
| 655 | (new-name2 (expand-file-name "bar" new-dir))) | ||
| 656 | (make-directory tmp-dir) | ||
| 657 | (write-region "foo" nil tmp-name1 nil 'nomessage) | ||
| 658 | (write-region "bar" nil tmp-name2 nil 'nomessage) | ||
| 659 | ;; Register TMP-NAME1 but *not* TMP-NAME2. | ||
| 660 | (vc-register `(,backend | ||
| 661 | (,(file-relative-name tmp-name1 | ||
| 662 | default-directory)))) | ||
| 663 | |||
| 664 | (vc-rename-file (directory-file-name tmp-dir) | ||
| 665 | (directory-file-name new-dir)) | ||
| 666 | (should-not (file-exists-p tmp-name1)) | ||
| 667 | (should-not (file-exists-p tmp-name2)) | ||
| 668 | (should (file-exists-p new-name1)) | ||
| 669 | (should (file-exists-p new-name2)))) | ||
| 670 | |||
| 671 | ;; Save exit. | ||
| 672 | (ignore-errors | ||
| 673 | (run-hooks 'vc-test--cleanup-hook)))))) | ||
| 674 | |||
| 627 | (defvar vc-hg-global-switches) | 675 | (defvar vc-hg-global-switches) |
| 628 | 676 | ||
| 629 | (defmacro vc-test--with-author-identity (backend &rest body) | 677 | (defmacro vc-test--with-author-identity (backend &rest body) |
| @@ -1222,7 +1270,23 @@ This checks also `vc-backend' and `vc-responsible-backend'." | |||
| 1222 | ',(intern | 1270 | ',(intern |
| 1223 | (format "vc-test-%s01-register" backend-string)))))) | 1271 | (format "vc-test-%s01-register" backend-string)))))) |
| 1224 | (skip-unless (memq ',backend '(Git Hg))) | 1272 | (skip-unless (memq ',backend '(Git Hg))) |
| 1225 | (vc-test--checkin-patch ',backend)))))) | 1273 | (vc-test--checkin-patch ',backend)) |
| 1274 | |||
| 1275 | (ert-deftest | ||
| 1276 | ,(intern (format "vc-test-%s10-rename-directory" backend-string)) () | ||
| 1277 | ,(format "Check `vc-rename-file' with directories for the %s backend." | ||
| 1278 | backend-string) | ||
| 1279 | (skip-unless | ||
| 1280 | (ert-test-passed-p | ||
| 1281 | (ert-test-most-recent-result | ||
| 1282 | (ert-get-test | ||
| 1283 | ',(intern | ||
| 1284 | (format "vc-test-%s01-register" backend-string)))))) | ||
| 1285 | ;; See vc-test-*-rename-file regarding CVS and Mtn. | ||
| 1286 | ;; SVN requires all files to rename are registered but we want | ||
| 1287 | ;; to test a mix of registered and unregistered files in this test. | ||
| 1288 | (skip-when (memq ',backend '(CVS SVN Mtn))) | ||
| 1289 | (vc-test--rename-directory ',backend)))))) | ||
| 1226 | 1290 | ||
| 1227 | (provide 'vc-tests) | 1291 | (provide 'vc-tests) |
| 1228 | ;;; vc-tests.el ends here | 1292 | ;;; vc-tests.el ends here |