2 using System
.Collections
.Generic
;
4 using System
.Diagnostics
;
5 using System
.Runtime
.InteropServices
;
11 [DllImport ("__Internal")]
12 static extern string mono_path_canonicalize (string input
);
14 static void CanonicalizeAssert (string input
, string expected
)
16 string actual
= mono_path_canonicalize (input
);
17 if (expected
!= actual
) {
19 Console
.WriteLine ("ERROR: Expected canonicalization of '{0}' to be '{1}', but it was '{2}'.", input
, expected
, actual
);
21 Console
.WriteLine ("SUCCESS: Canonicalization of '{0}' => '{1}'", input
, actual
);
25 static void CanonicalizeTest ()
27 bool isWindows
= !(((int)Environment
.OSVersion
.Platform
== 4) || ((int)Environment
.OSVersion
.Platform
== 128));
30 CanonicalizeAssert ("", Environment
.CurrentDirectory
);
31 CanonicalizeAssert ("/", "/");
32 CanonicalizeAssert ("/..", "/");
33 CanonicalizeAssert ("/foo", "/foo");
34 CanonicalizeAssert ("/foo/././", "/foo");
35 CanonicalizeAssert ("/../../foo", "/foo");
36 CanonicalizeAssert ("/foo/", "/foo");
37 CanonicalizeAssert ("/foo/../../../", "/");
38 CanonicalizeAssert ("/foo/../../..", "/");
42 public static int Main()
45 return failure
? 1 : 0;