aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHelmut Eller2026-01-05 18:35:27 +0100
committerHelmut Eller2026-01-05 18:35:27 +0100
commit02dac8561167d827dcbc38cc74a5bdea84ab59a3 (patch)
tree65721193cb498756314f9f9b53303df510ee31a9
parent6d43f25cbff4555907a414365fdb1d5777a4ae32 (diff)
downloademacs-02dac8561167d827dcbc38cc74a5bdea84ab59a3.tar.gz
emacs-02dac8561167d827dcbc38cc74a5bdea84ab59a3.zip
* test/src/fns-tests.el (ft-weak-equal-table): New test.feature/igc
-rw-r--r--test/src/fns-tests.el17
1 files changed, 17 insertions, 0 deletions
diff --git a/test/src/fns-tests.el b/test/src/fns-tests.el
index 17b22815400..95dd829df92 100644
--- a/test/src/fns-tests.el
+++ b/test/src/fns-tests.el
@@ -1399,9 +1399,26 @@
1399 (should (< (hash-table-count h) n)))) 1399 (should (< (hash-table-count h) n))))
1400 1400
1401(ert-deftest ft-ephemeron-table () 1401(ert-deftest ft-ephemeron-table ()
1402 :expected-result (if (fboundp 'igc--collect) :failed :passed)
1402 (dolist (w '(key value key-and-value key-or-value)) 1403 (dolist (w '(key value key-and-value key-or-value))
1403 (ft--test-ephemeron-table w))) 1404 (ft--test-ephemeron-table w)))
1404 1405
1406(ert-deftest ft-weak-equal-table ()
1407 :expected-result (if (fboundp 'igc--collect) :failed :passed)
1408 (let* ((h (make-hash-table :weakness 'key-or-value :test #'equal))
1409 (n 10)
1410 (root nil))
1411 (dotimes (i n)
1412 (let* ((key (list 'key i))
1413 (val (list 'val i)))
1414 (puthash key val h)))
1415 (should (= (hash-table-count h) n))
1416 (ft--gc 'key)
1417 (setq root (gethash '(key 0) h))
1418 (ft--gc 'key-or-value)
1419 (should (< (hash-table-count h) n))
1420 (should (equal root (gethash '(key 0) h)))))
1421
1405 1422
1406 1423
1407(ert-deftest test-hash-function-that-mutates-hash-table () 1424(ert-deftest test-hash-function-that-mutates-hash-table ()