1MODULE LibOsPath; 2 3IMPORT OS:Path; 4 5PROCEDURE Test*; 6 VAR 7 s, root, ext: STRING; 8 BEGIN 9 (* dirname 10 --------------------------------------------------------------------- *) 11 s := Path.DirName(""); 12 ASSERT (s.Equals("")); 13 14 s := Path.DirName("/"); 15 ASSERT (s.Equals("/")); 16 17 s := Path.DirName("//"); 18 ASSERT (s.Equals("//")); 19 20 s := Path.DirName("abc"); 21 ASSERT (s.Equals("")); 22 23 s := Path.DirName("/abc"); 24 ASSERT (s.Equals("/")); 25 26 s := Path.DirName("~"); 27 ASSERT (s.Equals("")); 28 29 s := Path.DirName("~/"); 30 ASSERT (s.Equals("~")); 31 32 s := Path.DirName("~foo/"); 33 ASSERT (s.Equals("~foo")); 34 35 s := Path.DirName("abc/"); 36 ASSERT (s.Equals("abc")); 37 38 s := Path.DirName("abc///"); 39 ASSERT (s.Equals("abc")); 40 41 42 (* Path.basename 43 --------------------------------------------------------------------- *) 44 s := Path.BaseName(""); 45 ASSERT (s.Equals("")); 46 47 s := Path.BaseName("/"); 48 ASSERT (s.Equals("")); 49 50 s := Path.BaseName("abc/"); 51 ASSERT (s.Equals("")); 52 53 s := Path.BaseName("abc"); 54 ASSERT (s.Equals("abc")); 55 56 s := Path.BaseName("abc/x"); 57 ASSERT (s.Equals("x")); 58 59 60 (* Path.splitext 61 --------------------------------------------------------------------- *) 62 Path.SplitExt("", root, ext); 63 ASSERT (root.Equals("")); ASSERT (ext.Equals("")); 64 65 Path.SplitExt("/", root, ext); 66 ASSERT (root.Equals("/")); ASSERT (ext.Equals("")); 67 68 Path.SplitExt(".", root, ext); 69 ASSERT (root.Equals("")); ASSERT (ext.Equals(".")); 70 71 Path.SplitExt("/.", root, ext); 72 ASSERT (root.Equals("/")); ASSERT (ext.Equals(".")); 73 74 Path.SplitExt("./", root, ext); 75 ASSERT (root.Equals("./")); ASSERT (ext.Equals("")); 76 77 Path.SplitExt("a.", root, ext); 78 ASSERT (root.Equals("a")); ASSERT (ext.Equals(".")); 79 80 Path.SplitExt("a.b", root, ext); 81 ASSERT (root.Equals("a")); ASSERT (ext.Equals(".b")); 82 83 Path.SplitExt("a.b.c", root, ext); 84 ASSERT (root.Equals("a.b")); ASSERT (ext.Equals(".c")); 85 86 END Test; 87 88END LibOsPath. 89