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 36 37 38 39 40 41 42 43
|
(* Test fix for a regression when extracting 32 and 64 bit aligned
* integers (discovered / fixed / tested by Hans Ole Rafaelsen).
* $Id$
*)
open Printf
open Bitstring
let bitstring_of_int32 i =
BITSTRING { i : 32 }
let bitstring_of_int64 i =
BITSTRING { i : 64 }
let int32_of_bitstring bits =
bitmatch bits with
| { i : 32 } -> i
let int64_of_bitstring bits =
bitmatch bits with
| { i : 64 } -> i
let () =
let b1 = bitstring_of_int32 1_l in
let b2 = bitstring_of_int32 2_l in
let b3 = bitstring_of_int32 3_l in
let i1 = int32_of_bitstring b1 in
let i2 = int32_of_bitstring b2 in
let i3 = int32_of_bitstring b3 in
assert (i1 = 1_l);
assert (i2 = 2_l);
assert (i3 = 3_l);
let b1 = bitstring_of_int64 1_L in
let b2 = bitstring_of_int64 2_L in
let b3 = bitstring_of_int64 3_L in
let i1 = int64_of_bitstring b1 in
let i2 = int64_of_bitstring b2 in
let i3 = int64_of_bitstring b3 in
assert (i1 = 1_L);
assert (i2 = 2_L);
assert (i3 = 3_L)
|