summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2009-02-16 00:35:34 +0100
committerLudovic Courtès <ludo@gnu.org>2009-02-16 00:35:34 +0100
commite47096d965f0a39fef191e24f9b692c26e1e68d6 (patch)
tree08f63ec8a3748f7be90c3fb9bb351617de6186d6
parentfe11efeebaa2ebb7bf0fe8bc46a29c152ead2509 (diff)
downloadguile-e47096d965f0a39fef191e24f9b692c26e1e68d6.tar.gz
Add test for `procedure-properties'.
* test-suite/Makefile.am (SCM_TESTS): Add `tests/procprop.test'.
-rw-r--r--test-suite/Makefile.am3
-rw-r--r--test-suite/tests/procprop.test61
2 files changed, 63 insertions, 1 deletions
diff --git a/test-suite/Makefile.am b/test-suite/Makefile.am
index c2266e44d..49e5c2cb2 100644
--- a/test-suite/Makefile.am
+++ b/test-suite/Makefile.am
@@ -1,6 +1,6 @@
## Process this file with automake to produce Makefile.in.
##
-## Copyright 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Software Foundation, Inc.
+## Copyright 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Software Foundation, Inc.
##
## This file is part of GUILE.
##
@@ -53,6 +53,7 @@ SCM_TESTS = tests/alist.test \
tests/numbers.test \
tests/optargs.test \
tests/options.test \
+ tests/procprop.test \
tests/poe.test \
tests/popen.test \
tests/ports.test \
diff --git a/test-suite/tests/procprop.test b/test-suite/tests/procprop.test
new file mode 100644
index 000000000..5ab585058
--- /dev/null
+++ b/test-suite/tests/procprop.test
@@ -0,0 +1,61 @@
+;;;; procprop.test --- Procedure properties -*- Scheme -*-
+;;;; Ludovic Courtès <ludo@gnu.org>
+;;;;
+;;;; Copyright (C) 2009 Free Software Foundation, Inc.
+;;;;
+;;;; This program is free software; you can redistribute it and/or modify
+;;;; it under the terms of the GNU General Public License as published by
+;;;; the Free Software Foundation; either version 2, or (at your option)
+;;;; any later version.
+;;;;
+;;;; This program 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 General Public License for more details.
+;;;;
+;;;; You should have received a copy of the GNU General Public License
+;;;; along with this software; see the file COPYING. If not, write to
+;;;; the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+;;;; Boston, MA 02110-1301 USA
+
+(define-module (test-procpop)
+ :use-module (test-suite lib))
+
+
+(with-test-prefix "procedure-name"
+ (pass-if "simple subr"
+ (eq? 'display (procedure-name display)))
+
+ (pass-if "gsubr"
+ (eq? 'hashq-ref (procedure-name hashq-ref))))
+
+
+(with-test-prefix "procedure-arity"
+ (pass-if "simple subr"
+ (equal? (procedure-property display 'arity)
+ '(1 1 #f)))
+
+ (pass-if "gsubr"
+ (equal? (procedure-property hashq-ref 'arity)
+ '(2 1 #f)))
+
+ (pass-if "port-closed?"
+ (equal? (procedure-property port-closed? 'arity)
+ '(1 0 #f)))
+
+ (pass-if "apply"
+ (equal? (procedure-property apply 'arity)
+ '(1 0 #t)))
+
+ (pass-if "cons*"
+ (equal? (procedure-property cons* 'arity)
+ '(1 0 #t)))
+
+ (pass-if "list"
+ (equal? (procedure-property list 'arity)
+ '(0 0 #t))))
+
+
+;;; Local Variables:
+;;; coding: latin-1
+;;; End: