Esempio n. 1
0
        public void ChecksMagicNumber()
        {
            var bytes = Compressed.Clone() as byte[];

            bytes[3]++;
            using (Stream badMagicNumberStream = new MemoryStream(bytes))
            {
                BinaryReader br     = new BinaryReader(badMagicNumberStream);
                var          header = new XZHeader(br);
                var          ex     = Assert.Throws <InvalidDataException>(() => { header.Process(); });
                Assert.Equal("Invalid XZ Stream", ex.Message);
            }
        }
Esempio n. 2
0
        public void CorruptHeaderThrows()
        {
            var bytes = Compressed.Clone() as byte[];

            bytes[8]++;
            using (Stream badCrcStream = new MemoryStream(bytes))
            {
                BinaryReader br     = new BinaryReader(badCrcStream);
                var          header = new XZHeader(br);
                var          ex     = Assert.Throws <InvalidDataException>(() => { header.Process(); });
                Assert.Equal("Stream header corrupt", ex.Message);
            }
        }
Esempio n. 3
0
        public void CrcIncorrectThrows()
        {
            var bytes = Compressed.Clone() as byte[];

            bytes[20]++;
            using (Stream badCrcStream = new MemoryStream(bytes))
            {
                Rewind(badCrcStream);
                var XZBlock = new XZBlock(badCrcStream, CheckType.CRC64, 8);
                var ex      = Assert.Throws <InvalidDataException>(() => { ReadBytes(XZBlock, 1); });
                Assert.Equal("Block header corrupt", ex.Message);
            }
        }
Esempio n. 4
0
        public void BadVersionIfCrcOkButStreamFlagUnknown()
        {
            var bytes = Compressed.Clone() as byte[];

            byte[] streamFlags = { 0x00, 0xF4 };
            byte[] crc         = Crc32.Compute(streamFlags).ToLittleEndianBytes();
            streamFlags.CopyTo(bytes, 6);
            crc.CopyTo(bytes, 8);
            using (Stream badFlagStream = new MemoryStream(bytes))
            {
                BinaryReader br     = new BinaryReader(badFlagStream);
                var          header = new XZHeader(br);
                var          ex     = Assert.Throws <InvalidDataException>(() => { header.Process(); });
                Assert.Equal("Unknown XZ Stream Version", ex.Message);
            }
        }