public void testInCoreLimit_SwitchOnCopy()
 {
     TemporaryBuffer b = new TemporaryBuffer();
     byte[] test = new TestRng(getName())
            .nextBytes(TemporaryBuffer.DEFAULT_IN_CORE_LIMIT * 2);
     try
     {
         MemoryStream @in = new MemoryStream(test,
                TemporaryBuffer.DEFAULT_IN_CORE_LIMIT, test.Length
                        - TemporaryBuffer.DEFAULT_IN_CORE_LIMIT);
         b.write(test, 0, TemporaryBuffer.DEFAULT_IN_CORE_LIMIT);
         b.copy(@in);
         b.close();
         Assert.AreEqual(test.Length, b.Length);
         {
             byte[] r = b.ToArray();
             Assert.IsNotNull(r);
             Assert.AreEqual(test.Length, r.Length);
             Assert.IsTrue(test.SequenceEqual(r));
         }
         {
             MemoryStream o = new MemoryStream();
             b.writeTo(o, null);
             o.Close();
             byte[] r = o.ToArray();
             Assert.AreEqual(test.Length, r.Length);
             Assert.IsTrue(test.SequenceEqual(r));
         }
     }
     finally
     {
         b.destroy();
     }
 }
 public void testOneBlockAndHalf_Copy()
 {
     TemporaryBuffer b = new TemporaryBuffer();
     byte[] test = new TestRng(getName())
            .nextBytes(TemporaryBuffer.Block.SZ * 3 / 2);
     try
     {
         var @in = new MemoryStream(test);
         // [caytchen] StreamReader buffers data After the very first Read, thus advancing the Position in the underlying stream - causing this test to fail
         //var inReader = new StreamReader(@in);
         b.write(@in.ReadByte());
         b.copy(@in);
         b.close();
         Assert.AreEqual(test.Length, b.Length);
         {
             byte[] r = b.ToArray();
             Assert.IsNotNull(r);
             Assert.AreEqual(test.Length, r.Length);
             Assert.IsTrue(test.SequenceEqual(r));
         }
         {
             MemoryStream o = new MemoryStream();
             b.writeTo(o, null);
             o.Close();
             byte[] r = o.ToArray();
             Assert.AreEqual(test.Length, r.Length);
             Assert.IsTrue(test.SequenceEqual(r));
         }
     }
     finally
     {
         b.destroy();
     }
 }
Esempio n. 3
0
	    private static byte[] readFully(Stream iStream)
        {
		    TemporaryBuffer b = new TemporaryBuffer();
		    try {
			    b.copy(iStream);
			    b.close();
			    return b.ToArray();
		    } finally {
			    b.destroy();
		    }
	    }