anchor.diff:  
   (defsuite deserialize-tests ())
   
  -(defun run (&optional interactive?)
  +(defun run (&optional interactive-p)
     "Run all tests in the test suite.
  -User can specify INTERACTIVE? for local debugging."
  -  (run-suite 'deserialize-tests :use-debugger interactive?))
  +Parameters:
  +  INTERACTIVE-P: Open debugger on assert failure."
  +  (let ((result (run-suite 'deserialize-tests :use-debugger interactive-p)))
  +    (print result)
  +    (assert (= (slot-value result 'clunit::failed) 0))
  +    (assert (= (slot-value result 'clunit::errors) 0))))
   
   (deftest test-deserialize-object-to-bytes (deserialize-tests)
     (let* ((msg
  
positive.code:           (proto:serialize-object-to-bytes outer-with-native))
           (outer-with-clone-bytes
            (proto:serialize-object-to-bytes outer-with-clone)))
      (expect (equalp outer-with-native-bytes outer-with-clone-bytes))))
  
negative.code:     ;; make a new msg using msg's proto serialization bytes
      (let* ((msg-clone (proto:deserialize-object-to-bytes
                         'protobufs-test-proto:message msg-bytes)))
        (assert-true (null (protobufs-test-proto:i msg-clone)))
        (assert-true (equalp msg-bytes (proto:serialize-object-to-bytes msg-clone)))
        ;; modify msg-clone
        (setf (protobufs-test-proto:i msg-clone) 1000)
        ;; re-serialize msg-clone; it should still remember the bytes we gave it
        (assert-true (equalp msg-bytes (proto:serialize-object-to-bytes msg-clone)))
        ;; sanity check: the bytes should not be equal if we actually serialize a message with
        ;; different content
        (let* ((new-msg-bytes
                (proto-impl:make-object
                 protobufs-test-proto:message :i 1000)))
          (assert-true (not (equalp msg-bytes new-msg-bytes)))))))
  
  (deftest bytes-in-embedded-obj (deserialize-tests)
    (let* ((msg
  