From a9c21c6cb014c355bd9093b54c97b8ffbda0c43f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Pant=C5=AF=C4=8Dek?= Date: Thu, 30 Mar 2023 12:39:20 +0200 Subject: [PATCH] Add csv simple tests. --- Makefile | 2 +- bbstool.scm | 4 +++- csv-simple.scm | 16 +++++++++++++++- 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 0f60b76..9842bda 100644 --- a/Makefile +++ b/Makefile @@ -227,7 +227,7 @@ members-dir.so: members-dir.o members-dir.o: members-dir.import.scm members-dir.import.scm: $(MEMBERS-DIR-SOURCES) -CSV-SIMPLE-SOURCES=csv-simple.scm +CSV-SIMPLE-SOURCES=csv-simple.scm testing.import.scm csv-simple.so: csv-simple.o csv-simple.o: csv-simple.import.scm diff --git a/bbstool.scm b/bbstool.scm index c3455b8..72de575 100644 --- a/bbstool.scm +++ b/bbstool.scm @@ -42,7 +42,8 @@ CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. members-print member-parser member-fees - members-dir) + members-dir + csv-simple) ;; Print banner (print "bbstool 0.6 (c) 2023 Brmlab, z.s.") @@ -106,6 +107,7 @@ CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. (member-record-tests!) (member-parser-tests!) (table-tests!) + (csv-simple-tests!) (newline)) ;; Load the members database (required for everything anyway) diff --git a/csv-simple.scm b/csv-simple.scm index 19ef1e1..ea921fa 100644 --- a/csv-simple.scm +++ b/csv-simple.scm @@ -29,13 +29,15 @@ csv-simple ( csv-parse + csv-simple-tests! ) (import scheme (chicken base) (chicken keyword) (chicken io) - (chicken irregex)) + (chicken irregex) + testing) ;; Curry version of line parser with configurable cell separator and ;; string delimiter. Returns a list of lists of strings. @@ -84,5 +86,17 @@ (csv-parse-line (make-csv-line-parser separator string-delimiter))) (map csv-parse-line lines))) + ;; Module self-tests + (define (csv-simple-tests!) + (run-tests + csv-simple + (test-equal? csv-parse-line + ((make-csv-line-parser ";" "\"") "test;2;3") + '("test" "2" "3")) + (test-equal? csv-parse-line + ((make-csv-line-parser ";" "\"") "test;\"2;quoted\";3") + '("test" "2;quoted" "3")) + )) + )