Exemple #1
0
        public override void TestFixtureSetUp()
        {
            base.TestFixtureSetUp();
            _chunk = TFChunkHelper.CreateNewChunk(Filename);

            var recordFactory = LogFormatHelper <TLogFormat, TStreamId> .RecordFactory;
            var streamId1     = LogFormatHelper <TLogFormat, TStreamId> .StreamId;
            var streamId2     = LogFormatHelper <TLogFormat, TStreamId> .StreamId2;
            var eventTypeId1  = LogFormatHelper <TLogFormat, TStreamId> .EventTypeId;
            var eventTypeId2  = LogFormatHelper <TLogFormat, TStreamId> .EventTypeId2;

            _prepare1 = LogRecord.Prepare(recordFactory, 0, _corrId, _eventId, 0, 0, streamId1, 1,
                                          PrepareFlags.None, eventTypeId1, new byte[12], new byte[15], new DateTime(2000, 1, 1, 12, 0, 0));
            var r1 = _chunk.TryAppend(_prepare1);

            _written1  = r1.Success;
            _position1 = r1.OldPosition;

            _prepare2 = LogRecord.Prepare(recordFactory, r1.NewPosition, _corrId, _eventId, 0, 0, streamId2, 2,
                                          PrepareFlags.None, eventTypeId2, new byte[12], new byte[15], new DateTime(2000, 1, 1, 12, 0, 0));
            var r2 = _chunk.TryAppend(_prepare2);

            _written2  = r2.Success;
            _position2 = r2.OldPosition;
            _chunk.Flush();
        }
Exemple #2
0
        public override void TestFixtureSetUp()
        {
            base.TestFixtureSetUp();
            _chunk = TFChunkHelper.CreateNewChunk(Filename);

            var logFormat = LogFormatHelper <TLogFormat, TStreamId> .LogFormat;

            logFormat.StreamNameIndex.GetOrAddId("test", out var streamId1, out _, out _);
            logFormat.StreamNameIndex.GetOrAddId("test2", out var streamId2, out _, out _);

            _prepare1 = LogRecord.Prepare(logFormat.RecordFactory, 0, _corrId, _eventId, 0, 0, streamId1, 1,
                                          PrepareFlags.None, "Foo", new byte[12], new byte[15], new DateTime(2000, 1, 1, 12, 0, 0));
            var r1 = _chunk.TryAppend(_prepare1);

            _written1  = r1.Success;
            _position1 = r1.OldPosition;

            _prepare2 = LogRecord.Prepare(logFormat.RecordFactory, r1.NewPosition, _corrId, _eventId, 0, 0, streamId2, 2,
                                          PrepareFlags.None, "Foo2", new byte[12], new byte[15], new DateTime(2000, 1, 1, 12, 0, 0));
            var r2 = _chunk.TryAppend(_prepare2);

            _written2  = r2.Success;
            _position2 = r2.OldPosition;
            _chunk.Flush();
        }
Exemple #3
0
 public override void TestFixtureSetUp()
 {
     base.TestFixtureSetUp();
     _chunk = TFChunkHelper.CreateNewChunk(Filename);
     _chunk.Complete();
     _testChunk = TFChunk.FromCompletedFile(Filename, true, false, 5, reduceFileCachePressure: false);
 }
 public override void SetUp()
 {
     base.SetUp();
     _chunk  = TFChunkHelper.CreateNewChunk(Filename, 1000);
     _reader = _chunk.AcquireReader();
     _chunk.MarkForDeletion();
 }
Exemple #5
0
 public override void TestFixtureSetUp()
 {
     base.TestFixtureSetUp();
     _chunk = TFChunkHelper.CreateNewChunk(Filename, isScavenged: true);
     _chunk.CompleteScavenge(new PosMap[0]);
     _chunk.CacheInMemory();
 }
Exemple #6
0
 public override void TestFixtureSetUp()
 {
     base.TestFixtureSetUp();
     _record = new PrepareLogRecord(0, _corrId, _eventId, 0, 0, "test", 1, new DateTime(2000, 1, 1, 12, 0, 0),
                                    PrepareFlags.None, "Foo", new byte[12], new byte[15]);
     _chunk  = TFChunkHelper.CreateNewChunk(Filename);
     _result = _chunk.TryAppend(_record);
 }
        public override void SetUp()
        {
            base.SetUp();
            var record = new PrepareLogRecord(15556, _corrId, _eventId, 15556, 0, "test", 1, new DateTime(2000, 1, 1, 12, 0, 0),
                                              PrepareFlags.None, "Foo", new byte[12], new byte[15]);

            _chunk   = TFChunkHelper.CreateNewChunk(Filename, 20);
            _written = _chunk.TryAppend(record).Success;
        }
Exemple #8
0
 public override void TestFixtureSetUp()
 {
     base.TestFixtureSetUp();
     _chunk = TFChunkHelper.CreateNewChunk(Filename);
     _chunk.Complete();
     _testChunk = TFChunk.FromCompletedFile(Filename, true, false,
                                            Constants.TFChunkInitialReaderCountDefault,
                                            Constants.TFChunkMaxReaderCountDefault,
                                            reduceFileCachePressure: false);
 }
 public override void TestFixtureSetUp()
 {
     base.TestFixtureSetUp();
     _record = new PrepareLogRecord(0, _corrId, _eventId, 0, 0, "test", 1, new DateTime(2000, 1, 1, 12, 0, 0),
                                    PrepareFlags.None, "Foo", new byte[12], new byte[15]);
     _chunk  = TFChunkHelper.CreateNewChunk(Filename);
     _result = _chunk.TryAppend(_record);
     _chunk.Flush();
     _chunk.Complete();
     _cachedChunk = TFChunk.FromCompletedFile(Filename, verifyHash: true, unbufferedRead: false, initialReaderCount: 5);
     _cachedChunk.CacheInMemory();
 }
        public override void TestFixtureSetUp()
        {
            base.TestFixtureSetUp();

            var recordFactory = LogFormatHelper <TLogFormat, TStreamId> .RecordFactory;
            var streamId      = LogFormatHelper <TLogFormat, TStreamId> .StreamId;

            _record = LogRecord.Prepare(recordFactory, 0, _corrId, _eventId, 0, 0, streamId, 1,
                                        PrepareFlags.None, "Foo", new byte[12], new byte[15], new DateTime(2000, 1, 1, 12, 0, 0));
            _chunk  = TFChunkHelper.CreateNewChunk(Filename);
            _result = _chunk.TryAppend(_record);
        }
Exemple #11
0
        public override void SetUp()
        {
            base.SetUp();

            var recordFactory = LogFormatHelper <TLogFormat, TStreamId> .RecordFactory;
            var streamId      = LogFormatHelper <TLogFormat, TStreamId> .StreamId;

            var record = LogRecord.Prepare(recordFactory, 15556, _corrId, _eventId, 15556, 0, streamId, 1,
                                           PrepareFlags.None, "Foo", new byte[12], new byte[15], new DateTime(2000, 1, 1, 12, 0, 0));

            _chunk   = TFChunkHelper.CreateNewChunk(Filename, 20);
            _written = _chunk.TryAppend(record).Success;
        }
Exemple #12
0
        public override void TestFixtureSetUp()
        {
            base.TestFixtureSetUp();

            var logFormat = LogFormatHelper <TLogFormat, TStreamId> .LogFormat;

            logFormat.StreamNameIndex.GetOrAddId("test", out var streamId, out _, out _);

            _record = LogRecord.Prepare(logFormat.RecordFactory, 0, _corrId, _eventId, 0, 0, streamId, 1,
                                        PrepareFlags.None, "Foo", new byte[12], new byte[15], new DateTime(2000, 1, 1, 12, 0, 0));
            _chunk  = TFChunkHelper.CreateNewChunk(Filename);
            _result = _chunk.TryAppend(_record);
        }
        public void if_asked_for_more_than_buffer_size_will_only_read_buffer_size()
        {
            var chunk = TFChunkHelper.CreateNewChunk(GetFilePathFor("file1"), 3000);

            using (var reader = chunk.AcquireReader()) {
                var buffer = new byte[1024];
                var result = reader.ReadNextRawBytes(3000, buffer);
                Assert.IsFalse(result.IsEOF);
                Assert.AreEqual(1024, result.BytesRead);
            }

            chunk.MarkForDeletion();
            chunk.WaitForDestroy(5000);
        }
        public void the_file_will_not_be_deleted_until_reader_released()
        {
            var chunk = TFChunkHelper.CreateNewChunk(GetFilePathFor("file1"), 2000);

            using (var reader = chunk.AcquireReader()) {
                chunk.MarkForDeletion();
                var buffer = new byte[1024];
                var result = reader.ReadNextRawBytes(1024, buffer);
                Assert.IsFalse(result.IsEOF);
                Assert.AreEqual(1024, result.BytesRead);
            }

            chunk.WaitForDestroy(5000);
        }
        public void a_read_past_eof_returns_eof_and_no_footer()
        {
            var chunk = TFChunkHelper.CreateNewChunk(GetFilePathFor("file1"), 300);

            using (var reader = chunk.AcquireReader()) {
                var buffer = new byte[8092];
                var result = reader.ReadNextRawBytes(8092, buffer);
                Assert.IsTrue(result.IsEOF);
                Assert.AreEqual(4096, result.BytesRead);                 //does not includes header and footer space
            }

            chunk.MarkForDeletion();
            chunk.WaitForDestroy(5000);
        }
        public void a_read_on_new_file_can_be_performed()
        {
            var chunk = TFChunkHelper.CreateNewChunk(GetFilePathFor("file1"), 2000);

            using (var reader = chunk.AcquireReader()) {
                var buffer = new byte[1024];
                var result = reader.ReadNextRawBytes(1024, buffer);
                Assert.IsFalse(result.IsEOF);
                Assert.AreEqual(1024, result.BytesRead);
            }

            chunk.MarkForDeletion();
            chunk.WaitForDestroy(5000);
        }
        public void a_read_on_scavenged_chunk_does_not_include_map()
        {
            var chunk = TFChunkHelper.CreateNewChunk(GetFilePathFor("afile"), 200, isScavenged: true);

            chunk.CompleteScavenge(new[] { new PosMap(0, 0), new PosMap(1, 1) });
            using (var reader = chunk.AcquireReader()) {
                var buffer = new byte[1024];
                var result = reader.ReadNextDataBytes(1024, buffer);
                Assert.IsTrue(result.IsEOF);
                Assert.AreEqual(0, result.BytesRead);                 //header 128 + footer 128 + map 16
            }

            chunk.MarkForDeletion();
            chunk.WaitForDestroy(5000);
        }
        public void a_read_past_end_of_completed_chunk_does_not_include_footer()
        {
            var chunk = TFChunkHelper.CreateNewChunk(GetFilePathFor("file1"), 300);

            chunk.Complete();             // chunk has 0 bytes of actual data
            using (var reader = chunk.AcquireReader()) {
                var buffer = new byte[1024];
                var result = reader.ReadNextDataBytes(1024, buffer);
                Assert.IsTrue(result.IsEOF);
                Assert.AreEqual(0, result.BytesRead);
            }

            chunk.MarkForDeletion();
            chunk.WaitForDestroy(5000);
        }
Exemple #19
0
        public override void TestFixtureSetUp()
        {
            base.TestFixtureSetUp();
            var recordFactory = LogFormatHelper <TLogFormat, TStreamId> .RecordFactory;
            var streamId      = LogFormatHelper <TLogFormat, TStreamId> .StreamId;

            _record = LogRecord.Prepare(recordFactory, 0, _corrId, _eventId, 0, 0, streamId, 1,
                                        PrepareFlags.None, "Foo", new byte[12], new byte[15], new DateTime(2000, 1, 1, 12, 0, 0));
            _chunk  = TFChunkHelper.CreateNewChunk(Filename);
            _result = _chunk.TryAppend(_record);
            _chunk.Flush();
            _chunk.Complete();
            _cachedChunk = TFChunk.FromCompletedFile(Filename, verifyHash: true, unbufferedRead: false,
                                                     initialReaderCount: Constants.TFChunkInitialReaderCountDefault, maxReaderCount: Constants.TFChunkMaxReaderCountDefault, reduceFileCachePressure: false);
            _cachedChunk.CacheInMemory();
        }
Exemple #20
0
        public void a_read_past_eof_doesnt_return_eof_if_chunk_is_not_yet_completed()
        {
            var chunk = TFChunkHelper.CreateNewChunk(GetFilePathFor("file1"), 300);
            var rec   = LogRecord.Commit(0, Guid.NewGuid(), 0, 0);

            Assert.IsTrue(chunk.TryAppend(rec).Success, "Record was not appended");
            using (var reader = chunk.AcquireReader())
            {
                var buffer = new byte[1024];
                var result = reader.ReadNextDataBytes(1024, buffer);
                Assert.IsFalse(result.IsEOF, "EOF was returned.");
                //does not include header and footer space
                Assert.AreEqual(rec.GetSizeWithLengthPrefixAndSuffix(), result.BytesRead, "Read wrong number of bytes.");
            }
            chunk.MarkForDeletion();
            chunk.WaitForDestroy(5000);
        }
Exemple #21
0
        public void if_asked_for_more_than_buffer_size_will_only_read_buffer_size()
        {
            var chunk = TFChunkHelper.CreateNewChunk(GetFilePathFor("file1"), 3000);

            var rec = LogRecord.Prepare(0, Guid.NewGuid(), Guid.NewGuid(), 0, 0, "ES", -1, PrepareFlags.None, "ET", new byte[2000], null);

            Assert.IsTrue(chunk.TryAppend(rec).Success, "Record was not appended");

            using (var reader = chunk.AcquireReader())
            {
                var buffer = new byte[1024];
                var result = reader.ReadNextDataBytes(3000, buffer);
                Assert.IsFalse(result.IsEOF);
                Assert.AreEqual(1024, result.BytesRead);
            }
            chunk.MarkForDeletion();
            chunk.WaitForDestroy(5000);
        }
        public override void TestFixtureSetUp()
        {
            base.TestFixtureSetUp();
            _chunk = TFChunkHelper.CreateNewChunk(Filename);

            _prepare1 = new PrepareLogRecord(0, _corrId, _eventId, 0, 0, "test", 1, new DateTime(2000, 1, 1, 12, 0, 0),
                                             PrepareFlags.None, "Foo", new byte[12], new byte[15]);
            var r1 = _chunk.TryAppend(_prepare1);

            _written1  = r1.Success;
            _position1 = r1.OldPosition;

            _prepare2 = new PrepareLogRecord(r1.NewPosition, _corrId, _eventId, 0, 0, "test2", 2, new DateTime(2000, 1, 1, 12, 0, 0),
                                             PrepareFlags.None, "Foo2", new byte[12], new byte[15]);
            var r2 = _chunk.TryAppend(_prepare2);

            _written2  = r2.Success;
            _position2 = r2.OldPosition;
            _chunk.Flush();
        }
Exemple #23
0
 public override void SetUp()
 {
     base.SetUp();
     _chunk = TFChunkHelper.CreateNewChunk(Filename, 1024);
 }