1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
(* TEST
*)
let () =
let test ~suffix name exp =
let r1 = Filename.chop_suffix_opt ~suffix name <> None in
let r2 = Filename.check_suffix name suffix in
assert (r1 = r2);
assert (r1 = exp)
in
let full_test ~suffix name =
test ~suffix name true;
match Filename.chop_suffix_opt ~suffix name with
| None -> assert false
| Some base -> assert (base ^ suffix = name)
in
let win32 = Sys.os_type = "Win32" || Sys.os_type = "Cygwin" in
full_test ~suffix:".txt" "foo.txt";
full_test ~suffix:"txt" "foo.txt";
full_test ~suffix:"" "foo.txt";
full_test ~suffix:"" "";
test ~suffix:".txt" "f" false;
test ~suffix:".txt" "" false;
test ~suffix:".txt" "foo.txt.bak" false;
test ~suffix:".txt" "foo.TXT" win32;
if win32 then
assert (Filename.chop_suffix_opt ~suffix:".txt" "foo.TXT" = Some "foo")
|