syndicate-rkt/syndicate/test/core/sturdy.rkt

36 lines
1.4 KiB
Racket

#lang at-exp racket/base
;;; SPDX-License-Identifier: LGPL-3.0-or-later
;;; SPDX-FileCopyrightText: Copyright © 2023-2024 Tony Garnock-Jones <tonyg@leastfixedpoint.com>
(module+ test
(require rackunit)
(require syndicate/sturdy)
(require preserves)
(define s0 (mint "test" #""))
(check-equal? s0 (SturdyRef (Parameters "test"
#">\330w\326\3r{\216U`j\24\376\203\242\360"
(CaveatsField-absent))))
(check-true (SturdyRef-valid? s0 #""))
(define s1 (attenuate-sturdy s0 'a 'b 'c))
(check-equal? s1 (SturdyRef (Parameters "test"
#"\261\220\327\363X\317\202\251&\367\3734*\355\333\324"
(CaveatsField-present '(a b c)))))
(check-true (SturdyRef-valid? s1 #""))
(check-false (SturdyRef-valid?
(SturdyRef (Parameters "test"
#"\261\220\327\363X\317\202\251&\367\3734?\355\333\324"
(CaveatsField-present '(a b c))))
#""))
(check-false (SturdyRef-valid?
(SturdyRef (Parameters "test"
#"\261\220\327\363X\317\202\251&\367\3734*\355\333\324"
(CaveatsField-present '(a c b))))
#""))
)