merge from 1.8 branch
[bpt/guile.git] / test-suite / tests / srfi-9.test
CommitLineData
f764e6d1
MG
1;;;; srfi-9.test --- Test suite for Guile's SRFI-9 functions. -*- scheme -*-
2;;;; Martin Grabmueller, 2001-05-10
3;;;;
6e7d5622 4;;;; Copyright (C) 2001, 2006 Free Software Foundation, Inc.
f764e6d1
MG
5;;;;
6;;;; This program is free software; you can redistribute it and/or modify
7;;;; it under the terms of the GNU General Public License as published by
8;;;; the Free Software Foundation; either version 2, or (at your option)
9;;;; any later version.
10;;;;
11;;;; This program is distributed in the hope that it will be useful,
12;;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
13;;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14;;;; GNU General Public License for more details.
15;;;;
16;;;; You should have received a copy of the GNU General Public License
17;;;; along with this software; see the file COPYING. If not, write to
92205699
MV
18;;;; the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
19;;;; Boston, MA 02110-1301 USA
f764e6d1
MG
20
21(use-modules (srfi srfi-9))
22
23(define-record-type :foo (make-foo x) foo?
24 (x get-x) (y get-y set-y!))
25
26(define f (make-foo 1))
27(set-y! f 2)
28
29(with-test-prefix "record procedures"
30
31 (pass-if "predicate"
32 (foo? f))
33
34 (pass-if "accessor 1"
35 (= 1 (get-x f)))
36
37 (pass-if "accessor 2"
38 (= 2 (get-y f)))
39
40 (pass-if "modifier"
41 (set-y! f #t)
42 (eq? #t (get-y f))))