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(); } } }
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(); }