;;; guile-email --- Guile email parser ;;; Copyright © 2019, 2020 Arun Isaac ;;; ;;; This file is part of guile-email. ;;; ;;; guile-email is free software; you can redistribute it and/or modify ;;; it under the terms of the GNU Affero General Public License as ;;; published by the Free Software Foundation; either version 3 of the ;;; License, or (at your option) any later version. ;;; ;;; guile-email 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 ;;; Affero General Public License for more details. ;;; ;;; You should have received a copy of the GNU Affero General Public ;;; License along with guile-email. If not, see ;;; . (use-modules (email utils) (rnrs bytevectors) (rnrs io ports) (srfi srfi-26) (srfi srfi-64)) (test-begin "utils") (test-assert "read-bytes-till returns eof-object on end of file" (eof-object? (call-with-port (open-bytevector-input-port (make-bytevector 0)) (cut read-bytes-till <> (make-bytevector 1))))) (test-assert "read-while returns eof-object on end of file" (eof-object? (call-with-input-string "" (cut read-while <> read identity)))) (test-equal "read-bytes-till returns empty bytevector on match at beginning" (call-with-port (open-bytevector-input-port #vu8(1 2 3)) (cut read-bytes-till <> #vu8(1 2))) #vu8()) (test-equal "read-while returns empty string on match at beginning" (call-with-input-string "foo\nbar" (lambda (port) (read-while port get-line (negate (cut string-prefix? "foo" <>))))) "") (test-end "utils")