Exemplo n.º 1
0
        /// <summary>
        ///     Creates the heap segments.
        /// </summary>
        public void CreateHeapSegments()
        {
            var segments = new Dictionary <ulong, DumpHeapSegment>();

            foreach (var heapSegment in Runtime.Heap.Segments)
            {
                var segment = new DumpHeapSegment
                {
                    ReservedEnd       = heapSegment.ReservedEnd,
                    Start             = heapSegment.Start,
                    CommittedEnd      = heapSegment.CommittedEnd,
                    End               = heapSegment.End,
                    FirstObject       = heapSegment.FirstObject,
                    Gen0Length        = heapSegment.Gen0Length,
                    Gen0Start         = heapSegment.Gen0Start,
                    Gen1Length        = heapSegment.Gen1Length,
                    Gen1Start         = heapSegment.Gen1Start,
                    Gen2Length        = heapSegment.Gen2Length,
                    Gen2Start         = heapSegment.Gen2Start,
                    Heap              = heapSegment.Heap,
                    IsEphemeral       = heapSegment.IsEphemeral,
                    IsLarge           = heapSegment.IsLarge,
                    Length            = heapSegment.Length,
                    ProcessorAffinity = heapSegment.ProcessorAffinity
                };

                segments.Add(heapSegment.Start, segment);
            }

            Segments = segments;
        }
Exemplo n.º 2
0
        public void Exhibit_Entity_Equality()
        {
            // arrange
            var a = new DumpHeapSegment()
            {
                Start = 0
            };
            var b = new DumpHeapSegment()
            {
                Start = 0
            };
            var c = new DumpHeapSegment()
            {
                Start = 1
            };

            // act
            // assert
            a.GetHashCode().Should().Be(b.GetHashCode());
            a.GetHashCode().Should().NotBe(c.GetHashCode());

            a.Equals(a).Should().BeTrue();
            a.Equals(b).Should().BeTrue();
            a.Equals(c).Should().BeFalse();
            a.Equals(null).Should().BeFalse();
            a.Equals("").Should().BeFalse();
            a.CompareTo(a).Should().Be(0);
            a.CompareTo(b).Should().Be(0);
            a.CompareTo(c).Should().Be(-1);
            a.CompareTo(null).Should().Be(1);
            a.Equals((object)a).Should().BeTrue();
            a.Equals((object)b).Should().BeTrue();
            a.Equals((object)c).Should().BeFalse();
            a.Equals((object)null).Should().BeFalse();
            a.CompareTo((object)a).Should().Be(0);
            a.CompareTo((object)b).Should().Be(0);
            a.CompareTo((object)c).Should().Be(-1);
            a.CompareTo((object)null).Should().Be(1);
            (a < b).Should().BeFalse();
            (a <= b).Should().BeTrue();
            (c > a).Should().BeTrue();
            (c >= a).Should().BeTrue();
            Action throws = () => a.CompareTo("");

            throws.Should().Throw <ArgumentException>();
        }