예제 #1
0
        public unsafe void EventDataArrayBuilderMultipleStringsMixedTruncationTest()
        {
            const int  argCount   = 14;
            EventData *userData   = stackalloc EventData[argCount];
            byte *     dataBuffer = stackalloc byte[EventDataArrayBuilder.BasicTypeAllocationBufferSize * argCount];
            var        edab       = new EventDataArrayBuilder(userData, dataBuffer);

            Variant v0 = new String('a', 13000);

            edab.AddEventData(v0);
            Variant v1 = new String('b', 16000);

            edab.AddEventData(v1);
            Variant v2 = new String('c', 4000);

            edab.AddEventData(v2);
            Variant v3 = new String('d', 741);

            edab.AddEventData(v3);
            Variant v4 = default(Variant);

            edab.AddEventData(v4);
            Variant v5 = default(Variant);

            edab.AddEventData(v5);
            Variant v6 = default(Variant);

            edab.AddEventData(v6);
            Variant v7 = default(Variant);

            edab.AddEventData(v7);
            Variant v8 = default(Variant);

            edab.AddEventData(v8);
            Variant v9 = default(Variant);

            edab.AddEventData(v9);
            Variant v10 = default(Variant);

            edab.AddEventData(v10);
            Variant v11 = default(Variant);

            edab.AddEventData(v11);
            Variant v12 = default(Variant);

            edab.AddEventData(v12);
            Variant v13 = default(Variant);

            edab.AddEventData(v13);

            Assert.IsFalse(edab.IsValid());
            Assert.IsTrue(edab.TruncateStringVariants(ref v0, ref v1, ref v2, ref v3, ref v4, ref v5, ref v6, ref v7, ref v8, ref v9, ref v10, ref v11, ref v12, ref v13));
            Assert.IsTrue(v0.ConvertToString().Length == 8184);
            Assert.IsTrue(v1.ConvertToString().Length == 8184);
            Assert.IsTrue(v2.ConvertToString().Length == 4000);
            Assert.IsTrue(v3.ConvertToString().Length == 741);
        }
예제 #2
0
        public unsafe void EventDataArrayBuilderLargeStringTruncationTest()
        {
            const int  argCount   = 14;
            EventData *userData   = stackalloc EventData[argCount];
            byte *     dataBuffer = stackalloc byte[EventDataArrayBuilder.BasicTypeAllocationBufferSize * argCount];
            var        edab       = new EventDataArrayBuilder(userData, dataBuffer);

            Variant largeStringVariant = new String('a', EventDataArrayBuilder.TraceEventMaximumSize / 2);

            edab.AddEventData(largeStringVariant);

            Variant v1 = default(Variant);

            edab.AddEventData(v1);
            Variant v2 = default(Variant);

            edab.AddEventData(v2);
            Variant v3 = default(Variant);

            edab.AddEventData(v3);
            Variant v4 = default(Variant);

            edab.AddEventData(v4);
            Variant v5 = default(Variant);

            edab.AddEventData(v5);
            Variant v6 = default(Variant);

            edab.AddEventData(v6);
            Variant v7 = default(Variant);

            edab.AddEventData(v7);
            Variant v8 = default(Variant);

            edab.AddEventData(v8);
            Variant v9 = default(Variant);

            edab.AddEventData(v9);
            Variant v10 = default(Variant);

            edab.AddEventData(v10);
            Variant v11 = default(Variant);

            edab.AddEventData(v11);
            Variant v12 = default(Variant);

            edab.AddEventData(v12);
            Variant v13 = default(Variant);

            edab.AddEventData(v13);

            Assert.IsFalse(edab.IsValid());
            Assert.IsTrue(edab.TruncateStringVariants(ref largeStringVariant, ref v1, ref v2, ref v3, ref v4, ref v5, ref v6, ref v7, ref v8, ref v9, ref v10, ref v11, ref v12, ref v13));
            Assert.IsTrue(largeStringVariant.ConvertToString().Length == (EventDataArrayBuilder.TraceEventMaximumSize / 2) - 1);
        }