From 5a225877927d3fb15a9bed4cc8344d6276789f13 Mon Sep 17 00:00:00 2001 From: Aditya Patwardhan Date: Mon, 27 Mar 2023 17:36:41 -0700 Subject: [PATCH] Skip VT100 tests on Windows Server 2012R2 as console does not support it (#19413) --- .../Scripting/SuppressAnsiEscapeSequence.Tests.ps1 | 7 +++++++ .../Microsoft.PowerShell.Utility/Get-Error.Tests.ps1 | 5 +++++ .../powershell/engine/Formatting/OutputRendering.Tests.ps1 | 5 +++-- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/test/powershell/Language/Scripting/SuppressAnsiEscapeSequence.Tests.ps1 b/test/powershell/Language/Scripting/SuppressAnsiEscapeSequence.Tests.ps1 index 30a82309a..0530aea93 100644 --- a/test/powershell/Language/Scripting/SuppressAnsiEscapeSequence.Tests.ps1 +++ b/test/powershell/Language/Scripting/SuppressAnsiEscapeSequence.Tests.ps1 @@ -3,12 +3,19 @@ Describe '$env:__SuppressAnsiEscapeSequences tests' -Tag CI { BeforeAll { + $originalDefaultParameterValues = $PSDefaultParameterValues.Clone() + + if (-not $host.ui.SupportsVirtualTerminal) { + $global:PSDefaultParameterValues["it:skip"] = $true + } + $originalSuppressPref = $env:__SuppressAnsiEscapeSequences $originalRendering = $PSStyle.OutputRendering $PSStyle.OutputRendering = 'Ansi' } AfterAll { + $global:PSDefaultParameterValues = $originalDefaultParameterValues $env:__SuppressAnsiEscapeSequences = $originalSuppressPref $PSStyle.OutputRendering = $originalRendering } diff --git a/test/powershell/Modules/Microsoft.PowerShell.Utility/Get-Error.Tests.ps1 b/test/powershell/Modules/Microsoft.PowerShell.Utility/Get-Error.Tests.ps1 index 1d89bf6c1..4f86ee561 100644 --- a/test/powershell/Modules/Microsoft.PowerShell.Utility/Get-Error.Tests.ps1 +++ b/test/powershell/Modules/Microsoft.PowerShell.Utility/Get-Error.Tests.ps1 @@ -119,6 +119,11 @@ Describe 'Get-Error tests' -Tag CI { } It 'Get-Error uses Error color for Message and PositionMessage members' { + + if (-not $host.ui.SupportsVirtualTerminal) { + Set-ItResult -Skipped -Because 'Windows Server 2012 R2 does not support VT100 escape sequences' + } + $suppressVT = $false if (Test-Path env:/__SuppressAnsiEscapeSequences) { $suppressVT = $true diff --git a/test/powershell/engine/Formatting/OutputRendering.Tests.ps1 b/test/powershell/engine/Formatting/OutputRendering.Tests.ps1 index 18adcf6a8..dda4bdbd1 100644 --- a/test/powershell/engine/Formatting/OutputRendering.Tests.ps1 +++ b/test/powershell/engine/Formatting/OutputRendering.Tests.ps1 @@ -5,8 +5,9 @@ Describe 'OutputRendering tests' -Tag 'CI' { BeforeAll { $originalDefaultParameterValues = $PSDefaultParameterValues.Clone() # Console host does not support VT100 escape sequences on Windows 2012R2 or earlier - if ($IsWindows -and [System.Environment]::OSVersion.Version -le [version]::new(6, 3)) { - $PSDefaultParameterValues["it:skip"] = $true + + if (-not $host.ui.SupportsVirtualTerminal) { + $global:PSDefaultParameterValues["it:skip"] = $true } }