summaryrefslogtreecommitdiffstats
path: root/test/Moretest
diff options
context:
space:
mode:
authorXavier Clerc <xavier.clerc@inria.fr>2010-01-25 14:32:51 +0000
committerXavier Clerc <xavier.clerc@inria.fr>2010-01-25 14:32:51 +0000
commit68d11ebecb9a2eafa1a4e32c270fc476f2625543 (patch)
tree9ad8e517d474c26f9082c7856641b3fa917922bd /test/Moretest
parent13893fbe36ca3727e7e0e7b47058ceac134aa896 (diff)
Tests moved to 'basic-io-2'
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@9586 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
Diffstat (limited to 'test/Moretest')
-rw-r--r--test/Moretest/io.ml103
1 files changed, 0 insertions, 103 deletions
diff --git a/test/Moretest/io.ml b/test/Moretest/io.ml
deleted file mode 100644
index f843e7084..000000000
--- a/test/Moretest/io.ml
+++ /dev/null
@@ -1,103 +0,0 @@
-(* Test a file copy function *)
-
-let test msg funct f1 f2 =
- print_string msg; print_newline();
- funct f1 f2;
- if Sys.command ("cmp " ^ f1 ^ " " ^ f2) = 0
- then print_string "passed"
- else print_string "FAILED";
- print_newline()
-
-(* File copy with constant-sized chunks *)
-
-let copy_file sz infile ofile =
- let ic = open_in infile in
- let oc = open_out ofile in
- let buffer = String.create sz in
- let rec copy () =
- let n = input ic buffer 0 sz in
- if n = 0 then () else begin
- output oc buffer 0 n;
- copy ()
- end in
- copy();
- close_in ic;
- close_out oc
-
-(* File copy with random-sized chunks *)
-
-let copy_random sz infile ofile =
- let ic = open_in infile in
- let oc = open_out ofile in
- let buffer = String.create sz in
- let rec copy () =
- let s = 1 + Random.int sz in
- let n = input ic buffer 0 s in
- if n = 0 then () else begin
- output oc buffer 0 n;
- copy ()
- end in
- copy();
- close_in ic;
- close_out oc
-
-(* File copy line per line *)
-
-let copy_line infile ofile =
- let ic = open_in infile in
- let oc = open_out ofile in
- try
- while true do
- output_string oc (input_line ic); output_char oc '\n'
- done
- with End_of_file ->
- close_in ic;
- close_out oc
-
-(* Backward copy, with lots of seeks *)
-
-let copy_seek chunksize infile ofile =
- let ic = open_in_bin infile in
- let oc = open_out_bin ofile in
- let size = in_channel_length ic in
- let buffer = String.create chunksize in
- for i = (size - 1) / chunksize downto 0 do
- seek_in ic (i * chunksize);
- seek_out oc (i * chunksize);
- let n = input ic buffer 0 chunksize in
- output oc buffer 0 n
- done;
- close_in ic;
- close_out oc
-
-(* Create long lines of text *)
-
-let make_lines ofile =
- let oc = open_out ofile in
- for i = 1 to 256 do
- output_string oc (String.make (i*64) '.'); output_char oc '\n'
- done;
- close_out oc
-
-(* The test *)
-
-let _ =
- let src = Sys.argv.(1) in
- let testio = Filename.temp_file "testio" "" in
- let lines = Filename.temp_file "lines" "" in
- test "16-byte chunks" (copy_file 16) src testio;
- test "256-byte chunks" (copy_file 256) src testio;
- test "4096-byte chunks" (copy_file 4096) src testio;
- test "65536-byte chunks" (copy_file 65536) src testio;
- test "19-byte chunks" (copy_file 19) src testio;
- test "263-byte chunks" (copy_file 263) src testio;
- test "4011-byte chunks" (copy_file 4011) src testio;
- test "0...8192 byte chunks" (copy_random 8192) src testio;
- test "line per line, short lines" copy_line "/etc/hosts" testio;
- make_lines lines;
- test "line per line, short and long lines" copy_line lines testio;
- test "backwards, 4096-byte chunks" (copy_seek 4096) src testio;
- test "backwards, 64-byte chunks" (copy_seek 64) src testio;
- Sys.remove lines;
- Sys.remove testio;
- exit 0