diff options
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)) |