diff options
| author | 2025-10-19 07:36:50 +0300 | |
|---|---|---|
| committer | 2025-10-19 07:36:50 +0300 | |
| commit | f519c709b387e350cdf3ffc71e31c9fbfbb502e5 (patch) | |
| tree | 8b86edfd8df76307a8a143bd1342beb080528b2a /test | |
| parent | Get rid of a couple warnings in main.lisp (diff) | |
| download | ukkoclot-f519c709b387e350cdf3ffc71e31c9fbfbb502e5.tar.gz ukkoclot-f519c709b387e350cdf3ffc71e31c9fbfbb502e5.tar.xz ukkoclot-f519c709b387e350cdf3ffc71e31c9fbfbb502e5.zip | |
Added checks against releasing an untaken lock
Diffstat (limited to 'test')
| -rw-r--r-- | test/rw-lock.lisp | 12 |
1 files changed, 12 insertions, 0 deletions
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 @@ | |||
| 33 | (is (rw-lock-p (release-read-lock lock))) | 33 | (is (rw-lock-p (release-read-lock lock))) |
| 34 | (is (rw-lock-p (release-read-lock lock)))))) | 34 | (is (rw-lock-p (release-read-lock lock)))))) |
| 35 | 35 | ||
| 36 | (test release-read-lock.failing | ||
| 37 | (let ((lock (make-rw-lock))) | ||
| 38 | (signals error (release-read-lock lock)) | ||
| 39 | (is-true (acquire-write-lock lock :wait nil)) | ||
| 40 | (signals error (release-read-lock lock)))) | ||
| 41 | |||
| 36 | (test acquire-write-lock.no-contention | 42 | (test acquire-write-lock.no-contention |
| 37 | (let ((lock (make-rw-lock))) | 43 | (let ((lock (make-rw-lock))) |
| 38 | (is-true (acquire-write-lock lock :wait nil)) | 44 | (is-true (acquire-write-lock lock :wait nil)) |
| @@ -46,6 +52,12 @@ | |||
| 46 | (is-false (acquire-write-lock lock :wait nil)) | 52 | (is-false (acquire-write-lock lock :wait nil)) |
| 47 | (is (rw-lock-p (release-write-lock lock))))) | 53 | (is (rw-lock-p (release-write-lock lock))))) |
| 48 | 54 | ||
| 55 | (test acquire-write-lock.failing | ||
| 56 | (let ((lock (make-rw-lock))) | ||
| 57 | (signals error (release-write-lock lock)) | ||
| 58 | (is-true (acquire-read-lock lock :wait nil)) | ||
| 59 | (signals error (release-write-lock lock)))) | ||
| 60 | |||
| 49 | (test acquire-read&write-lock.contention | 61 | (test acquire-read&write-lock.contention |
| 50 | (let ((lock (make-rw-lock))) | 62 | (let ((lock (make-rw-lock))) |
| 51 | (is-true (acquire-read-lock lock :wait nil)) | 63 | (is-true (acquire-read-lock lock :wait nil)) |