1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
(* Endianness expressions
* $Id: 40_endianexpr.ml 142 2008-07-17 15:45:56Z richard.wm.jones $
*)
open Printf
open Bitstring
let () =
let rec loop = function
| (e, expected) :: rest ->
let bits = BITSTRING {
expected : 32 : endian (e);
expected : 32 : endian (e);
expected : 32 : endian (e)
} in
(bitmatch bits with
| { actual : 32 : endian (e);
actual : 32 : endian (e);
actual : 32 : endian (e) } ->
if actual <> expected then
failwith (sprintf "actual %ld <> expected %ld" actual expected)
| { _ } as bits ->
hexdump_bitstring stderr bits; exit 1
);
loop rest
| [] -> ()
in
loop [
BigEndian, 0xa1b2c3d4_l;
BigEndian, 0xa1d4c3b2_l;
LittleEndian, 0xa1b2c3d4_l;
LittleEndian, 0xa1d4c3b2_l;
NativeEndian, 0xa1b2c3d4_l;
NativeEndian, 0xa1d4c3b2_l;
]
|