Exemplo n.º 1
0
        public void should_append_unregistered_nullable_unmanaged_byref()
        {
            UnregisteredUnmanagedStruct?o = new UnregisteredUnmanagedStruct
            {
                A = 1,
                B = 2,
                C = 3,
            };

            _logEvent.AppendUnmanaged(ref o);
            _logEvent.WriteToStringBuffer(_output);

            Assert.AreEqual("Unmanaged(0x01000000000000000200000003000000)", _output.ToString());
        }
Exemplo n.º 2
0
        public void should_not_allocate_using_all_formats_and_file_appender_builder()
        {
            // Allocation tests are unreliable when run from NCrunch
            if (NCrunchEnvironment.NCrunchIsResident())
            {
                Assert.Inconclusive();
            }

            var log = LogManager.GetLogger("AllocationTest");

            GC.Collect(2, GCCollectionMode.Forced, true);
            var gcCountBefore = GC.CollectionCount(0);

            var numberOfEvents = 2048 * 10;

            for (var i = 0; i < numberOfEvents; i++)
            {
                log
                .Info()
                .Append("Int ")
                .Append(123243)
                .Append("Double ")
                .Append(32423432.4398438, "N4")
                .Append("String ")
                .Append("Some random string")
                .Append("Bool ")
                .Append(true)
                .Append("Decimal ")
                .Append(4234324324.23423423, "N4")
                .Append("Guid ")
                .Append(Guid.NewGuid())
                .Append("Timestamp ")
                .Append(DateTime.UtcNow.TimeOfDay)
                .Append("DateTime ")
                .Append(DateTime.UtcNow)
                .Log();

                log
                .Info()
                .Append("Enum ")
                .AppendEnum(DayOfWeek.Friday)
                .Append("UnknownEnum ")
                .AppendEnum(UnregisteredEnum.Bar)
                .Append("NullableEnum ")
                .AppendEnum((DayOfWeek?)DayOfWeek.Monday)
                .Append("NullableNullEnum ")
                .AppendEnum((DayOfWeek?)null)
                .Append("NullableInt ")
                .Append((int?)42)
                .Append("NullableNullInt ")
                .Append((int?)null)
                .Log();

                var                         unmanaged = new UnmanagedStruct(1, 2, 3);
                var                         unregistered_unmanaged               = new UnregisteredUnmanagedStruct(4, 5, 6);
                UnmanagedStruct?            nullable_unmanaged                   = unmanaged;
                UnmanagedStruct?            null_nullable_unmanaged              = (UnmanagedStruct?)null;
                UnregisteredUnmanagedStruct?nullable_unregistered_unmanaged      = new UnregisteredUnmanagedStruct(4, 5, 6);
                UnregisteredUnmanagedStruct?null_nullable_unregistered_unmanaged = (UnregisteredUnmanagedStruct?)null;

                log
                .Info()
                .Append("Unmanaged Struct ")
                .AppendUnmanaged(unmanaged)
                .Append("Unregistered Unmanaged Struct ")
                .AppendUnmanaged(unregistered_unmanaged)

                .Append("Unmanaged Struct byref ")
                .AppendUnmanaged(ref unmanaged)
                .Append("Unregistered Unmanaged byref ")
                .AppendUnmanaged(ref unregistered_unmanaged)

                .Append("Nullable Unmanaged ")
                .AppendUnmanaged(nullable_unmanaged)
                .Append("Null Nullable Unmanaged ")
                .AppendUnmanaged(null_nullable_unmanaged)
                .Append("Nullable Unregistered Unmanaged ")
                .AppendUnmanaged(nullable_unregistered_unmanaged)
                .Append("Null Nullable Unregistered Unmanaged")
                .AppendUnmanaged(null_nullable_unregistered_unmanaged)

                .Append("Nullable Unmanaged byref ")
                .AppendUnmanaged(ref nullable_unmanaged)
                .Append("Null Nullable Unmanaged byref ")
                .AppendUnmanaged(ref null_nullable_unmanaged)
                .Append("Nullable Unregistered Unmanaged byref ")
                .AppendUnmanaged(ref nullable_unregistered_unmanaged)
                .Append("Null Nullable Unregistered Unmanaged byref ")
                .AppendUnmanaged(ref null_nullable_unregistered_unmanaged)

                .Log();
            }

            // Give the appender some time to finish writing to file
            while (_waitableAppender.WrittenEventCount < numberOfEvents)
            {
                Thread.Sleep(1);
            }

            var gcCountAfter = GC.CollectionCount(0);

            Check.That(gcCountBefore).IsEqualTo(gcCountAfter);
        }