diff --git a/contrib/10.regexp/CMakeLists.txt b/contrib/10.regexp/CMakeLists.txt index b416888a..c13c76d3 100644 --- a/contrib/10.regexp/CMakeLists.txt +++ b/contrib/10.regexp/CMakeLists.txt @@ -13,4 +13,6 @@ if (REGEX_FOUND) list(APPEND PICRIN_CONTRIB_INITS regexp) list(APPEND PICRIN_CONTRIB_LIBRARIES ${REGEX_LIBRARIES}) list(APPEND PICRIN_CONTRIB_SOURCES ${PICRIN_REGEX_SOURCES}) + add_custom_target(test-regexp for test in ${PROJECT_SOURCE_DIR}/contrib/10.regexp/t/*.scm \; do bin/picrin "$$test" \; done DEPENDS repl) + set(CONTRIB_TESTS ${CONTRIB_TESTS} test-regexp) endif() diff --git a/contrib/10.regexp/t/test.scm b/contrib/10.regexp/t/test.scm new file mode 100644 index 00000000..1b2a5c21 --- /dev/null +++ b/contrib/10.regexp/t/test.scm @@ -0,0 +1,12 @@ +(import (scheme base) + (picrin test) + (picrin regexp)) + +(test #t (regexp? (regexp "simple"))) +(test #f (regexp? "it\\s[s]e+ms\\s(reg)?exp")) + (test-values (values '("abcd" "b") '(5 6)) (regexp-match (regexp "a(b)cd") "abdacabcd")) +(test '("a" "b" "c" "d") (regexp-split (regexp ",") "a,b,c,d")) +(test '("a" "b" "c" "d") (regexp-split (regexp "\\.+") "a.b....c.....d")) +(test "a b c d" (regexp-replace (regexp ",") " " "a,b,c,d")) +(test "newline tab spase " (regexp-replace (regexp "\\s") " " "newline +tab space "))