1- // Licensed to the .NET Foundation under one or more agreements.
2- // The .NET Foundation licenses this file to you under the MIT license.
3-
4- #if NETCOREAPP
5- #nullable enable
6- #endif
1+ // Copyright (c) Microsoft Corporation. All rights reserved.
2+ // Licensed under the MIT license. See LICENSE file in the project root for full license information.
73
84using System . Diagnostics ;
95
@@ -219,7 +215,7 @@ private static List<FailedTestResultMessage> ReadFailedTestMessagesPayload(Strea
219215 for ( int i = 0 ; i < length ; i ++ )
220216 {
221217 string ? uid = null , displayName = null , reason = null , sessionUid = null , standardOutput = null , errorOutput = null ;
222- List < ExceptionMessage > exceptionMessages = [ ] ;
218+ ExceptionMessage [ ] exceptionMessages = [ ] ;
223219 byte ? state = null ;
224220 long ? duration = null ;
225221
@@ -253,43 +249,8 @@ private static List<FailedTestResultMessage> ReadFailedTestMessagesPayload(Strea
253249 break ;
254250
255251 case FailedTestResultMessageFieldsId . ExceptionMessageList :
256- {
257- int length2 = ReadInt ( stream ) ;
258- for ( int k = 0 ; k < length2 ; k ++ )
259- {
260-
261- int fieldCount2 = ReadShort ( stream ) ;
262-
263- string ? errorMessage = null ;
264- string ? errorType = null ;
265- string ? stackTrace = null ;
266-
267- for ( int l = 0 ; l < fieldCount2 ; l ++ )
268- {
269- int fieldId2 = ReadShort ( stream ) ;
270- int fieldSize2 = ReadInt ( stream ) ;
271-
272- switch ( fieldId2 )
273- {
274- case ExceptionMessageFieldsId . ErrorMessage :
275- errorMessage = ReadStringValue ( stream , fieldSize2 ) ;
276- break ;
277-
278- case ExceptionMessageFieldsId . ErrorType :
279- errorType = ReadStringValue ( stream , fieldSize2 ) ;
280- break ;
281-
282- case ExceptionMessageFieldsId . StackTrace :
283- stackTrace = ReadStringValue ( stream , fieldSize2 ) ;
284- break ;
285- }
286- }
287-
288- exceptionMessages . Add ( new ExceptionMessage ( errorMessage , errorType , stackTrace ) ) ;
289- }
290-
291- break ;
292- }
252+ exceptionMessages = ReadExceptionMessagesPayload ( stream ) ;
253+ break ;
293254
294255 case FailedTestResultMessageFieldsId . StandardOutput :
295256 standardOutput = ReadStringValue ( stream , fieldSize ) ;
@@ -309,12 +270,52 @@ private static List<FailedTestResultMessage> ReadFailedTestMessagesPayload(Strea
309270 }
310271 }
311272
312- failedTestResultMessages . Add ( new FailedTestResultMessage ( uid , displayName , state , duration , reason , exceptionMessages . ToArray ( ) , standardOutput , errorOutput , sessionUid ) ) ;
273+ failedTestResultMessages . Add ( new FailedTestResultMessage ( uid , displayName , state , duration , reason , exceptionMessages , standardOutput , errorOutput , sessionUid ) ) ;
313274 }
314275
315276 return failedTestResultMessages ;
316277 }
317278
279+ private static ExceptionMessage [ ] ReadExceptionMessagesPayload ( Stream stream )
280+ {
281+ var exceptionMessages = new List < ExceptionMessage > ( ) ;
282+
283+ int length = ReadInt ( stream ) ;
284+ for ( int i = 0 ; i < length ; i ++ )
285+ {
286+ int fieldCount = ReadShort ( stream ) ;
287+
288+ string ? errorMessage = null ;
289+ string ? errorType = null ;
290+ string ? stackTrace = null ;
291+
292+ for ( int j = 0 ; j < fieldCount ; j ++ )
293+ {
294+ int fieldId = ReadShort ( stream ) ;
295+ int fieldSize = ReadInt ( stream ) ;
296+
297+ switch ( fieldId )
298+ {
299+ case ExceptionMessageFieldsId . ErrorMessage :
300+ errorMessage = ReadStringValue ( stream , fieldSize ) ;
301+ break ;
302+
303+ case ExceptionMessageFieldsId . ErrorType :
304+ errorType = ReadStringValue ( stream , fieldSize ) ;
305+ break ;
306+
307+ case ExceptionMessageFieldsId . StackTrace :
308+ stackTrace = ReadStringValue ( stream , fieldSize ) ;
309+ break ;
310+ }
311+ }
312+
313+ exceptionMessages . Add ( new ExceptionMessage ( errorMessage , errorType , stackTrace ) ) ;
314+ }
315+
316+ return exceptionMessages . ToArray ( ) ;
317+ }
318+
318319 public void Serialize ( object objectToSerialize , Stream stream )
319320 {
320321 Debug . Assert ( stream . CanSeek , "We expect a seekable stream." ) ;
0 commit comments