Switch to compiler-tester
[mono.git] / mcs / class / System.XML / Test / System.Xml / W3C / xmlconf.cs
index a82e742e27f57fc6d447c246b300a884aa081538..988406c49df24e30d9fb7708479f6b3808071120 100644 (file)
@@ -6,7 +6,7 @@ using System.ComponentModel;
 using System.Reflection;\r
 \r
 namespace XmlConfTest {\r
-       class XmlConfTest {\r
+       class XmlConfTest: IDisposable {
                \r
                #region Command Line Options Handling\r
 \r
@@ -93,10 +93,29 @@ namespace XmlConfTest {
                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
@@ -110,10 +129,12 @@ namespace XmlConfTest {
 \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
@@ -135,9 +156,10 @@ namespace XmlConfTest {
                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
@@ -174,8 +196,7 @@ namespace XmlConfTest {
                                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
@@ -263,22 +284,25 @@ introduced new bugs! Before you commit, consider one of the following:
                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
@@ -286,23 +310,26 @@ introduced new bugs! Before you commit, consider one of the following:
 \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