mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-04-30 11:50:28 +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,24 +124,32 @@
|
||||||
|
|
||||||
(pass-if "pointer from bits"
|
(pass-if "pointer from bits"
|
||||||
(let* ((bytes (iota (sizeof '*)))
|
(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
|
(= (pointer-address
|
||||||
(make-pointer (bytevector-uint-ref bv 0 (native-endianness)
|
(make-pointer (bytevector-uint-ref bv 0 (native-endianness)
|
||||||
(sizeof '*))))
|
(sizeof '*))))
|
||||||
(fold-right (lambda (byte address)
|
(fold (lambda (byte address)
|
||||||
(+ byte (* 256 address)))
|
(+ byte (* 256 address)))
|
||||||
0
|
0
|
||||||
bytes))))
|
bytes))))
|
||||||
|
|
||||||
(pass-if "dereference-pointer"
|
(pass-if "dereference-pointer"
|
||||||
(let* ((bytes (iota (sizeof '*)))
|
(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
|
(= (pointer-address
|
||||||
(dereference-pointer (bytevector->pointer bv)))
|
(dereference-pointer (bytevector->pointer bv)))
|
||||||
(fold-right (lambda (byte address)
|
(fold (lambda (byte address)
|
||||||
(+ byte (* 256 address)))
|
(+ byte (* 256 address)))
|
||||||
0
|
0
|
||||||
bytes)))))
|
bytes)))))
|
||||||
|
|
||||||
|
|
||||||
(with-test-prefix "pointer<->string"
|
(with-test-prefix "pointer<->string"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue