diff options
Diffstat (limited to 'testsuite/tests/regression/pr9326/gc_set.ml')
-rw-r--r-- | testsuite/tests/regression/pr9326/gc_set.ml | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/testsuite/tests/regression/pr9326/gc_set.ml b/testsuite/tests/regression/pr9326/gc_set.ml new file mode 100644 index 0000000000..e9d7dbcd4c --- /dev/null +++ b/testsuite/tests/regression/pr9326/gc_set.ml @@ -0,0 +1,35 @@ +(* TEST +*) + +open Gc + +let min_heap_sz = 524288 (* 512k *) +let maj_heap_inc = 4194304 (* 4M *) + +let _ = + let g1 = Gc.get() in + (* Do not use { g1 with ... }, so that the code will break if more fields + are added to the Gc.control record type *) + Gc.set { minor_heap_size = min_heap_sz; + major_heap_increment = maj_heap_inc; + space_overhead = g1.space_overhead; + verbose = g1.verbose; + max_overhead = g1.max_overhead; + stack_limit = g1.stack_limit; + allocation_policy = g1.allocation_policy; + window_size = g1.window_size; + custom_major_ratio = g1.custom_major_ratio; + custom_minor_ratio = g1.custom_minor_ratio; + custom_minor_max_size = g1.custom_minor_max_size }; + let g2 = Gc.get() in + assert (g2.minor_heap_size = min_heap_sz); + assert (g2.major_heap_increment = maj_heap_inc); + assert (g2.space_overhead = g1.space_overhead); + assert (g2.verbose = g1.verbose); + assert (g2.max_overhead = g1.max_overhead); + assert (g2.stack_limit = g1.stack_limit); + assert (g2.allocation_policy = g1.allocation_policy); + assert (g2.window_size = g1.window_size); + assert (g2.custom_major_ratio = g1.custom_major_ratio); + assert (g2.custom_minor_ratio = g1.custom_minor_ratio); + assert (g2.custom_minor_max_size = g1.custom_minor_max_size) |