let allocdiff = let stat1 = Gc.quick_stat () in let stat2 = Gc.quick_stat () in (stat2.Gc.minor_words -. stat1.Gc.minor_words) let () = Test_bigstring.test1 (); let stat1 = Gc.quick_stat () in Test_bigstring.test2 (); if Sys.word_size = 64 then Test_bigstring.test_64 (); let stat2 = Gc.quick_stat () in (* with a 32 bit system, int64 must be heap allocated *) if Sys.word_size = 32 then Test_bigstring.test_64 (); let alloc1 = stat2.Gc.minor_words -. stat1.Gc.minor_words -. allocdiff in Printf.printf "bigstring: allocated words %f\n%!" alloc1; Test_string.test1 (); let stat1 = Gc.quick_stat () in Test_string.test2 (); if Sys.word_size = 64 then Test_string.test_64 (); let stat2 = Gc.quick_stat () in if Sys.word_size = 32 then Test_string.test_64 (); let alloc2 = stat2.Gc.minor_words -. stat1.Gc.minor_words -. allocdiff in Printf.printf "string: allocated words %f\n%!" alloc2; Test_bytes.test1 (); let stat1 = Gc.quick_stat () in Test_bytes.test2 (); if Sys.word_size = 64 then Test_bytes.test_64 (); let stat2 = Gc.quick_stat () in if Sys.word_size = 32 then Test_bytes.test_64 (); let alloc3 = stat2.Gc.minor_words -. stat1.Gc.minor_words -. allocdiff in Printf.printf "bytes: allocated words %f\n%!" alloc3; (* we cannot ensure that there are no allocations only with the primives added in 4.01.0 *) if (alloc1 <> 0. || alloc2 <> 0. || alloc3 <> 0.) then exit 1 else exit 0