Test hashed object notation.
authorTaylor R Campbell <campbell@mumble.net>
Fri, 9 Aug 2019 16:53:43 +0000 (16:53 +0000)
committerTaylor R Campbell <campbell@mumble.net>
Sat, 10 Aug 2019 03:35:04 +0000 (03:35 +0000)
Currently busted for #[foo 123].

tests/runtime/test-readwrite.scm

index 7ffe76cb2406b91addcfc469d4dce0f2e7cc735d..ef556bf9aa4fed3f3f073f6a5cfe79fd698e97a5 100644 (file)
@@ -259,4 +259,21 @@ USA.
   (lambda (string #!optional xfail)
     (with-expected-failure xfail
       (lambda ()
-        (assert-error (lambda () (read-from-string string)))))))
\ No newline at end of file
+        (assert-error (lambda () (read-from-string string)))))))
+
+(define-structure twonky
+  fnord)
+
+(define-test 'hash
+  (lambda ()
+    (let* ((object (make-twonky 123))
+          (hash (hash-object object))
+          (string (string-append "#[twonky " (number->string hash) "]"))
+          (abbrev (string-append "#@" (number->string hash))))
+      (assert-equal (write-to-string object) string)
+      (expect-error
+       (lambda ()
+        (assert-eq (eval (read-from-string string) system-global-environment)
+                   object)))
+      (assert-eq (eval (read-from-string abbrev) system-global-environment)
+                object))))
\ No newline at end of file