1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
|
;;; Guile-Avahi --- Guile bindings for Avahi.
;;; Copyright (C) 2007 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of Guile-Avahi.
;;;
;;; Guile-Avahi is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU Lesser General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; Guile-Avahi 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 Lesser
;;; General Public License for more details.
;;;
;;; You should have received a copy of the GNU Lesser General Public License
;;; along with this program. If not, see <http://www.gnu.org/licenses/>.
;;;
;;; Test the error/exception mechanism.
;;;
(use-modules (avahi)
(avahi client)
(avahi client publish)
(avahi test))
(dynamic-wind
(lambda ()
#t)
(lambda ()
(let* ((poll (make-simple-poll))
(ready? #f)
(client
(make-client (simple-poll poll) '()
(lambda (client state)
(set! ready?
(or ready?
(eq? state
client-state/s-running)))))))
(catch 'avahi-error
(lambda ()
(iterate-simple-poll-until-true poll (lambda () ready?))
(let ((group (make-entry-group client (lambda args #f))))
(free-entry-group! group)
;; this one raises an exception
(entry-group-state group)
;; not reached (normally)
(assert-exit #f)))
(lambda (key err function . currently-unused)
;;(format #t "~a ~a ~a ~a~%"
;; key err function currently-unused)
(assert-exit (and (eq? key 'avahi-error)
(eq? err error/invalid-object)
(string? (error->string err))
(eq? function 'entry-group-state)))))))
(lambda ()
;; failure
(assert-exit 1)))
;;; arch-tag: f5b90299-0cd8-4fae-8baf-27b456ceabcf
|