emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

scratch/sqlite e646003: Add busy-waiting files test


From: Lars Ingebrigtsen
Subject: scratch/sqlite e646003: Add busy-waiting files test
Date: Mon, 13 Dec 2021 21:15:53 -0500 (EST)

branch: scratch/sqlite
commit e6460032e8e2ea7811155b54e995d3ce59759cae
Author: Lars Ingebrigtsen <larsi@gnus.org>
Commit: Lars Ingebrigtsen <larsi@gnus.org>

    Add busy-waiting files test
---
 test/lisp/emacs-lisp/multisession-tests.el | 38 +++++++++++++++++++++++++++++-
 1 file changed, 37 insertions(+), 1 deletion(-)

diff --git a/test/lisp/emacs-lisp/multisession-tests.el 
b/test/lisp/emacs-lisp/multisession-tests.el
index 94db552..7d636a2 100644
--- a/test/lisp/emacs-lisp/multisession-tests.el
+++ b/test/lisp/emacs-lisp/multisession-tests.el
@@ -81,7 +81,7 @@
                    "--eval" (prin1-to-string
                              `(progn
                                 (require 'multisession)
-                                (let ((multisession-database-file ,dir)
+                                (let ((multisession-directory ,dir)
                                       (user-init-file "/tmp/bar.el"))
                                   (define-multisession-variable bar 0
                                     "" :synchronized t)
@@ -124,4 +124,40 @@
                       (cl-incf (multisession-value sfoo))))))
       (should (= (multisession-value sfoo) 2)))))
 
+(ert-deftest multi-test-files-busy ()
+  (skip-unless (and t (sqlite-available-p)))
+  (ert-with-temp-file dir
+    :directory t
+    (let ((user-init-file "/tmp/foo.el")
+          (multisession-storage 'files)
+          (multisession-directory dir)
+          proc)
+      (define-multisession-variable sbar 0
+        ""
+        :synchronized t)
+      (should (= (multisession-value sbar) 0))
+      (cl-incf (multisession-value sbar))
+      (should (= (multisession-value sbar) 1))
+      (setq proc
+            (start-process
+             "other-emacs"
+             nil
+             (concat invocation-directory invocation-name)
+             "-Q" "-batch"
+             "--eval" (prin1-to-string
+                       `(progn
+                          (require 'multisession)
+                          (let ((multisession-directory ,dir)
+                                (multisession-storage 'files)
+                                (user-init-file "/tmp/sbar.el"))
+                            (define-multisession-variable sbar 0
+                              "" :synchronized t)
+                            (dotimes (i 1000)
+                              (cl-incf (multisession-value sbar))))))))
+      (while (process-live-p proc)
+        (cl-incf (multisession-value sbar))
+        (sleep-for 0.1))
+      (message "sbar ends up as %s" (multisession-value sbar))
+      (should (< (multisession-value sbar) 2000)))))
+
 ;;; multisession-tests.el ends here



reply via email to

[Prev in Thread] Current Thread [Next in Thread]