summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorMichael Albinus <michael.albinus@gmx.de>2016-02-20 14:04:36 +0100
committerMichael Albinus <michael.albinus@gmx.de>2016-02-20 14:04:36 +0100
commit5d17ae7d467c2d6146a5792d676621aa3d69b21a (patch)
tree3e2d32551e293e009f7816d2509d8c1f71146b9e /test
parent1cb126866df0b01aa2eaa51eeba696997d6d37ae (diff)
downloademacs-5d17ae7d467c2d6146a5792d676621aa3d69b21a.tar.gz
Improve file-notify-test08-watched-file-in-watched-dir
* test/automated/file-notify-tests.el (file-notify--test-desc2): New variable. (file-notify--test-cleanup): Use it. (file-notify--test-event-handler): Enable trace. (file-notify-test08-watched-file-in-watched-dir): Tag it as :expensive-test. Rewrite callbacks to use `file-notify--test-event-handler'. Read events in loop. Check `file-notify--test-results'. (file-notify-test08-watched-file-in-watched-dir): Fix docstring.
Diffstat (limited to 'test')
-rw-r--r--test/automated/file-notify-tests.el54
1 files changed, 34 insertions, 20 deletions
diff --git a/test/automated/file-notify-tests.el b/test/automated/file-notify-tests.el
index affe34aef3f..1817484c4fb 100644
--- a/test/automated/file-notify-tests.el
+++ b/test/automated/file-notify-tests.el
@@ -59,6 +59,7 @@
(defvar file-notify--test-tmpfile1 nil)
(defvar file-notify--test-desc nil)
(defvar file-notify--test-desc1 nil)
+(defvar file-notify--test-desc2 nil)
(defvar file-notify--test-results nil)
(defvar file-notify--test-event nil)
(defvar file-notify--test-events nil)
@@ -79,6 +80,7 @@ It is different for local and remote file notification libraries.")
"Cleanup after a test."
(file-notify-rm-watch file-notify--test-desc)
(file-notify-rm-watch file-notify--test-desc1)
+ (file-notify-rm-watch file-notify--test-desc2)
(ignore-errors
(delete-file (file-newest-backup file-notify--test-tmpfile)))
@@ -99,6 +101,7 @@ It is different for local and remote file notification libraries.")
file-notify--test-tmpfile1 nil
file-notify--test-desc nil
file-notify--test-desc1 nil
+ file-notify--test-desc2 nil
file-notify--test-results nil
file-notify--test-events nil)
(when file-notify--test-event
@@ -278,7 +281,7 @@ and the event to `file-notify--test-events'."
(unless (string-match
(regexp-quote ".#")
(file-notify--event-file-name file-notify--test-event))
- ;;(message "file-notify--test-event-handler %S" file-notify--test-event)
+ (message "file-notify--test-event-handler %S" file-notify--test-event)
(setq file-notify--test-events
(append file-notify--test-events `(,file-notify--test-event))
file-notify--test-results
@@ -552,8 +555,8 @@ longer than timeout seconds for the events to be delivered."
(let (file-notify--test-events)
(file-notify-rm-watch file-notify--test-desc)))
- ;; Check the global sequence again just to make sure that
- ;; `file-notify--test-events' has been set correctly.
+ ;; Check the global sequence just to make sure that all
+ ;; results are as expected.
(should file-notify--test-results)
(dolist (result file-notify--test-results)
(when (ert-test-failed-p result)
@@ -948,6 +951,7 @@ descriptors that were issued when registering the watches. This
test caters for the situation in bug#22736 where the callback for
the directory received events for the file with the descriptor of
the file watch."
+ :tags '(:expensive-test)
(skip-unless (file-notify--test-local-enabled))
(unwind-protect
@@ -957,42 +961,52 @@ the file watch."
(setq file-notify--test-tmpfile1
(let ((temporary-file-directory file-notify--test-tmpfile))
(make-temp-file "file")))
- (cl-flet ((dir-callback
- (ev)
- (should (equal file-notify--test-desc (car ev))))
- (file-callback
- (ev)
- (should (equal file-notify--test-desc1 (car ev)))))
+ (cl-flet ((dir-callback (event)
+ (message "dir-callback %s" event)
+ (let ((file-notify--test-desc file-notify--test-desc1))
+ (file-notify--test-event-handler event)))
+ (file-callback (event)
+ (message "file-callback %s" event)
+ (let ((file-notify--test-desc file-notify--test-desc2))
+ (file-notify--test-event-handler event))))
(should
- (setq file-notify--test-desc
+ (setq file-notify--test-desc1
(file-notify-add-watch
file-notify--test-tmpfile
'(change attribute-change) #'dir-callback)))
(should
- (setq file-notify--test-desc1
+ (setq file-notify--test-desc2
(file-notify-add-watch
file-notify--test-tmpfile1
'(change attribute-change) #'file-callback)))
- (should (file-notify-valid-p file-notify--test-desc))
(should (file-notify-valid-p file-notify--test-desc1))
+ (should (file-notify-valid-p file-notify--test-desc2))
(dotimes (i 100)
+ (read-event nil nil file-notify--test-read-event-timeout)
(if (< 0 (random))
(write-region
"any text" nil file-notify--test-tmpfile1 t 'no-message)
(let ((temporary-file-directory file-notify--test-tmpfile))
- (make-temp-file "fileX")))))
- ;; After saving the buffer, the descriptor is still valid.
- (should (file-notify-valid-p file-notify--test-desc))
- (should (file-notify-valid-p file-notify--test-desc1))
- (delete-file file-notify--test-tmpfile1)
- (delete-directory file-notify--test-tmpfile))
+ (make-temp-file "fileX"))))
+ ;; After saving the buffer, the descriptor is still valid.
+ (should (file-notify-valid-p file-notify--test-desc1))
+ (should (file-notify-valid-p file-notify--test-desc2))
+ (delete-file file-notify--test-tmpfile1)
+ (delete-directory file-notify--test-tmpfile 'recursive))
+
+ ;; Check the global sequence just to make sure that all
+ ;; results are as expected.
+ (should file-notify--test-results)
+ (dolist (result file-notify--test-results)
+ (when (ert-test-failed-p result)
+ (ert-fail
+ (cadr (ert-test-result-with-condition-condition result))))))
;; Cleanup.
(file-notify--test-cleanup)))
(file-notify--deftest-remote file-notify-test08-watched-file-in-watched-dir
- "Checks what `file-notify-test08-watched-file-in-watched-dir'
-checks, just for a remote directory and file.")
+ "Check `file-notify-test08-watched-file-in-watched-dir' for remote files.")
(defun file-notify-test-all (&optional interactive)
"Run all tests for \\[file-notify]."