summaryrefslogtreecommitdiff
path: root/testsuite/tests/regression/pr9326/gc_set.ml
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite/tests/regression/pr9326/gc_set.ml')
-rw-r--r--testsuite/tests/regression/pr9326/gc_set.ml35
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)