예제 #1
0
        private void toolStripButton1_Click(object sender, EventArgs e)
        {
            FolderBrowserDialog dialog = new FolderBrowserDialog();

            DialogResult result = dialog.ShowDialog();


            if (result == DialogResult.OK)
            {
                var modFiles = Directory.EnumerateFiles(dialog.SelectedPath, "*.*", SearchOption.AllDirectories);
                listBox1.Items.Clear();

                foreach (String name in modFiles)
                {
                    if (SharpMikCommon.MatchesExtentions(name))
                    {
                        m_FileList.Add(name);
                        String shortName = Path.GetFileNameWithoutExtension(name);
                        listBox1.Items.Add(shortName + " (" + name + ")");
                    }
                }

                place = 0;

                if (!Play())
                {
                    Next();
                }
            }
        }
예제 #2
0
        void TestThread()
        {
            DateTime totalStart = DateTime.Now;

            s_StopThread = false;
            //List<String> modFiles = new List<string>();
            List <TestResult> testResults = new List <TestResult>();

            //modFiles.Clear();

            var files = Directory.EnumerateFiles(m_Options.TestModFolder, "*.*", SearchOption.AllDirectories);

            List <String> modFiles = new List <String>();

            foreach (String name in files)
            {
                if (SharpMikCommon.MatchesExtentions(name))
                {
                    modFiles.Add(name);
                }
            }


            int count = 0;


            MethodInvoker action = delegate
            {
                progressBar2.Maximum = modFiles.Count();
                progressBar2.Value   = 0;
            };

            progressBar2.BeginInvoke(action);



            float total  = 0.0f;
            int   passed = 0;
            int   failed = 0;


            action = delegate
            {
                label7.Text = String.Format("Testing {0} of {1} mods in {5} seconds, Passed: {2}, Failed: {3}, Passing percentage {4}", count, modFiles.Count(), passed, failed, 0.0, (DateTime.Now - totalStart).TotalSeconds);
            };
            label7.BeginInvoke(action);

            foreach (String fileName in modFiles)
            {
                TestResult result = new TestResult();

                DateTime start = DateTime.Now;
                if (DoStreamTest(fileName, ref result))
                {
                    result = TestWavAndStream(fileName);
                }
                TimeSpan span = DateTime.Now - start;

                result.CTime         = m_CTestTime;
                result.CSharpTime    = m_CSTestTime;
                result.TotalTestTime = (float)span.TotalSeconds;
                testResults.Add(result);


                if (!result.Passed && checkBox1.Checked)
                {
                    String failedFolder = Path.Combine(m_Options.TestDirectory, "Failed");
                    String justFileName = Path.GetFileName(fileName);
                    String failName     = Path.Combine(failedFolder, justFileName);

                    if (!File.Exists(failName))
                    {
                        if (!Directory.Exists(failedFolder))
                        {
                            Directory.CreateDirectory(Path.Combine(m_Options.TestDirectory, "Failed"));
                        }

                        File.Copy(fileName, failName);
                    }
                }

                // Write out the results after each test, this will help if the app crashes.
                UnitTestHelpers.WriteXML <List <TestResult> >(Path.Combine(m_Options.TestDirectory, "test.xml"), testResults);

                total += result.MatchPercentage;
                count++;

                Object[] data = new Object[7];
                data[0] = Path.GetFileName(fileName);
                data[1] = result.MatchPercentage;
                data[3] = m_CTestTime;
                data[4] = m_CSTestTime;
                data[5] = m_TestTime;
                data[6] = span.TotalSeconds;

                if (result.Passed)
                {
                    data[2] = global::MikModUnitTest.Properties.Resources.Pass;
                    passed++;
                }
                else
                {
                    data[2] = global::MikModUnitTest.Properties.Resources.Fail;
                    failed++;
                }

                if (this.IsHandleCreated)
                {
                    action = delegate
                    {
                        progressBar2.Value = count;
                    };
                    progressBar2.BeginInvoke(action);

                    action = delegate
                    {
                        dataGridView1.Rows.Add(data);
                    };
                    dataGridView1.BeginInvoke(action);

                    action = delegate
                    {
                        label7.Text = String.Format("Testing {0} of {1} mods in {5} seconds, Passed: {2}, Failed: {3}, Passing percentage {4}", count, modFiles.Count(), passed, failed, total / count, (DateTime.Now - totalStart).TotalSeconds);
                        //label7.Text = String.Format("Testing {0} of {1} mods, Passed: {2}, Failed: {3}, Passing percentage {4}", count, modFiles.Count(), passed, failed, total / count);
                    };
                    label7.BeginInvoke(action);
                }

                if (s_StopThread)
                {
                    break;
                }
            }

            s_StopThread = false;
            ResetButtons();
        }