using System.Reflection;\r
\r
namespace XmlConfTest {\r
- class XmlConfTest {\r
+ class XmlConfTest: IDisposable {
\r
#region Command Line Options Handling\r
\r
ArrayList knownFailures = new ArrayList ();\r
ArrayList fixmeList = new ArrayList ();\r
ArrayList netFailures = new ArrayList ();\r
- StreamWriter failedList;\r
- StreamWriter fixedList;\r
- StreamWriter slowNewList;\r
+ StreamWriter failedListWriter;\r
+ StreamWriter fixedListWriter;\r
+ StreamWriter slowNewListWriter;\r
+ StreamWriter totalListWriter;
#endregion\r
+
+ #region IDisposable Members
+ public void Dispose()
+ {
+ if (failedListWriter != null)
+ failedListWriter.Close ();
+ if (fixedListWriter != null)
+ fixedListWriter.Close ();
+ if (slowNewListWriter != null)
+ slowNewListWriter.Close ();
+ if (totalListWriter != null)
+ totalListWriter.Close ();
+ failedListWriter = null;
+ fixedListWriter = null;
+ slowNewListWriter = null;
+ totalListWriter = null;
+ }
+ #endregion
\r
#region command line option fields\r
[CommandLineOption ('s')]\r
\r
static int Main (string[] args)\r
{\r
- if (!new XmlConfTest(args).Run ())\r
- return 1;\r
- else\r
- return 0;\r
+ using (XmlConfTest test = new XmlConfTest (args)) {
+ if (!test.Run ())
+ return 1;
+ else
+ return 0;
+ }
}\r
\r
#region ReadStrings ()\r
XmlConfTest (string [] args)\r
{\r
_args = args;\r
- failedList = new StreamWriter ("failed.lst", false);\r
- fixedList = new StreamWriter ("fixed.lst", false);\r
- slowNewList = new StreamWriter ("slow-new.lst", false);\r
+ failedListWriter = new StreamWriter ("failed.lst", false);
+ fixedListWriter = new StreamWriter ("fixed.lst", false);
+ slowNewListWriter = new StreamWriter ("slow-new.lst", false);
+ totalListWriter = new StreamWriter ("total.lst", false);
ReadStrings (slowTests, "slow.lst");\r
ReadStrings (igroredTests, "ignored.lst");\r
ReadStrings (knownFailures, "knownFailures.lst");\r
if (span.TotalSeconds > 1) {\r
if (slowTests.Contains (testId))\r
continue;\r
- slowNewList.WriteLine (testId);\r
- slowNewList.Flush ();\r
+ slowNewListWriter.WriteLine (testId);\r
}\r
}\r
\r
bool Report (XmlElement test, bool isok, bool nonValidatingPassed, bool validatingPassed)\r
{\r
string testId = test.GetAttribute ("ID");\r
+ totalListWriter.Write (testId + "\t");
\r
if (isok) {\r
++passedCount;\r
if (fixmeList.Contains (testId) || knownFailures.Contains (testId)) {\r
++fixedCount;\r
- fixedList.WriteLine (testId);\r
- fixedList.Flush ();\r
+ fixedListWriter.WriteLine (testId);\r
Console.Error.Write ("!");\r
+ totalListWriter.WriteLine ("fixed");
return true;\r
}\r
if (netFailures.Contains (testId)) {\r
Console.Error.Write (",");\r
+ totalListWriter.WriteLine (",");
return true;\r
}\r
\r
Console.Error.Write (".");\r
+ totalListWriter.WriteLine (".");
return true;\r
}\r
\r
\r
if (netFailures.Contains (testId)) {\r
Console.Error.Write ("K");\r
+ totalListWriter.WriteLine ("dot net known failure");
return true;\r
}\r
if (knownFailures.Contains (testId)) {\r
Console.Error.Write ("k");\r
+ totalListWriter.WriteLine ("known failure");
return true;\r
}\r
if (fixmeList.Contains (testId)) {\r
Console.Error.Write ("f");\r
+ totalListWriter.WriteLine ("fixme");
return true;\r
}\r
\r
++regressionsCount;\r
Console.Error.Write ("E");\r
- failedList.Write ("*** Test failed:\t{0}\ttype:{1}\tnonValidatingPassed:{2},validatingPassed:{3}\t",\r
+ totalListWriter.WriteLine ("regression");
+ failedListWriter.Write ("*** Test failed:\t{0}\ttype:{1}\tnonValidatingPassed:{2},validatingPassed:{3}\t",\r
testId, test.GetAttribute ("TYPE"), nonValidatingPassed, validatingPassed);\r
- failedList.WriteLine (test.InnerXml);\r
- failedList.Flush ();\r
+ failedListWriter.WriteLine (test.InnerXml);\r
return false;\r
}\r
}\r