File: suffix.ml

package info (click to toggle)
js-of-ocaml 5.9.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 32,020 kB
  • sloc: ml: 91,250; javascript: 57,289; ansic: 315; makefile: 271; lisp: 23; sh: 6; perl: 4
file content (27 lines) | stat: -rw-r--r-- 845 bytes parent folder | download | duplicates (5)
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")