@@ -8,8 +8,8 @@ if (Test-Path -Path "$PSScriptRoot\..\WTTLog.ps1")
88 $Global :wttLogFileName = (Join-Path $PSScriptRoot " AzureStack_CanaryValidation_Test.wtl" )
99}
1010
11- $UseCase = @ {}
12- [System.Collections.Stack ] $AllUseCases = New-Object System.Collections.Stack
11+ $CurrentUseCase = @ {}
12+ [System.Collections.Stack ] $UseCaseStack = New-Object System.Collections.Stack
1313filter timestamp {" $ ( Get-Date - Format HH:mm:ss.ffff) : $_ " }
1414
1515
@@ -57,49 +57,57 @@ function Log-JSONReport
5757 if ($Message.Contains (" [START]" ))
5858 {
5959 $name = $Message.Substring ($Message.LastIndexOf (" :" ) + 1 ).Trim().Replace(" ######" , " " ).Trim()
60- if ($AllUseCases .Count )
60+ if ($UseCaseStack .Count )
6161 {
6262 $nestedUseCase = @ {
6363 " Name" = $name
6464 " StartTime" = $time
6565 }
66- if (-not $AllUseCases .Peek ().UseCase)
66+ if (-not $UseCaseStack .Peek ().UseCase)
6767 {
68- $AllUseCases .Peek ().Add(" UseCase" , @ ())
68+ $UseCaseStack .Peek ().Add(" UseCase" , @ ())
6969 }
70- $AllUseCases .Peek ().UseCase += , $nestedUseCase
71- $AllUseCases .Push ($nestedUseCase )
70+ $UseCaseStack .Peek ().UseCase += , $nestedUseCase
71+ $UseCaseStack .Push ($nestedUseCase )
7272 }
7373 else
7474 {
75- $UseCase .Add (" Name" , $name )
76- $UseCase .Add (" StartTime" , $time )
77- $AllUseCases .Push ($UseCase )
75+ $CurrentUseCase .Add (" Name" , $name )
76+ $CurrentUseCase .Add (" StartTime" , $time )
77+ $UseCaseStack .Push ($CurrentUseCase )
7878 }
7979 }
8080 elseif ($Message.Contains (" [END]" ))
8181 {
82- $result = $Message.Substring ($Message.LastIndexOf (" =" ) + 1 ).Trim().Replace(" ] ######" , " " ).Trim()
83- $AllUseCases.Peek ().Add(" EndTime" , $time )
84- $AllUseCases.Peek ().Add(" Result" , $result )
85- $AllUseCases.Pop () | Out-Null
86- if (-not $AllUseCases.Count )
82+ $result = " "
83+ if ($UseCaseStack.Peek ().UseCase -and ($UseCaseStack.Peek ().UseCase | Where-Object {$_.Result -eq " FAIL" }))
84+ {
85+ $result = " FAIL"
86+ }
87+ else
88+ {
89+ $result = $Message.Substring ($Message.LastIndexOf (" =" ) + 1 ).Trim().Replace(" ] ######" , " " ).Trim()
90+ }
91+ $UseCaseStack.Peek ().Add(" Result" , $result )
92+ $UseCaseStack.Peek ().Add(" EndTime" , $time )
93+ $UseCaseStack.Pop () | Out-Null
94+ if (-not $UseCaseStack.Count )
8795 {
8896 $jsonReport = ConvertFrom-Json (Get-Content - Path $Global :JSONLogFile - Raw)
89- $jsonReport.UseCases += , $UseCase
97+ $jsonReport.UseCases += , $CurrentUseCase
9098 $jsonReport | ConvertTo-Json - Depth 10 | Out-File - FilePath $Global :JSONLogFile
91- $UseCase .Clear ()
99+ $CurrentUseCase .Clear ()
92100 }
93101 }
94102 elseif ($Message.Contains (" [DESCRIPTION]" ))
95103 {
96104 $description = $Message.Substring ($Message.IndexOf (" [DESCRIPTION]" ) + " [DESCRIPTION]" .Length).Trim()
97- $AllUseCases .Peek ().Add(" Description" , $description )
105+ $UseCaseStack .Peek ().Add(" Description" , $description )
98106 }
99107 elseif ($Message.Contains (" [EXCEPTION]" ))
100108 {
101109 $exception = $Message.Substring ($Message.IndexOf (" [EXCEPTION]" ) + " [EXCEPTION]" .Length).Trim()
102- $AllUseCases .Peek ().Add(" Exception" , $exception )
110+ $UseCaseStack .Peek ().Add(" Exception" , $exception )
103111 }
104112 }
105113}
0 commit comments