From f519c709b387e350cdf3ffc71e31c9fbfbb502e5 Mon Sep 17 00:00:00 2001 From: Uko Kokņevičs Date: Sun, 19 Oct 2025 07:36:50 +0300 Subject: Added checks against releasing an untaken lock --- test/rw-lock.lisp | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'test') diff --git a/test/rw-lock.lisp b/test/rw-lock.lisp index 4460398..fdb60bd 100644 --- a/test/rw-lock.lisp +++ b/test/rw-lock.lisp @@ -33,6 +33,12 @@ (is (rw-lock-p (release-read-lock lock))) (is (rw-lock-p (release-read-lock lock)))))) +(test release-read-lock.failing + (let ((lock (make-rw-lock))) + (signals error (release-read-lock lock)) + (is-true (acquire-write-lock lock :wait nil)) + (signals error (release-read-lock lock)))) + (test acquire-write-lock.no-contention (let ((lock (make-rw-lock))) (is-true (acquire-write-lock lock :wait nil)) @@ -46,6 +52,12 @@ (is-false (acquire-write-lock lock :wait nil)) (is (rw-lock-p (release-write-lock lock))))) +(test acquire-write-lock.failing + (let ((lock (make-rw-lock))) + (signals error (release-write-lock lock)) + (is-true (acquire-read-lock lock :wait nil)) + (signals error (release-write-lock lock)))) + (test acquire-read&write-lock.contention (let ((lock (make-rw-lock))) (is-true (acquire-read-lock lock :wait nil)) -- cgit v1.2.3