Beispiel #1
0
        public void CTorTest()
        {
            PtrWriter writer = new PtrWriter(m_buffer, 64);

            Assert.AreEqual(64, writer.Length);
            Assert.AreEqual(0, writer.Offset);
        }
Beispiel #2
0
        public void ClearTest()
        {
            var pw = new PtrWriter(m_buffer, 5, 64);

            pw.Clear();
            Assert.AreEqual(0, pw.Offset);
        }
Beispiel #3
0
        public void SkipBytesTest()
        {
            var pw = new PtrWriter(m_buffer, 10);

            Assert.Catch(typeof(InvalidOperationException), () => { pw.SkipBytes(11); });
            pw.SkipBytes(10);
            Assert.AreEqual(10, pw.Offset);
        }
Beispiel #4
0
        public void TryWrite()
        {
            var bw = new PtrWriter(m_buffer, 64);

            Assert.AreEqual(true, bw.TryWrite(123));

            bw.SkipBytes(60);
            Assert.AreEqual(false, bw.TryWrite(123));
        }
Beispiel #5
0
        public void PtrWrite()
        {
            PtrWriter writer = new PtrWriter(m_ptrBuf, AMOUNT * sizeof(int));

            for (int i = 0; i < AMOUNT; i++)
            {
                writer.Write(i);
            }
        }
Beispiel #6
0
        public void UTF16Test(string value)
        {
            var pw = new PtrWriter(m_buffer, 64);

            pw.WriteUTF16(value, true);

            var pr = new PtrReader(m_buffer, 64);

            Assert.AreEqual(value, pr.ReadUTF16());
            Assert.AreEqual(pr.Offset, pw.Offset);
        }
Beispiel #7
0
        public void CopyToBytesTest(int value)
        {
            byte[] buf = new byte[8];

            BinaryHelper.Write(m_buffer, 4, value);
            var pw = new PtrWriter(m_buffer, 64);

            pw.CopyTo(buf, 0, 8);

            Assert.AreEqual(value, BinaryHelper.Read <int>(buf, 4));
        }
Beispiel #8
0
        public void CopyToPtrTest(int value)
        {
            BinaryHelper.Write(m_buffer, 4, value);

            var pw     = new PtrWriter(m_buffer, 64);
            var newBuf = Marshal.AllocHGlobal(8);

            pw.CopyTo(newBuf, 0, 8);

            Assert.AreEqual(value, BinaryHelper.Read <int>(newBuf, 4));
            Marshal.FreeHGlobal(newBuf);
        }
Beispiel #9
0
        public void ANSITestLen(string value)
        {
            var pw = new PtrWriter(m_buffer, 64);

            pw.WriteANSI(value);

            var pr = new PtrReader(m_buffer, 64);

            Assert.AreEqual(value, pr.ReadANSI(value.Length));
            Assert.AreEqual(pr.Offset, pw.Offset);
            Assert.AreEqual(value.Length, pw.Offset);
        }
Beispiel #10
0
        public void UTF16TestLen(string value)
        {
            var pw = new PtrWriter(m_buffer, 64);

            pw.WriteUTF16(value);

            var pr = new PtrReader(m_buffer, 64);

            Assert.AreEqual(value, pr.ReadUTF16(value.Length));
            Assert.AreEqual(pr.Offset, pw.Offset);
            Assert.AreEqual(value.Length * sizeof(char), pw.Offset);
        }
Beispiel #11
0
        public void CTorFaultTest()
        {
            PtrWriter pw;

            Assert.Catch(typeof(ArgumentNullException), () =>
                         { pw = new PtrWriter(IntPtr.Zero, 64); });
            Assert.Catch(typeof(ArgumentOutOfRangeException), () =>
                         { pw = new PtrWriter(m_buffer, -1, -1); });
            Assert.Catch(typeof(ArgumentOutOfRangeException), () =>
                         { pw = new PtrWriter(m_buffer, 0, -1); });
            Assert.Catch(typeof(ArgumentException), () =>
                         { pw = new PtrWriter(m_buffer, 25, 6); });
        }
Beispiel #12
0
        public void ValueTest(int iVal, float fVal, double dVal)
        {
            var pw = new PtrWriter(m_buffer, 64);

            pw.Write(iVal); pw.Write(fVal); pw.Write(dVal);

            var pr = new PtrReader(m_buffer, 64);

            Assert.AreEqual(iVal, pr.Read <int>());
            Assert.AreEqual(fVal, pr.Read <float>());
            Assert.AreEqual(dVal, pr.Read <double>());

            Assert.AreEqual(16, pw.Offset);
            Assert.AreEqual(pr.Offset, pw.Offset);
        }
Beispiel #13
0
        public void PtrWriterAsPointerTest(double vald, long vall)
        {
            PtrWriter pw        = new PtrWriter(Alloc(16), 16);
            var       asPointer = pw.AsPointer();

            asPointer->Write(vald);
            asPointer->Write(vall);

            Assert.AreEqual(16, asPointer->Offset);
            Assert.AreEqual(16, asPointer->Length);
            Assert.AreEqual(vald, BinaryHelper.Read <double>(pw.Buffer, 0));
            Assert.AreEqual(vall, BinaryHelper.Read <long>(pw.Buffer, 8));

            Free(asPointer->Buffer);
            Free(asPointer);
        }
Beispiel #14
0
        public void BytesTest()
        {
            byte[] val = new byte[4] {
                1, 2, 3, 4
            };
            var pw = new PtrWriter(m_buffer, 64);

            pw.WriteBytes(val);

            var pr        = new PtrReader(m_buffer, 64);
            var returnVal = pr.ReadBytes(4);

            Assert.AreEqual(val, returnVal);
            Assert.AreEqual(4, pr.Offset);
            Assert.AreEqual(pw.Offset, pr.Offset);
        }
Beispiel #15
0
        public void WritePtrPtrWriterTest()
        {
            var   pw  = new PtrWriter(Alloc(32), 32);
            byte *ptr = stackalloc byte[4] {
                1, 2, 3, 4
            };

            pw.WritePtr(ptr, 4);

            Assert.AreEqual(4, pw.Offset);
            for (int i = 0; i < 4; i++)
            {
                BinaryHelper.Read <byte>(pw.Buffer, i);
            }

            Free(pw.Buffer);
        }
Beispiel #16
0
        public void PtrWrite()
        {
            PtrWriter writer = new PtrWriter(m_ptrBuf, SIZE);

            for (int i = 0; i < AMOUNT / 2; i++)
            {
                writer.Write(i % 2 == 0);
                writer.Write(i);
            }

            PtrReader reader = new PtrReader(m_ptrBuf, SIZE);

            for (int i = 0; i < AMOUNT / 2; i++)
            {
                bool b   = reader.Read <bool>();
                int  num = reader.Read <int>();
            }
        }
Beispiel #17
0
        public void SizePrefixTest()
        {
            PtrWriter bw = new PtrWriter(m_buffer, 16);

            bw.ReserveSizePrefix();
            bw.Write(1);
            bw.Write(2);
            bw.Write(3);

            Assert.AreEqual(16, bw.Offset);
            Assert.AreEqual(16, bw.Length);

            Assert.AreEqual(16, bw.PrefixSize());

            PtrReader br = new PtrReader(bw.Buffer, 16);

            Assert.AreEqual(16, br.Read <int>());
        }