diff options
| author | Jakob L. Kreuze | 2022-11-18 21:19:47 -0500 |
|---|---|---|
| committer | Jakob L. Kreuze | 2022-11-19 12:27:24 -0500 |
| commit | 7809dbf1001f67cf6dacb50a105d0752184ba0f5 (patch) | |
| tree | 5d7a753a99fc979a4c5c16a2b9e5bab61be65696 /haunt/tests | |
| parent | bd20d5071da3de0a9c15ce0a5bc3f40e7b6c2879 (diff) | |
[dynamic] Initial stateful captcha implementation
Diffstat (limited to 'haunt/tests')
| -rw-r--r-- | haunt/tests/captcha.scm | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/haunt/tests/captcha.scm b/haunt/tests/captcha.scm new file mode 100644 index 0000000..547fd5a --- /dev/null +++ b/haunt/tests/captcha.scm @@ -0,0 +1,39 @@ +;;; Copyright © 2019 - 2022 Jakob L. Kreuze <zerodaysfordays@sdf.org> +;;; +;;; This program is free software; you can redistribute it and/or +;;; modify it under the terms of the GNU General Public License as +;;; published by the Free Software Foundation; either version 3 of the +;;; License, or (at your option) any later version. +;;; +;;; This program is distributed in the hope that it will be useful, +;;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;;; General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with this program. If not, see +;;; <http://www.gnu.org/licenses/>. + +(use-modules (jakob dynamic captcha) + (srfi srfi-64)) + +(test-begin "id-queue-test") + +(define queue (make-queue 64)) + +(define id1 (dequeue-id! queue)) +(define id2 (dequeue-id! queue)) + +;; Two IDs are unique, if drawn in such a way that one is not invalidated by the +;; time the other is drawn. +(test-assert (number? id1)) +(test-assert (number? id2)) +(test-assert (not (= id1 id2))) + +;; IDs can be released and are appropriately removed from the allocated list. +(test-assert (positive? (length (id-queue-allocated queue)))) +(release-id! id1 queue) +(release-id! id2 queue) +(test-assert (zero? (length (id-queue-allocated queue)))) + +(test-end "id-queue-test") |