summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2011-02-07 22:12:10 +0100
committerLudovic Courtès <ludo@gnu.org>2011-02-07 22:12:10 +0100
commit6debc49e2c493674f2f35e6661c8035bf429b449 (patch)
tree7e72febbe7967bbe2c766f520a4233afb6aa5cbe
parenta75ea6589642270adf933b85a15d96a74ff59225 (diff)
downloadguile-6debc49e2c493674f2f35e6661c8035bf429b449.tar.gz
Add tests for `memq' and `memv'.
This is a follow-up to a75ea6589642270adf933b85a15d96a74ff59225 ("fix memq/memv inlining"). * test-suite/tests/list.test ("memq", "memv"): New test prefixes.
-rw-r--r--test-suite/tests/list.test19
1 files changed, 18 insertions, 1 deletions
diff --git a/test-suite/tests/list.test b/test-suite/tests/list.test
index d7b7801c9..dc06f0795 100644
--- a/test-suite/tests/list.test
+++ b/test-suite/tests/list.test
@@ -1,5 +1,5 @@
;;;; list.test --- tests guile's lists -*- scheme -*-
-;;;; Copyright (C) 2000, 2001, 2006 Free Software Foundation, Inc.
+;;;; Copyright (C) 2000, 2001, 2006, 2011 Free Software Foundation, Inc.
;;;;
;;;; This library is free software; you can redistribute it and/or
;;;; modify it under the terms of the GNU Lesser General Public
@@ -658,9 +658,26 @@
;;; memq
+(with-test-prefix/c&e "memq"
+
+ (pass-if "inline"
+ ;; In this case `memq' is inlined and the loop is unrolled.
+ (equal? '(b c d) (memq 'b '(a b c d))))
+
+ (pass-if "non inline"
+ ;; In this case a real function call is generated.
+ (equal? '(b c d) (memq 'b (list 'a 'b 'c 'd)))))
;;; memv
+(with-test-prefix/c&e "memv"
+ (pass-if "inline"
+ ;; In this case `memv' is inlined and the loop is unrolled.
+ (equal? '(b c d) (memv 'b '(a b c d))))
+
+ (pass-if "non inline"
+ ;; In this case a real function call is generated.
+ (equal? '(b c d) (memv 'b (list 'a 'b 'c 'd)))))
;;; member