chicken-hackers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Chicken-hackers] [PATCH 2/2] Add a test case for multiple values handli


From: Kooda
Subject: [Chicken-hackers] [PATCH 2/2] Add a test case for multiple values handling.
Date: Fri, 8 Sep 2017 01:46:16 +0200

---
 tests/multiple-values.scm | 17 +++++++++++++++++
 tests/runtests.bat        |  8 ++++++++
 tests/runtests.sh         |  5 +++++
 3 files changed, 30 insertions(+)
 create mode 100644 tests/multiple-values.scm

diff --git a/tests/multiple-values.scm b/tests/multiple-values.scm
new file mode 100644
index 00000000..c70b0521
--- /dev/null
+++ b/tests/multiple-values.scm
@@ -0,0 +1,17 @@
+(define-syntax assert-fail
+  (syntax-rules ()
+    ((_ exp)
+     (assert (handle-exceptions ex #t exp #f)))))
+
+(define (f x) #t)
+
+;; Relaxed cases
+(assert (f (values 1 2 3)))
+(assert (f (call/cc (lambda (k) (k 1 2 3)))))
+
+;; Strict cases
+(assert-fail (call-with-values (lambda () (values 1 2 3)) f))
+(assert-fail
+  (call-with-values
+    (lambda () (call/cc (lambda (k) (k 1 2 3))))
+    f))
diff --git a/tests/runtests.bat b/tests/runtests.bat
index 8ac8b144..2d25a98e 100644
--- a/tests/runtests.bat
+++ b/tests/runtests.bat
@@ -601,6 +601,14 @@ rem this may crash, if the PATH contains a non-matching 
libchicken.dll on Window
 set PATH=%PATH%;%CD%\tmp xxx %CD%\tmp
 del /f /q /s rev-app rev-app-2 reverser\*.import.* reverser\*.so
 
+echo ======================================== multiple return values tests ...
+%interpret% -s multiple-values.scm
+if errorlevel 1 exit /b 1
+%compile% multiple-values.scm
+if errorlevel 1 exit /b 1
+a.out
+if errorlevel 1 exit /b 1
+
 rem echo ======================================== reinstall tests
 rem currently disabled for windows
 
diff --git a/tests/runtests.sh b/tests/runtests.sh
index 1cce11e6..752e6b74 100755
--- a/tests/runtests.sh
+++ b/tests/runtests.sh
@@ -463,4 +463,9 @@ PATH=`pwd`/tmp:$PATH xxx ${TEST_DIR}/tmp
 #PATH=$PATH:${TEST_DIR}/tmp xxx ${TEST_DIR}/tmp
 rm -fr reverser/*.import.* reverser/*.so
 
+echo "======================================== multiple return values tests 
..."
+$interpret -s multiple-values.scm
+$compile multiple-values.scm
+./a.out
+
 echo "======================================== done."
-- 
2.14.1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]