mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-04-30 03:40:34 +02:00
Fix `foreign.test' for big endian machines.
* test-suite/tests/foreign.test ("pointer<->bytevector")["pointer from bits", "dereference-pointer"]: Fix iteration order for big endian machines.
This commit is contained in:
parent
a2a6c0e319
commit
1f78c6691f
1 changed files with 18 additions and 10 deletions
|
@ -124,21 +124,29 @@
|
|||
|
||||
(pass-if "pointer from bits"
|
||||
(let* ((bytes (iota (sizeof '*)))
|
||||
(bv (u8-list->bytevector bytes)))
|
||||
(bv (u8-list->bytevector bytes))
|
||||
(fold (case (native-endianness)
|
||||
((little) fold-right)
|
||||
((big) fold)
|
||||
(else (error "unsupported endianness")))))
|
||||
(= (pointer-address
|
||||
(make-pointer (bytevector-uint-ref bv 0 (native-endianness)
|
||||
(sizeof '*))))
|
||||
(fold-right (lambda (byte address)
|
||||
(fold (lambda (byte address)
|
||||
(+ byte (* 256 address)))
|
||||
0
|
||||
bytes))))
|
||||
|
||||
(pass-if "dereference-pointer"
|
||||
(let* ((bytes (iota (sizeof '*)))
|
||||
(bv (u8-list->bytevector bytes)))
|
||||
(bv (u8-list->bytevector bytes))
|
||||
(fold (case (native-endianness)
|
||||
((little) fold-right)
|
||||
((big) fold)
|
||||
(else (error "unsupported endianness")))))
|
||||
(= (pointer-address
|
||||
(dereference-pointer (bytevector->pointer bv)))
|
||||
(fold-right (lambda (byte address)
|
||||
(fold (lambda (byte address)
|
||||
(+ byte (* 256 address)))
|
||||
0
|
||||
bytes)))))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue