Fix `equal?' on bytevectors.

* libguile/bytevectors.c (bytevector_equal_p): New function.

* test-suite/tests/bytevectors.test ("2.3 Operations on Bytes and
  Octets")["equal?"]: New test.
This commit is contained in:
Ludovic Courtès 2009-06-19 00:10:21 +02:00
commit 55bf8cb7af
2 changed files with 11 additions and 1 deletions

View file

@ -300,6 +300,11 @@ SCM_SMOB_PRINT (scm_tc16_bytevector, print_bytevector,
return 1;
}
SCM_SMOB_EQUALP (scm_tc16_bytevector, bytevector_equal_p, bv1, bv2)
{
return scm_bytevector_eq_p (bv1, bv2);
}
SCM_SMOB_FREE (scm_tc16_bytevector, free_bytevector, bv)
{

View file

@ -123,7 +123,12 @@
(bytevector-sint-set! b 0 -16 (endianness big) 2)
(bytevector-sint-set! b 1 -16 (endianness little) 2)
(equal? (bytevector->u8-list b)
'(#xff #xf0 #xff)))))
'(#xff #xf0 #xff))))
(pass-if "equal?"
(let ((bv1 (u8-list->bytevector (iota 123)))
(bv2 (u8-list->bytevector (iota 123))))
(equal? bv1 bv2))))
(with-test-prefix "2.4 Operations on Integers of Arbitrary Size"