;;; Copyright © 2019 - 2022 Jakob L. Kreuze ;;; ;;; 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 ;;; . (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")