From 69f0e9b624dad06666ae8e3d273087d99f71be74 Mon Sep 17 00:00:00 2001
From: Simon Cruanes <simon.cruanes.2007@m4x.org>
Date: Tue, 17 Sep 2024 14:04:09 -0400
Subject: [PATCH] test: better regression test for #454

---
 Makefile                         |  3 ++-
 tests/core/reg/dune              |  5 +++++
 tests/core/reg/t_reg454.expected |  0
 tests/core/reg/t_reg454.ml       |  8 ++++++++
 tests/core/t_vector.ml           | 12 ------------
 5 files changed, 15 insertions(+), 13 deletions(-)
 create mode 100644 tests/core/reg/dune
 create mode 100644 tests/core/reg/t_reg454.expected
 create mode 100644 tests/core/reg/t_reg454.ml

diff --git a/Makefile b/Makefile
index 3c14d7563..f6190bbdd 100644
--- a/Makefile
+++ b/Makefile
@@ -6,7 +6,8 @@ build:
 	dune build @install -p $(PACKAGES)
 
 test: build
-	dune runtest --display=quiet --cache=disabled --no-buffer --force
+	# run tests in release mode to expose bug in #454
+	dune runtest --display=quiet --cache=disabled --no-buffer --force --profile=release
 
 clean:
 	dune clean
diff --git a/tests/core/reg/dune b/tests/core/reg/dune
new file mode 100644
index 000000000..985274b0e
--- /dev/null
+++ b/tests/core/reg/dune
@@ -0,0 +1,5 @@
+
+(tests
+ (ocamlopt_flags :standard -inline 1000)
+ (names t_reg454)
+ (libraries containers))
diff --git a/tests/core/reg/t_reg454.expected b/tests/core/reg/t_reg454.expected
new file mode 100644
index 000000000..e69de29bb
diff --git a/tests/core/reg/t_reg454.ml b/tests/core/reg/t_reg454.ml
new file mode 100644
index 000000000..a8040580c
--- /dev/null
+++ b/tests/core/reg/t_reg454.ml
@@ -0,0 +1,8 @@
+module Vec = CCVector
+
+let () =
+  let arr : Int32.t Vec.vector = Vec.create () in
+  Vec.push arr (Int32.of_int 123456);
+  Format.printf "%d\n" (Int32.to_int (Vec.get arr 0));
+  let x = Vec.get arr 0 in
+  Format.printf "%d\n" (Int32.to_int x)
diff --git a/tests/core/t_vector.ml b/tests/core/t_vector.ml
index 5abe32923..121a7df75 100644
--- a/tests/core/t_vector.ml
+++ b/tests/core/t_vector.ml
@@ -753,15 +753,3 @@ push v 0;
 push v 0;
 push v 0;
 6 = foldi (fun i acc _ -> acc + i) 0 v
-;;
-
-t ~name:"reg454" @@ fun () ->
-let arr : Int32.t vector = create () in
-CCVector.push arr (Int32.of_int 123456);
-let s = spf "%d\n" (Int32.to_int (CCVector.get arr 0)) in
-Printf.eprintf "%d\n" (Int32.to_int (CCVector.get arr 0));
-let x = CCVector.get arr 0 in
-let s2 = spf "%d\n" (Int32.to_int x) in
-Printf.eprintf "%d\n" (Int32.to_int x);
-assert_equal ~printer:(spf "%S") s s2;
-true