public BochsHost(BochsHostSettings launchSettings) { _settings = launchSettings ?? throw new ArgumentNullException(nameof(launchSettings)); _bochsDir = launchSettings.BochsDirectory; if (!Directory.Exists(_bochsDir) && RuntimeHelper.IsWindows) { _bochsDir = BochsSupport.BochsDirectory; } if (!Directory.Exists(_bochsDir)) { throw new InvalidOperationException("Bochs installation directory not found!"); } if (RuntimeHelper.IsWindows) { _bochsExe = Path.Combine(_bochsDir, launchSettings.UseDebugVersion ? "bochsdbg.exe" : "bochs.exe"); } else { _bochsExe = Path.Combine(_bochsDir, launchSettings.UseDebugVersion ? "bochsdbg" : "bochs"); } if (_settings.OverwriteConfigurationFile || !File.Exists(launchSettings.ConfigurationFile)) { GenerateConfiguration(); } }
public void TestHostSettingsDeserialization() { var hostSettings = JObject.Parse(HostSettings1).ToObject <Dictionary <string, string> >(); var bochsHostSettings = new BochsHostSettings(hostSettings); Assert.That(bochsHostSettings.BochsDirectory, Is.EqualTo(@"some\path\to\bochs\")); Assert.That(bochsHostSettings.ConfigurationFile, Is.EqualTo(@"some\path\to\bochs.bxrc")); Assert.That(bochsHostSettings.DisplayLibraryOptions, Is.Not.Null); Assert.That(bochsHostSettings.DisplayLibraryOptions.GuiDebug, Is.True); Assert.That(bochsHostSettings.DisplayLibraryOptions.HideIps, Is.False); }
public Task <IHost> CreateHostAsync(IReadOnlyDictionary <string, string> settings, DebugMode debugMode) { var hostSettings = new BochsHostSettings(settings); return(Task.FromResult <IHost>(new BochsHost(hostSettings))); }