1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-19 19:20:23 +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,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"