From 980b16561cfc488075a07e14ecfcb33247db7352 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 +++++ .../engine/Formatting/OutputRendering.Tests.ps1 | 9 +++++++++ 3 files changed, 21 insertions(+) diff --git a/test/powershell/Language/Scripting/SuppressAnsiEscapeSequence.Tests.ps1 b/test/powershell/Language/Scripting/SuppressAnsiEscapeSequence.Tests.ps1 index 30a82309a7..0530aea93e 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 624649fdfc..43854a2005 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 a1c721e764..fe01490944 100644 --- a/test/powershell/engine/Formatting/OutputRendering.Tests.ps1 +++ b/test/powershell/engine/Formatting/OutputRendering.Tests.ps1 @@ -2,6 +2,15 @@ # Licensed under the MIT License. Describe 'OutputRendering tests' -Tag 'CI' { + BeforeAll { + $originalDefaultParameterValues = $PSDefaultParameterValues.Clone() + # Console host does not support VT100 escape sequences on Windows 2012R2 or earlier + + if (-not $host.ui.SupportsVirtualTerminal) { + $global:PSDefaultParameterValues["it:skip"] = $true + } + } + BeforeEach { if ($null -ne $PSStyle) { $oldOutputRendering = $PSStyle.OutputRendering