From 1f78c6691fbcfe059c74ac93b64a453eb2353ced Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 6 May 2011 17:43:37 +0200 Subject: [PATCH] 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. --- test-suite/tests/foreign.test | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/test-suite/tests/foreign.test b/test-suite/tests/foreign.test index 60b466e1c..5ddd31c1d 100644 --- a/test-suite/tests/foreign.test +++ b/test-suite/tests/foreign.test @@ -124,24 +124,32 @@ (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) - (+ byte (* 256 address))) - 0 - bytes)))) + (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) - (+ byte (* 256 address))) - 0 - bytes))))) + (fold (lambda (byte address) + (+ byte (* 256 address))) + 0 + bytes))))) (with-test-prefix "pointer<->string"