The preferred activity in your design is more like for-each family, say, handle the result inside the proc without return result. So maybe it should be named as for-each-*-in-file, which is more understandable in the first glance. Best regards. On Tue, Dec 17, 2024, 13:31 Adam Faiz wrote: > From 258d20a9665e6f845a167258c33374a00e734885 Mon Sep 17 00:00:00 2001 > From: AwesomeAdam54321 > Date: Tue, 17 Dec 2024 12:20:52 +0800 > Subject: [PATCH] test-suite: Add tests for `for-rdelim-in-port`-related > functions. > > * test-suite/tests/ports.test: Add test cases for > `for-delimited-in-port` and `for-line-in-file`. > --- > test-suite/tests/ports.test | 22 ++++++++++++++++++++++ > 1 file changed, 22 insertions(+) > > diff --git a/test-suite/tests/ports.test b/test-suite/tests/ports.test > index bec5e356c..15d515f1f 100644 > --- a/test-suite/tests/ports.test > +++ b/test-suite/tests/ports.test > @@ -2089,6 +2089,28 @@ > (not (string-index (%search-load-path (basename (test-file))) > #\\)))))) > > +(let ((lst '()) > + (lines '()) > + (string "line1\nline2\nline3") > + (filename (test-file))) > + (call-with-input-string > + "A\0B\0C" > + (lambda (port) > + (pass-if "for-delimited-in-port returns true upon completion" > + (for-delimited-in-port port > + (lambda (entry) > + (set! lst (cons entry lst))) > + #:delims "\0") > + (equal? lst '("C" "B" "A"))))) > + (let ((port (open-output-file filename))) > + (display string port) > + (close-port port)) > + (pass-if "for-line-in-file returns true upon completion" > + (for-line-in-file filename > + (lambda (line) > + (set! lines (cons line lines)))) > + (equal? lines '("line3" "line2" "line1")))) > + > (delete-file (test-file)) > > ;;; Local Variables: > -- > 2.46.0 >