コード例 #1
0
        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);
            }
        }
コード例 #2
0
        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);
        }
コード例 #3
0
 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);
 }
コード例 #4
0
        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();
        }