[runtime] Accomplish BITCODE build symbol sharing with only make (#3329)
[mono-project.git] / mono / tests / mono-path.cs
blob8f60e118eb95edcc1559da95ebe05125a61e193e
1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Diagnostics;
5 using System.Runtime.InteropServices;
7 public class Program
9 static bool failure;
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) {
18 failure = true;
19 Console.WriteLine ("ERROR: Expected canonicalization of '{0}' to be '{1}', but it was '{2}'.", input, expected, actual);
20 } else {
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));
29 if (!isWindows) {
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()
44 CanonicalizeTest ();
45 return failure ? 1 : 0;