Exemple #1
0
        public unsafe void ErrorValuesTests()
        {
            var buf = new byte[10];

            for (int i = 0; i < buf.Length; i++)
            {
                buf[i] = 0xFF;
            }

            int pos = 0;

            // ReSharper disable AccessToModifiedClosure
            Assert.Throws <SerializerException>(
                () =>
            {
                fixed(byte *pbuf = buf)
                CodecReader.ReadSignedValueUnsafe(pbuf, ref pos);
            });
            // ReSharper restore AccessToModifiedClosure

            Assert.AreEqual(0, pos, "ReadSignedValueUnsafe pos shifted");

            Assert.Throws <SerializerException>(
                () =>
            {
                fixed(byte *pbuf = buf)
                CodecReader.ReadUnsignedValueUnsafe(pbuf, ref pos);
            });

            Assert.AreEqual(0, pos, "ReadSignedValueUnsafe pos shifted");


            using (var codecRdr = new CodecReader(new ArraySegment <byte>(buf)))
            {
                // ReSharper disable AccessToDisposedClosure
                Assert.Throws <SerializerException>(() => codecRdr.ReadSignedValue());
                // ReSharper restore AccessToDisposedClosure
                Assert.AreEqual(0, codecRdr.BufferPos, "ReadSignedValue pos shifted");

                // ReSharper disable AccessToDisposedClosure
                Assert.Throws <SerializerException>(() => codecRdr.ReadUnsignedValue());
                // ReSharper restore AccessToDisposedClosure
                Assert.AreEqual(0, codecRdr.BufferPos, "ReadUnsignedValue pos shifted");
            }
        }
Exemple #2
0
        public void UnsignedValues()
        {
            using (var codec = new CodecWriter(BufferSize))
                using (var codecRdr = new CodecReader(codec.AsArraySegment()))
                {
                    foreach (var valList in BatchGroup(TestValuesGenerator(), codec.BufferSize / 10))
                    {
                        codec.Count = 0;
                        foreach (ulong val in valList)
                        {
                            codec.WriteUnsignedValue(val);
                        }

                        codecRdr.AttachBuffer(codec.AsArraySegment());
                        foreach (ulong val in valList)
                        {
                            if (val != codecRdr.ReadUnsignedValue())
                            {
                                Assert.Fail("Failed ulong {0:X}", val);
                            }
                        }
                    }
                }
        }