anchor.diff:        (let ((context (create-context (null-pointer) 1 devices))
               (device (mem-aref devices 'cl-device-id)))
           (ok context "create context")
  -        (let ((buffer (create-buffer context +cl-mem-read-write+ 1000)))
  -          (ok buffer "create buffer")
  +        (let ((buffer-in (create-buffer context +cl-mem-read-only+ 1))
  +              (buffer-out (create-buffer context +cl-mem-write-only+ 1)))
  +          (ok buffer-in "create buffer-in")
  +          (ok buffer-out "create buffer-out")
             (with-foreign-string (source *copy-kernel*)
               (with-foreign-object (p :pointer)
                 (setf (mem-aref p :pointer) source)
  
positive.code:                 (with-foreign-string (name "alfa")
                    (let ((kernel (create-kernel program name)))
                      (ok kernel "create kernel")
                      (with-foreign-object (p :pointer)
                        (setf (mem-aref p :pointer) buffer)
                        (is-success (cl-set-kernel-arg kernel 0 8 p) "set kernel arg")
                        (let ((command-queue (create-command-queue context device 0)))
                          (ok command-queue "create command queue")
                          (with-foreign-objects ((global-work-size 'size-t 3)
                                                 (local-work-size 'size-t 3))
                            (set-work-size global-work-size 1)
  
negative.code:                         (is-success (cl-finish command-queue) "finish")
                          (with-foreign-object (value 'cl-char)
                            (setf (mem-aref value 'cl-char) 0)
                            (enqueue-read-buffer command-queue buffer-out 1 0 1 value)
                            (is 1 (mem-aref value 'cl-char) "buffer-out result"))
                          (is-success (cl-release-command-queue command-queue) "release command queueu")))
                      (is-success (cl-release-kernel kernel) "release kernel")))
                  (is-success (cl-release-program program) "release program"))))
            (is-success (cl-release-mem-object buffer-in) "release mem object")
            (is-success (cl-release-mem-object buffer-out) "release mem object"))
          (is-success (cl-release-context context) "release context")
          (is-success (cl-release-device device) "release device")))))
  
  