From b19ebb03487c95182c52ebacf8cf5f739d632bae Mon Sep 17 00:00:00 2001 From: Samuel Hym Date: Thu, 26 Jan 2023 14:29:15 +0100 Subject: [PATCH] Test calls to input_byte after close_in Add a test demonstrating issue #11878 --- testsuite/tests/lib-channels/close_in.ml | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 testsuite/tests/lib-channels/close_in.ml diff --git a/testsuite/tests/lib-channels/close_in.ml b/testsuite/tests/lib-channels/close_in.ml new file mode 100644 index 000000000000..6dd3e1021102 --- /dev/null +++ b/testsuite/tests/lib-channels/close_in.ml @@ -0,0 +1,22 @@ +(* TEST *) + +(* The number of bytes we’ll rewind after closing; a value + between 1 and IO_BUFFER_SIZE *) +let nb_bytes = 3 + +let () = + let ic = open_in_bin Sys.argv.(0) in + seek_in ic nb_bytes; + close_in ic; + seek_in ic 0; + for _ = 1 to nb_bytes do + (* the bytes we get here were never initialised *) + ignore (input_byte ic) + done; + assert ( + try + ignore (input_byte ic); + false + with + | Sys_error _ -> true + | _ -> false)