--- /dev/null
+(* Endianness expressions
+ * $Id$
+ *)
+
+open Printf
+open Bitmatch
+
+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;
+ ]