void btnAddTest_Click(object sender, EventArgs e) { var testCase = new TestCase(tbEngine.Text, tbGame.Text, tbMap.Text, cbConfigs.SelectedItem as Config, cmbScripts.SelectedItem as StartScript) { UseMultithreaded = cbMultiThread.Checked }; int arg; int.TryParse(tbBenchmarkArg.Text, out arg); testCase.BenchmarkArg = arg; var ret = testCase.Validate(springDownloader); if (ret != null) { MessageBox.Show(ret); } else { lbTestCases.Items.Add(testCase); } }
string GetBisectValue(int engineIndex, int modIndex) { var springRun = new SpringRun(); testCaseBase.Engine = engineList[engineIndex]; testCaseBase.Game = modList[modIndex]; var ret = testCaseBase.Validate(downloader, true); if (ret != null) { InvokeIfNeeded(() => { tbBisectLog.AppendText(string.Format("Skipping test {0} - {1}\n", testCaseBase, ret)); }); Trace.TraceError("Skipping test {0} - {1}", testCaseBase, ret); return(null); } Trace.TraceInformation("Testing: {0}", testCaseBase); string retVal = null; springRun.LineAdded += s => { if (s != null) { var match = Regex.Match(s, string.Format("!transmitlobby {0}[ ]*:(.*)", variableName), RegexOptions.IgnoreCase); if (match.Success) { retVal = match.Groups[1].Value; springRun.Abort(); } } }; springRun.Start(springPaths, testCaseBase, benchmark); InvokeIfNeeded(() => { tbBisectLog.AppendText(string.Format("Test:{0} value:{1}\n", testCaseBase, retVal)); }); return(retVal); }
void btnAddTest_Click(object sender, EventArgs e) { var testCase = new TestCase(tbEngine.Text, tbGame.Text, tbMap.Text, cbConfigs.SelectedItem as Config, cmbScripts.SelectedItem as StartScript); int arg; int.TryParse(tbBenchmarkArg.Text, out arg); testCase.BenchmarkArg = arg; var ret = testCase.Validate(springDownloader); if (ret != null) MessageBox.Show(ret); else lbTestCases.Items.Add(testCase); }
void btnAddTest_Click(object sender, EventArgs e) { benchmark = cbBenchmark.SelectedItem as Benchmark; if (benchmark == null) { MessageBox.Show("Please select a valid test"); return; } variableName = tbBisectVariable.Text; if (string.IsNullOrEmpty(variableName)) { MessageBox.Show("Please select variable to bisect - test should send it using !transmitlobby variable:value"); return; } testCaseBase = new TestCase(tbEngine.Text, tbGame.Text, tbMap.Text, cbConfigs.SelectedItem as Config, cmbScripts.SelectedItem as StartScript); var ret = testCaseBase.Validate(downloader); if (ret != null) { MessageBox.Show(ret); return; } engineStartIndex = engineList.IndexOf(tbEngine.Text); engineEndIndex = engineList.IndexOf(tbEngineBisectTo.Text); modStartIndex = modList.IndexOf(tbGame.Text); modEndIndex = modList.IndexOf(tbGameBisectTo.Text); if (modStartIndex == -1) { MessageBox.Show("Mod start value is not valid"); return; } if (engineStartIndex == -1) { MessageBox.Show("Engine start value is not valid"); return; } if (engineEndIndex == -1 && modEndIndex == -1) { MessageBox.Show("Please select at least one valid bisect to value (engine or mod)"); return; } if (engineEndIndex == -1) { engineEndIndex = engineStartIndex; } if (modEndIndex == -1) { modEndIndex = modStartIndex; } btnBisect.Enabled = false; tbBisectLog.Clear(); new Thread(() => { var result = RunBisect(); InvokeIfNeeded(() => { MessageBox.Show(result); btnBisect.Enabled = true; }); }).Start(); }