1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-08 19:42:27 +02:00

Test the interaction of GOOPS objects with `struct-{ref,set!}'.

This commit is contained in:
Ludovic Courtès 2008-04-13 20:41:23 +02:00
parent a3d27a5499
commit b337315785
2 changed files with 33 additions and 2 deletions

View file

@ -1,3 +1,10 @@
2008-04-13 Ludovic Courtès <ludo@gnu.org>
* tests/goops.test (defining classes)[interaction with
`struct-ref', interaction with `struct-set!']: New test. Checks
the interaction of `struct-ref' with "light structs", fixed on
2008-04-10 (commit 4650d115020924e8da5547d4c346cbe5cd01029e).
2008-04-06 Ludovic Courtès <ludo@gnu.org>
* standalone/test-asmobs-lib.c, standalone/test-conversion.c,

View file

@ -1,6 +1,6 @@
;;;; goops.test --- test suite for GOOPS -*- scheme -*-
;;;;
;;;; Copyright (C) 2001,2003,2004, 2006 Free Software Foundation, Inc.
;;;; Copyright (C) 2001,2003,2004, 2006, 2008 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
@ -148,7 +148,31 @@
#t)
(lambda args
#f)))
))
(pass-if "interaction with `struct-ref'"
(eval '(define-class <class-struct> ()
(foo #:init-keyword #:foo)
(bar #:init-keyword #:bar))
(current-module))
(eval '(let ((x (make <class-struct>
#:foo 'hello
#:bar 'world)))
(and (struct? x)
(eq? (struct-ref x 0) 'hello)
(eq? (struct-ref x 1) 'world)))
(current-module)))
(pass-if "interaction with `struct-set!'"
(eval '(define-class <class-struct-2> ()
(foo) (bar))
(current-module))
(eval '(let ((x (make <class-struct-2>)))
(struct-set! x 0 'hello)
(struct-set! x 1 'world)
(and (struct? x)
(eq? (struct-ref x 0) 'hello)
(eq? (struct-ref x 1) 'world)))
(current-module)))))
(with-test-prefix "defining generics"