diff --git a/src/libraries/Common/tests/System/Xml/XmlCoreTest/FilePathUtil.cs b/src/libraries/Common/tests/System/Xml/XmlCoreTest/FilePathUtil.cs index b5a64db4aab04c..6f5e326ae01a5a 100644 --- a/src/libraries/Common/tests/System/Xml/XmlCoreTest/FilePathUtil.cs +++ b/src/libraries/Common/tests/System/Xml/XmlCoreTest/FilePathUtil.cs @@ -120,13 +120,15 @@ static void initXmlFileCacheIfNotYet() { if (s_XmlFileInMemoryCache == null) { - s_XmlFileInMemoryCache = new MyDict(); + MyDict cache = new MyDict(); foreach (Tuple file in GetDataFiles()) { var ms = new MemoryStream(file.Item2); - s_XmlFileInMemoryCache[NormalizeFilePath(file.Item1)] = ms; + cache[NormalizeFilePath(file.Item1)] = ms; } + + s_XmlFileInMemoryCache = cache; } } } diff --git a/src/libraries/System.Private.Xml.Linq/tests/XDocument.Common/BridgeHelpers.cs b/src/libraries/System.Private.Xml.Linq/tests/XDocument.Common/BridgeHelpers.cs index d8fd205bd2a22d..7e24986509a9a0 100644 --- a/src/libraries/System.Private.Xml.Linq/tests/XDocument.Common/BridgeHelpers.cs +++ b/src/libraries/System.Private.Xml.Linq/tests/XDocument.Common/BridgeHelpers.cs @@ -539,42 +539,42 @@ public static void DeleteTestFile(string strFileName) public static void CreateByteTestFile(string strFileName) { - FilePathUtil.addStream(strFileName, new MemoryStream()); - TextWriter tw = new StreamWriter(FilePathUtil.getStream(strFileName)); + var ms = new MemoryStream(); + using var tw = new StreamWriter(ms, leaveOpen: true); tw.WriteLine("x"); - tw.Flush(); - tw.Dispose(); + + FilePathUtil.addStream(strFileName, ms); } public static void CreateUTF8EncodedTestFile(string strFileName, Encoding encode) { - FilePathUtil.addStream(strFileName, new MemoryStream()); - TextWriter tw = new StreamWriter(FilePathUtil.getStream(strFileName), encode); + var ms = new MemoryStream(); + using var tw = new StreamWriter(ms, encoding: encode, leaveOpen: true); tw.WriteLine(""); tw.Write("\uFFFD"); tw.WriteLine(""); - tw.Flush(); - tw.Dispose(); + FilePathUtil.addStream(strFileName, ms); } public static void CreateEncodedTestFile(string strFileName, Encoding encode) { - FilePathUtil.addStream(strFileName, new MemoryStream()); - TextWriter tw = new StreamWriter(FilePathUtil.getStream(strFileName), encode); + var ms = new MemoryStream(); + + using var tw = new StreamWriter(ms, encoding: encode, leaveOpen: true); tw.WriteLine(""); tw.WriteLine(""); - tw.Flush(); - tw.Dispose(); + FilePathUtil.addStream(strFileName, ms); } public static void CreateWhitespaceHandlingTestFile(string strFileName) { - FilePathUtil.addStream(strFileName, new MemoryStream()); - TextWriter tw = new StreamWriter(FilePathUtil.getStream(strFileName)); + var ms = new MemoryStream(); + + using var tw = new StreamWriter(ms, leaveOpen: true); tw.WriteLine(""); @@ -586,8 +586,8 @@ public static void CreateWhitespaceHandlingTestFile(string strFileName) tw.WriteLine(" "); tw.WriteLine("\t\t"); tw.WriteLine(""); - tw.Flush(); - tw.Dispose(); + + FilePathUtil.addStream(strFileName, ms); } public static void CreateGenericXsltTestFile(string strFileName) @@ -598,8 +598,9 @@ public static void CreateGenericXsltTestFile(string strFileName) public static void CreateGenericTestFile(string strFileName) { - FilePathUtil.addStream(strFileName, new MemoryStream()); - TextWriter tw = new StreamWriter(FilePathUtil.getStream(strFileName)); + var ms = new MemoryStream(); + + using var tw = new StreamWriter(ms, leaveOpen: true); tw.WriteLine(""); tw.WriteLine(""); @@ -791,11 +792,12 @@ public static void CreateGenericTestFile(string strFileName) tw.WriteLine(""); tw.Write(""); - tw.Flush(); + + FilePathUtil.addStream(strFileName, ms); //Create external DTD file - FilePathUtil.addStream("AllNodeTypes.dtd", new MemoryStream()); - TextWriter twDTD = new StreamWriter(FilePathUtil.getStream("AllNodeTypes.dtd")); + var msDTD = new MemoryStream(); + using var twDTD = new StreamWriter(msDTD, leaveOpen: true); twDTD.WriteLine(""); twDTD.WriteLine(""); twDTD.WriteLine(""); @@ -805,68 +807,75 @@ public static void CreateGenericTestFile(string strFileName) twDTD.WriteLine("att2 CDATA #IMPLIED"); twDTD.WriteLine("att3 CDATA #IMPLIED>"); twDTD.WriteLine(""); - twDTD.Flush(); + + FilePathUtil.addStream("AllNodeTypes.dtd", msDTD); // Create Ent file - FilePathUtil.addStream("AllNodeTypes.ent", new MemoryStream()); - TextWriter twENT = new StreamWriter(FilePathUtil.getStream("AllNodeTypes.ent")); + var msENT = new MemoryStream(); + using var twENT = new StreamWriter(msENT, leaveOpen: true); twENT.WriteLine(""); twENT.WriteLine(""); twENT.WriteLine(""); - twENT.Flush(); + + FilePathUtil.addStream("AllNodeTypes.ent", msENT); } public static void CreateInvalidDTDTestFile(string strFileName) { - TextWriter tw = new StreamWriter(FilePathUtil.getStream(strFileName)); + var ms = new MemoryStream(); + using var tw = new StreamWriter(ms, leaveOpen: true); tw.WriteLine("]>"); tw.WriteLine(""); - tw.Flush(); - tw.Dispose(); + + FilePathUtil.addStream(strFileName, ms); } public static void CreateValidDTDTestFile(string strFileName) { - TextWriter tw = new StreamWriter(FilePathUtil.getStream(strFileName)); + var ms = new MemoryStream(); + using var tw = new StreamWriter(ms, leaveOpen: true); tw.WriteLine("]>"); tw.Write(""); - tw.Flush(); - tw.Dispose(); + + FilePathUtil.addStream(strFileName, ms); } public static void CreateWellFormedDTDTestFile(string strFileName) { - TextWriter tw = new StreamWriter(FilePathUtil.getStream(strFileName)); + var ms = new MemoryStream(); + using var tw = new StreamWriter(ms, leaveOpen: true); tw.Write(" that \">"); tw.Write("]>"); tw.Write("&bar;"); - tw.Flush(); - tw.Dispose(); + + FilePathUtil.addStream(strFileName, ms); } public static void CreateNonWellFormedDTDTestFile(string strFileName) { - TextWriter tw = new StreamWriter(FilePathUtil.getStream(strFileName)); + var ms = new MemoryStream(); + using var tw = new StreamWriter(ms, leaveOpen: true); tw.Write(" that \">"); tw.Write("]>"); tw.Write("&bar;"); - tw.Flush(); - tw.Dispose(); + + FilePathUtil.addStream(strFileName, ms); } public static void CreateInvWellFormedDTDTestFile(string strFileName) { - TextWriter tw = new StreamWriter(FilePathUtil.getStream(strFileName)); + var ms = new MemoryStream(); + using var tw = new StreamWriter(ms, leaveOpen: true); tw.Write(" this that \">"); tw.Write("]>"); tw.Write("&bar;"); - tw.Flush(); - tw.Dispose(); + + FilePathUtil.addStream(strFileName, ms); } public static void CreateInvalidXMLXDRTestFile(string strFileName) @@ -874,12 +883,13 @@ public static void CreateInvalidXMLXDRTestFile(string strFileName) // Create XDR before CreateXDRTestFile(pValidXDR); - TextWriter tw = new StreamWriter(FilePathUtil.getStream(strFileName)); + var ms = new MemoryStream(); + using var tw = new StreamWriter(ms, leaveOpen: true); tw.WriteLine(""); tw.WriteLine("Element 1"); - tw.Flush(); - tw.Dispose(); + + FilePathUtil.addStream(strFileName, ms); } public static void CreateXDRXMLTestFile(string strFileName) @@ -887,36 +897,40 @@ public static void CreateXDRXMLTestFile(string strFileName) // Create XDR before CreateXDRTestFile(pValidXDR); - TextWriter tw = new StreamWriter(FilePathUtil.getStream(strFileName)); + var ms = new MemoryStream(); + using var tw = new StreamWriter(ms, leaveOpen: true); tw.WriteLine(" "); - tw.Flush(); - tw.Dispose(); + + FilePathUtil.addStream(strFileName, ms); } public static void CreateXDRTestFile(string strFileName) { - TextWriter tw = new StreamWriter(FilePathUtil.getStream(strFileName)); + var ms = new MemoryStream(); + using var tw = new StreamWriter(ms, leaveOpen: true); tw.WriteLine(""); tw.WriteLine(""); tw.WriteLine(""); - tw.Flush(); - tw.Dispose(); + + FilePathUtil.addStream(strFileName, ms); } public static void CreateInvalidNamespaceTestFile(string strFileName) { - TextWriter tw = new StreamWriter(FilePathUtil.getStream(strFileName)); + var ms = new MemoryStream(); + using var tw = new StreamWriter(ms, leaveOpen: true); tw.WriteLine("Namespace=1"); - tw.Flush(); - tw.Dispose(); + + FilePathUtil.addStream(strFileName, ms); } public static void CreateNamespaceTestFile(string strFileName) { - TextWriter tw = new StreamWriter(FilePathUtil.getStream(strFileName)); + var ms = new MemoryStream(); + using var tw = new StreamWriter(ms, leaveOpen: true); tw.WriteLine(""); tw.WriteLine("Namespace=1"); @@ -930,13 +944,14 @@ public static void CreateNamespaceTestFile(string strFileName) tw.WriteLine("Namespace=14"); tw.WriteLine("Namespace=\"\""); tw.WriteLine(""); - tw.Flush(); - tw.Dispose(); + + FilePathUtil.addStream(strFileName, ms); } public static void CreateXmlLangTestFile(string strFileName) { - TextWriter tw = new StreamWriter(FilePathUtil.getStream(strFileName)); + var ms = new MemoryStream(); + using var tw = new StreamWriter(ms, leaveOpen: true); tw.WriteLine(""); tw.WriteLine("DROMIO OF EPHESUS"); @@ -948,13 +963,14 @@ public static void CreateXmlLangTestFile(string strFileName) tw.WriteLine("What color is it?<!-- this is a comment-->Testing languageWhat color is it?haha hihihi"); tw.WriteLine(""); tw.WriteLine(""); - tw.Flush(); - tw.Dispose(); + + FilePathUtil.addStream(strFileName, ms); } public static void CreateXmlSpaceTestFile(string strFileName) { - TextWriter tw = new StreamWriter(FilePathUtil.getStream(strFileName)); + var ms = new MemoryStream(); + using var tw = new StreamWriter(ms, leaveOpen: true); tw.WriteLine(""); tw.WriteLine("DROMIO OF EPHESUS"); @@ -966,18 +982,19 @@ public static void CreateXmlSpaceTestFile(string strFileName) tw.WriteLine("< < > < > test >"); tw.WriteLine("twin brothers, and attendants on the two Antipholuses."); tw.WriteLine(""); - tw.Flush(); - tw.Dispose(); + + FilePathUtil.addStream(strFileName, ms); } public static void CreateJunkTestFile(string strFileName) { - TextWriter tw = new StreamWriter(FilePathUtil.getStream(strFileName)); + var ms = new MemoryStream(); + using var tw = new StreamWriter(ms, leaveOpen: true); string str = new string('Z', (1 << 20) - 1); tw.Write(str); - tw.Flush(); - tw.Dispose(); + + FilePathUtil.addStream(strFileName, ms); } public static void CreateBase64TestFile(string strFileName) @@ -1005,9 +1022,8 @@ public static void CreateBase64TestFile(string strFileName) WriteToBuffer(ref WTextOnly, ref WTextOnlylen, System.BitConverter.GetBytes(strBase64[i])); } - FilePathUtil.addStream(strFileName, new MemoryStream()); - - XmlWriter w = XmlWriter.Create(FilePathUtil.getStream(strFileName)); + var ms = new MemoryStream(); + using var w = XmlWriter.Create(ms); w.WriteStartDocument(); w.WriteDocType("Root", null, null, ""); w.WriteStartElement("Root"); @@ -1043,7 +1059,8 @@ public static void CreateBase64TestFile(string strFileName) w.WriteRaw("D2BAaabcAQID"); w.WriteEndElement(); w.WriteEndElement(); - w.Flush(); + + FilePathUtil.addStream(strFileName, ms); } public static void CreateBinHexTestFile(string strFileName) @@ -1070,9 +1087,10 @@ public static void CreateBinHexTestFile(string strFileName) { WriteToBuffer(ref WTextOnly, ref WTextOnlylen, System.BitConverter.GetBytes(strBinHex[i])); } - FilePathUtil.addStream(strFileName, new MemoryStream()); - XmlWriter w = XmlWriter.Create(FilePathUtil.getStream(strFileName)); + var ms = new MemoryStream(); + + using var w = XmlWriter.Create(ms); w.WriteStartElement("Root"); w.WriteStartElement("ElemAll"); w.WriteBinHex(Wbinhex, 0, (int)Wbinhexlen); @@ -1104,13 +1122,14 @@ public static void CreateBinHexTestFile(string strFileName) w.WriteElementString("ElemErr", "a&A2A3"); w.WriteEndElement(); - w.Flush(); - w.Dispose(); + + FilePathUtil.addStream(strFileName, ms); } public static void CreateBigElementTestFile(string strFileName) { - TextWriter tw = new StreamWriter(FilePathUtil.getStream(strFileName)); + var ms = new MemoryStream(); + using var tw = new StreamWriter(ms, leaveOpen: true); string str = new string('Z', (1 << 20) - 1); tw.WriteLine(""); @@ -1124,36 +1143,38 @@ public static void CreateBigElementTestFile(string strFileName) tw.WriteLine("Y />"); tw.WriteLine(""); - tw.Flush(); - tw.Dispose(); + FilePathUtil.addStream(strFileName, ms); } public static void CreateXSLTStyleSheetWCopyTestFile(string strFileName) { - TextWriter tw = new StreamWriter(FilePathUtil.getStream(strFileName)); + var ms = new MemoryStream(); + using var tw = new StreamWriter(ms, leaveOpen: true); tw.WriteLine(""); tw.WriteLine(""); tw.WriteLine(""); tw.WriteLine(""); tw.WriteLine(""); - tw.Flush(); - tw.Dispose(); + + FilePathUtil.addStream(strFileName, ms); } public static void CreateConstructorTestFile(string strFileName) { - TextWriter tw = new StreamWriter(FilePathUtil.getStream(strFileName)); + var ms = new MemoryStream(); + using var tw = new StreamWriter(ms, leaveOpen: true); tw.WriteLine(""); tw.WriteLine(""); tw.WriteLine(""); tw.Write(""); - tw.Flush(); - tw.Dispose(); + + FilePathUtil.addStream(strFileName, ms); } public static void CreateLineNumberTestFile(string strFileName) { - TextWriter tw = new StreamWriter(FilePathUtil.getStream(strFileName)); + var ms = new MemoryStream(); + using var tw = new StreamWriter(ms, leaveOpen: true); tw.WriteLine(""); tw.WriteLine(" "); tw.WriteLine(" "); tw.Write(""); - tw.Flush(); - tw.Dispose(); + + FilePathUtil.addStream(strFileName, ms); // Create Ent file - FilePathUtil.addStream("LineNumber.ent", new MemoryStream()); - TextWriter twENT = new StreamWriter(FilePathUtil.getStream("LineNumber.ent")); + var msENT = new MemoryStream(); + using var twENT = new StreamWriter(msENT, leaveOpen: true); twENT.WriteLine(""); twENT.WriteLine(""); twENT.WriteLine(""); - twENT.Flush(); - twENT.Dispose(); + + FilePathUtil.addStream("LineNumber.ent", msENT); } public static void CreateLbNormalizationTestFile(string strFileName) { - TextWriter tw = new StreamWriter(FilePathUtil.getStream(strFileName)); + var ms = new MemoryStream(); + using var tw = new StreamWriter(ms, leaveOpen: true); tw.WriteLine(""); tw.WriteLine(""); tw.WriteLine("&ge1;&ext1;"); - tw.Flush(); - tw.Dispose(); + + FilePathUtil.addStream(strFileName, ms); // Create Ent file - FilePathUtil.addStream(pLbNormEnt1, new MemoryStream()); - TextWriter twENT = new StreamWriter(FilePathUtil.getStream(pLbNormEnt1)); - twENT.WriteLine(""); - twENT.WriteLine(""); - twENT.WriteLine(""); - twENT.WriteLine(); - twENT.Flush(); - twENT.Dispose(); + var msPLbNormEnt1 = new MemoryStream(); + + { + using var twENT = new StreamWriter(msPLbNormEnt1, leaveOpen: true); + twENT.WriteLine(""); + twENT.WriteLine(""); + twENT.WriteLine(""); + twENT.WriteLine(); + } + + FilePathUtil.addStream(pLbNormEnt1, msPLbNormEnt1); // Create Ent file - FilePathUtil.addStream(pLbNormEnt2, new MemoryStream()); - twENT = new StreamWriter(FilePathUtil.getStream(pLbNormEnt2)); - twENT.WriteLine(""); - twENT.WriteLine("\">"); - twENT.WriteLine(""); - twENT.WriteLine(); - twENT.Flush(); - twENT.Dispose(); + + var msPLbNormEnt2 = new MemoryStream(); + + { + using var twENT = new StreamWriter(msPLbNormEnt2, leaveOpen: true); + twENT.WriteLine(""); + twENT.WriteLine("\">"); + twENT.WriteLine(""); + twENT.WriteLine(); + } + + FilePathUtil.addStream(pLbNormEnt2, msPLbNormEnt2); } public bool FindNodeType(XmlReader r, XmlNodeType _nodetype) diff --git a/src/libraries/System.Private.Xml.Linq/tests/xNodeReader/ReadBase64.cs b/src/libraries/System.Private.Xml.Linq/tests/xNodeReader/ReadBase64.cs index 1bc4bee9b2e2a9..29803dff598581 100644 --- a/src/libraries/System.Private.Xml.Linq/tests/xNodeReader/ReadBase64.cs +++ b/src/libraries/System.Private.Xml.Linq/tests/xNodeReader/ReadBase64.cs @@ -482,12 +482,15 @@ public void RunBase64DoesnNotRunIntoOverflow() string base64str = Convert.ToBase64String(bits); string fileName = "bug105376_" + Variation.Params[0].ToString() + ".xml"; - FilePathUtil.addStream(fileName, new MemoryStream()); - StreamWriter sw = new StreamWriter(FilePathUtil.getStream(fileName)); - sw.Write(""); - sw.Write(base64str); - sw.Write(""); - sw.Flush(); + var ms = new MemoryStream(); + { + using var sw = new StreamWriter(ms, leaveOpen: true); + sw.Write(""); + sw.Write(base64str); + sw.Write(""); + } + + FilePathUtil.addStream(fileName, ms); XmlReader DataReader = GetReader(fileName); @@ -943,14 +946,17 @@ public void ReadBase64DoesNotRunIntoOverflow2() string base64str = Convert.ToBase64String(bits); string fileName = "bug105376_" + Variation.Params[0].ToString() + ".xml"; - FilePathUtil.addStream(fileName, new MemoryStream()); - StreamWriter sw = new StreamWriter(FilePathUtil.getStream(fileName)); - sw.Write(""); - sw.Write(base64str); - sw.Write(""); - sw.Flush(); + var ms = new MemoryStream(); + { + using var sw = new StreamWriter(ms, leaveOpen: true); + sw.Write(""); + sw.Write(base64str); + sw.Write(""); + } - XmlReader DataReader = GetReader(fileName); + FilePathUtil.addStream(fileName, ms); + + using XmlReader DataReader = GetReader(fileName); int SIZE = (totalfilesize - 30); int SIZE64 = SIZE * 3 / 4; @@ -974,8 +980,6 @@ public void ReadBase64DoesNotRunIntoOverflow2() readSize = 0; currentSize = DataReader.ReadElementContentAsBase64(base64, startPos, readSize); TestLog.Compare(currentSize, 0, "Read other than Zero Bytes"); - - DataReader.Dispose(); } //[Variation("SubtreeReader inserted attributes don't work with ReadContentAsBase64")]