Skip to content

Commit 54b881d

Browse files
authored
[release/v7.5] Fix $PSDefaultParameterValues leak causing tests to skip unexpectedly (#26823)
1 parent f9e3b97 commit 54b881d

6 files changed

Lines changed: 10 additions & 6 deletions

File tree

test/powershell/Modules/Microsoft.PowerShell.Management/Rename-Computer.Tests.ps1

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ $DefaultResultValue = 0
77
try
88
{
99
# set up for testing
10+
$originalDefaultParameterValues = $PSDefaultParameterValues.Clone()
1011
$PSDefaultParameterValues["it:skip"] = ! $IsWindows
1112
Enable-Testhook -testhookName $RenameTesthook
1213
# we also set TestStopComputer
@@ -73,7 +74,7 @@ try
7374
}
7475
finally
7576
{
76-
$PSDefaultParameterValues.Remove("it:skip")
77+
$global:PSDefaultParameterValues = $originalDefaultParameterValues
7778
Disable-Testhook -testhookName $RenameTestHook
7879
Disable-Testhook -testhookName TestStopComputer
7980
Set-TesthookResult -testhookName $RenameResultName -value 0

test/powershell/Modules/Microsoft.PowerShell.Security/AclCmdlets.Tests.ps1

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
Describe "Acl cmdlets are available and operate properly" -Tag CI {
44
Context "Windows ACL test" {
55
BeforeAll {
6+
$originalDefaultParameterValues = $PSDefaultParameterValues.Clone()
67
$PSDefaultParameterValues["It:Skip"] = -not $IsWindows
78
}
89

@@ -103,7 +104,7 @@ Describe "Acl cmdlets are available and operate properly" -Tag CI {
103104
}
104105

105106
AfterAll {
106-
$PSDefaultParameterValues.Remove("It:Skip")
107+
$global:PSDefaultParameterValues = $originalDefaultParameterValues
107108
}
108109
}
109110
}

test/powershell/engine/ETS/CimAdapter.Tests.ps1

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33

44
Describe "CIM Objects are adapted properly" -Tag @("CI") {
55
BeforeAll {
6+
$originalDefaultParameterValues = $PSDefaultParameterValues.Clone()
7+
68
function getIndex
79
{
810
param([string[]]$strings,[string]$pattern)
@@ -32,7 +34,7 @@ Describe "CIM Objects are adapted properly" -Tag @("CI") {
3234
}
3335
}
3436
AfterAll {
35-
$PSDefaultParameterValues.Remove("it:pending")
37+
$global:PSDefaultParameterValues = $originalDefaultParameterValues
3638
}
3739

3840
It "Namespace-qualified Win32_Process is present" -Skip:(!$IsWindows) {

test/powershell/engine/Remoting/RemoteSession.Basic.Tests.ps1

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,9 +83,7 @@ Describe "JEA session Transcript script test" -Tag @("Feature", 'RequireAdminOnW
8383
AfterAll {
8484
if ($skipTest) {
8585
Pop-DefaultParameterValueStack
86-
return
8786
}
88-
Pop-DefaultParameterValueStack
8987
}
9088

9189
It "Configuration name should be in the transcript header" {

test/powershell/engine/Remoting/SessionOption.Tests.ps1

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# Copyright (c) Microsoft Corporation.
22
# Licensed under the MIT License.
33
try {
4+
$originalDefaultParameterValues = $PSDefaultParameterValues.Clone()
45
if ( ! $IsWindows ) {
56
$PSDefaultParameterValues['it:skip'] = $true
67
}
@@ -52,5 +53,5 @@ try {
5253
}
5354
}
5455
finally {
55-
$PSDefaultParameterValues.remove("it:skip")
56+
$global:PSDefaultParameterValues = $originalDefaultParameterValues
5657
}

test/powershell/engine/Security/FileSignature.Tests.ps1

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ Describe "Windows file content signatures" -Tags @('Feature', 'RequireAdminOnWin
8989

9090
AfterAll {
9191
if ($shouldSkip) {
92+
Pop-DefaultParameterValueStack
9293
return
9394
}
9495

0 commit comments

Comments
 (0)