public void RuntimeEnvironment_RuntimeType() { RuntimeEnvironment runtimeEnv = new RuntimeEnvironment(); #if DNXCORE50 Assert.Equal("CoreCLR", runtimeEnv.RuntimeType); #else var runtime = Type.GetType("Mono.Runtime") == null ? "CLR" : "Mono"; Assert.Equal(runtime, runtimeEnv.RuntimeType); #endif }
public void RuntimeEnvironment_OS() { RuntimeEnvironment runtimeEnv = new RuntimeEnvironment(); var os = NativeMethods.Uname(); if (os == null) { os = "Windows"; Assert.NotNull(runtimeEnv.OperatingSystemVersion); } else { Assert.Null(runtimeEnv.OperatingSystemVersion); } Assert.Equal(os, runtimeEnv.OperatingSystem); }
public static Task<int> ExecuteAsync(string[] args) { var app = new CommandLineApplication(throwOnUnexpectedArg: false); app.Name = Constants.BootstrapperExeName; app.FullName = Constants.BootstrapperFullName; // These options were handled in the native code, but got passed through here. // We just need to capture them and clean them up. var optionAppbase = app.Option("--appbase <PATH>", "Application base directory path", CommandOptionType.SingleValue); var optionLib = app.Option("--lib <LIB_PATHS>", "Paths used for library look-up", CommandOptionType.MultipleValue); var optionDebug = app.Option("--debug", "Waits for the debugger to attach before beginning execution.", CommandOptionType.NoValue); var env = new RuntimeEnvironment(); app.HelpOption("-?|-h|--help"); app.VersionOption("--version", () => env.GetShortVersion(), () => env.GetFullVersion()); // Options below are only for help info display // They will be forwarded to Microsoft.Framework.ApplicationHost var optionsToForward = new[] { app.Option("--watch", "Watch file changes", CommandOptionType.NoValue), app.Option("--packages <PACKAGE_DIR>", "Directory containing packages", CommandOptionType.SingleValue), app.Option("--configuration <CONFIGURATION>", "The configuration to run under", CommandOptionType.SingleValue), app.Option("--port <PORT>", "The port to the compilation server", CommandOptionType.SingleValue) }; app.Execute(args); // Help information was already shown because help option was specified if (app.IsShowingInformation) { return Task.FromResult(0); } // Show help information if no subcommand/option was specified if (!app.IsShowingInformation && app.RemainingArguments.Count == 0) { app.ShowHelp(); return Task.FromResult(2); } // Some options should be forwarded to Microsoft.Framework.ApplicationHost var appHostName = "Microsoft.Framework.ApplicationHost"; var appHostIndex = app.RemainingArguments.FindIndex(s => string.Equals(s, appHostName, StringComparison.OrdinalIgnoreCase)); foreach (var option in optionsToForward) { if (option.HasValue()) { if (appHostIndex < 0) { Console.WriteLine("The option '--{0}' can only be used with {1}", option.LongName, appHostName); return Task.FromResult(1); } if (option.OptionType == CommandOptionType.NoValue) { app.RemainingArguments.Insert(appHostIndex + 1, "--" + option.LongName); } else if (option.OptionType == CommandOptionType.SingleValue) { app.RemainingArguments.Insert(appHostIndex + 1, "--" + option.LongName); app.RemainingArguments.Insert(appHostIndex + 2, option.Value()); } else if (option.OptionType == CommandOptionType.MultipleValue) { foreach (var value in option.Values) { app.RemainingArguments.Insert(appHostIndex + 1, "--" + option.LongName); app.RemainingArguments.Insert(appHostIndex + 2, value); } } } } // Resolve the lib paths IEnumerable<string> searchPaths = ResolveSearchPaths(optionLib.Values, app.RemainingArguments); var bootstrapper = new Bootstrapper(searchPaths); return bootstrapper.RunAsync(app.RemainingArguments, env); }
public void RuntimeEnvironment_RuntimeVersion() { RuntimeEnvironment runtimeEnv = new RuntimeEnvironment(); Assert.NotNull(runtimeEnv.RuntimeVersion); }
public void RuntimeEnvironment_RuntimeArchitecture() { RuntimeEnvironment runtimeEnv = new RuntimeEnvironment(); var runtimeArchitecture = IntPtr.Size == 8 ? "x64" : "x86"; Assert.Equal(runtimeArchitecture, runtimeEnv.RuntimeArchitecture); }