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"); } }
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); } } } } }