Skip to content

Commit

Permalink
Update to use windows-latest as the build agent image (#17418)
Browse files Browse the repository at this point in the history
* Update to use 'windows-latest' as the build agent image

* Update additional files

* debug test failures

* Added some more wincompat debug info

* Added some more wincompat debug info 2

* Stabilizing some wincompat tests when they are run on OS with compatibility-bugged WindowsPS buitin modules

* Stabilizing some wincompat tests

* Add verbose message to 'Enable-WSManCredSSP' test

* More debugging

* Make the 'Enable-WSManCredSSP' test more stable

* Address feedback

* remove broken tests

* Fix Spelling

* remove more broken TLS tests

* remove broken tests

Co-authored-by: Dongbo Wang <dongbow@microsoft.com>
Co-authored-by: unknown <anmenaga@microsoft.com>
Co-authored-by: Travis Plunk <github@ez13.net>
  • Loading branch information
4 people committed Jun 1, 2022
1 parent 24acc42 commit a3385b9
Show file tree
Hide file tree
Showing 11 changed files with 39 additions and 36 deletions.
5 changes: 5 additions & 0 deletions .spelling
Expand Up @@ -1133,6 +1133,10 @@ Microsoft.Management.UI.Internal
StringComparison
osx-arm64
crossgen2
mcr.microsoft.com
global.json
sha256
PkgES
- CHANGELOG.md
aavdberg
asrosent
Expand Down Expand Up @@ -1410,6 +1414,7 @@ ThirdPartyNotices.txt
rtm.21527.11
SKUs
vmImage
Ubuntu22.04
- CHANGELOG/7.0.md
codesign
release-BuildJson
Expand Down
2 changes: 1 addition & 1 deletion .vsts-ci/templates/ci-build.yml
@@ -1,5 +1,5 @@
parameters:
pool: 'vs2017-win2016'
pool: 'windows-latest'
jobName: 'win_build'
displayName: Windows Build

Expand Down
4 changes: 2 additions & 2 deletions .vsts-ci/templates/credscan.yml
@@ -1,12 +1,12 @@
parameters:
pool: 'Hosted VS2017'
pool: 'windows-latest'
jobName: 'credscan'
displayName: Secret Scan

jobs:
- job: ${{ parameters.jobName }}
pool:
name: ${{ parameters.pool }}
vmImage: ${{ parameters.pool }}

displayName: ${{ parameters.displayName }}

Expand Down
2 changes: 1 addition & 1 deletion .vsts-ci/templates/nanoserver.yml
@@ -1,5 +1,5 @@
parameters:
vmImage: 'windows-2019'
vmImage: 'windows-latest'
jobName: 'Nanoserver_Tests'
continueOnError: false

Expand Down
2 changes: 1 addition & 1 deletion .vsts-ci/templates/verify-xunit.yml
@@ -1,6 +1,6 @@
parameters:
parentJobs: []
pool: 'vs2017-win2016'
pool: 'windows-latest'
jobName: 'xunit_verify'

jobs:
Expand Down
4 changes: 2 additions & 2 deletions .vsts-ci/templates/windows-test.yml
@@ -1,5 +1,5 @@
parameters:
pool: 'Hosted VS2017'
pool: 'windows-latest'
parentJobs: []
purpose: ''
tagSet: 'CI'
Expand All @@ -9,7 +9,7 @@ jobs:
dependsOn:
${{ parameters.parentJobs }}
pool:
name: ${{ parameters.pool }}
vmImage: ${{ parameters.pool }}

displayName: Windows Test - ${{ parameters.purpose }} - ${{ parameters.tagSet }}

Expand Down
2 changes: 1 addition & 1 deletion .vsts-ci/windows-daily.yml
Expand Up @@ -53,7 +53,7 @@ stages:
jobs:
- job: win_test
pool:
vmImage: vs2017-win2016
vmImage: windows-latest
displayName: Windows Test
timeoutInMinutes: 90

Expand Down
4 changes: 2 additions & 2 deletions .vsts-ci/windows/templates/windows-packaging.yml
@@ -1,6 +1,6 @@
parameters:
- name: pool
default: 'Hosted VS2017'
default: 'windows-latest'
- name: jobName
default: 'win_packaging'
- name: runtimePrefix
Expand All @@ -24,7 +24,7 @@ jobs:
value: $(Agent.BuildDirectory)\$(complianceRepoFolder)

pool:
name: ${{ parameters.pool }}
vmImage: ${{ parameters.pool }}

displayName: Windows Packaging - ${{ parameters.architecture }} - ${{ parameters.channel }}

Expand Down
Expand Up @@ -584,9 +584,14 @@ Describe "Additional tests for Import-Module with WinCompat" -Tag "Feature" {

It "NoClobber WinCompat import works for an engine module through -UseWindowsPowerShell parameter" {

# pre-test cleanup
Get-Module -Name Microsoft.PowerShell.Management | Remove-Module
Import-Module -Name Microsoft.PowerShell.Management # import the one that comes with PSCore

Import-Module Microsoft.PowerShell.Management -UseWindowsPowerShell

$modules = Get-Module -Name Microsoft.PowerShell.Management

$modules.Count | Should -Be 2
$proxyModule = $modules | Where-Object {$_.ModuleType -eq 'Script'}
$coreModule = $modules | Where-Object {$_.ModuleType -eq 'Manifest'}
Expand Down Expand Up @@ -656,6 +661,10 @@ Describe "Additional tests for Import-Module with WinCompat" -Tag "Feature" {
Restore-ModulePath
}

BeforeEach {
Get-PSSession -Name WinPSCompatSession -ErrorAction SilentlyContinue | Remove-PSSession
}

AfterEach {
Get-Module $allModules | Remove-Module -Force
}
Expand Down
Expand Up @@ -1718,22 +1718,12 @@ Describe "Invoke-WebRequest tests" -Tags "Feature", "RequireAdminOnWindows" {
## Test cases for the 1st 'It'
$testCases1 = @(
@{ Test = @{SslProtocol = 'Default'; ActualProtocol = 'Default'}; Pending = $false }
@{ Test = @{SslProtocol = 'Tls'; ActualProtocol = 'Tls'}; Pending = $skipForTls1OnLinux }
@{ Test = @{SslProtocol = 'Tls11'; ActualProtocol = 'Tls11'}; Pending = $skipForTls1OnLinux }
@{ Test = @{SslProtocol = 'Tls12'; ActualProtocol = 'Tls12'}; Pending = $false }
@{ Test = @{SslProtocol = 'Tls13'; ActualProtocol = 'Tls13'}; Pending = $true }
@{ Test = @{SslProtocol = 'Tls, Tls11, Tls12'; ActualProtocol = 'Tls12'}; Pending = $false }
@{ Test = @{SslProtocol = 'Tls, Tls11, Tls12, Tls13'; ActualProtocol = 'Tls13'}; Pending = $true }
@{ Test = @{SslProtocol = 'Tls11, Tls12'; ActualProtocol = 'Tls12'}; Pending = $false }
@{ Test = @{SslProtocol = 'Tls, Tls11, Tls12'; ActualProtocol = 'Tls11'}; Pending = $skipForTls1OnLinux }
@{ Test = @{SslProtocol = 'Tls, Tls11, Tls12, Tls13'; ActualProtocol = 'Tls11'}; Pending = $skipForTls1OnLinux }
@{ Test = @{SslProtocol = 'Tls11, Tls12'; ActualProtocol = 'Tls11'}; Pending = $skipForTls1OnLinux }
@{ Test = @{SslProtocol = 'Tls, Tls11'; ActualProtocol = 'Tls11'}; Pending = $skipForTls1OnLinux }
@{ Test = @{SslProtocol = 'Tls, Tls11, Tls12'; ActualProtocol = 'Tls'}; Pending = $skipForTls1OnLinux }
@{ Test = @{SslProtocol = 'Tls, Tls11, Tls13'; ActualProtocol = 'Tls'}; Pending = $true }
@{ Test = @{SslProtocol = 'Tls, Tls11'; ActualProtocol = 'Tls'}; Pending = $skipForTls1OnLinux }
# Skipping intermediary protocols is not supported on all platforms
@{ Test = @{SslProtocol = 'Tls, Tls12'; ActualProtocol = 'Tls'}; Pending = -not $IsWindows }
@{ Test = @{SslProtocol = 'Tls, Tls12'; ActualProtocol = 'Tls12'}; Pending = -not $IsWindows }
)

Expand Down Expand Up @@ -3248,22 +3238,12 @@ Describe "Invoke-RestMethod tests" -Tags "Feature", "RequireAdminOnWindows" {

$testCases1 = @(
@{ Test = @{SslProtocol = 'Default'; ActualProtocol = 'Default'}; Pending = $false }
@{ Test = @{SslProtocol = 'Tls'; ActualProtocol = 'Tls'}; Pending = $skipForTls1OnLinux }
@{ Test = @{SslProtocol = 'Tls11'; ActualProtocol = 'Tls11'}; Pending = $skipForTls1OnLinux }
@{ Test = @{SslProtocol = 'Tls12'; ActualProtocol = 'Tls12'}; Pending = $false }
@{ Test = @{SslProtocol = 'Tls13'; ActualProtocol = 'Tls13'}; Pending = $true }
@{ Test = @{SslProtocol = 'Tls, Tls11, Tls12'; ActualProtocol = 'Tls12'}; Pending = $false }
@{ Test = @{SslProtocol = 'Tls, Tls11, Tls12, Tls13'; ActualProtocol = 'Tls13'}; Pending = $true }
@{ Test = @{SslProtocol = 'Tls11, Tls12'; ActualProtocol = 'Tls12'}; Pending = $false }
@{ Test = @{SslProtocol = 'Tls, Tls11, Tls12'; ActualProtocol = 'Tls11'}; Pending = $skipForTls1OnLinux }
@{ Test = @{SslProtocol = 'Tls, Tls11, Tls12, Tls13'; ActualProtocol = 'Tls11'}; Pending = $skipForTls1OnLinux }
@{ Test = @{SslProtocol = 'Tls11, Tls12'; ActualProtocol = 'Tls11'}; Pending = $skipForTls1OnLinux }
@{ Test = @{SslProtocol = 'Tls, Tls11'; ActualProtocol = 'Tls11'}; Pending = $skipForTls1OnLinux }
@{ Test = @{SslProtocol = 'Tls, Tls11, Tls12'; ActualProtocol = 'Tls'}; Pending = $skipForTls1OnLinux }
@{ Test = @{SslProtocol = 'Tls, Tls11, Tls13'; ActualProtocol = 'Tls'}; Pending = $true }
@{ Test = @{SslProtocol = 'Tls, Tls11'; ActualProtocol = 'Tls'}; Pending = $skipForTls1OnLinux }
# Skipping intermediary protocols is not supported on all platforms
@{ Test = @{SslProtocol = 'Tls, Tls12'; ActualProtocol = 'Tls'}; Pending = -not $IsWindows }
@{ Test = @{SslProtocol = 'Tls, Tls12'; ActualProtocol = 'Tls12'}; Pending = -not $IsWindows }
)

Expand Down
@@ -1,5 +1,8 @@
# Copyright (c) Microsoft Corporation.
# Licensed under the MIT License.

Import-Module HelpersCommon

Describe "CredSSP cmdlet tests" -Tags 'Feature','RequireAdminOnWindows' {

BeforeAll {
Expand Down Expand Up @@ -44,21 +47,27 @@ Describe "CredSSP cmdlet tests" -Tags 'Feature','RequireAdminOnWindows' {
}

It "Enable-WSManCredSSP works: <description>" -Skip:($NotEnglish -or $IsToBeSkipped) -TestCases @(
@{params=@{Role="Client";DelegateComputer="*"};description="client"},
@{params=@{Role="Server"};description="server"}
@{ params = @{ Role="Client"; DelegateComputer="*" }; description = "client"; expected = "The machine is configured to allow delegating fresh credentials to the following target\(s\):wsman/\*" },
@{ params = @{ Role="Server" }; description = "server"; expected = "This computer is configured to receive credentials from a remote client computer" }
) {
param ($params)
param ($params, $description, $expected)

$c = Enable-WSManCredSSP @params -Force
$c.CredSSP | Should -BeTrue

$c = Get-WSManCredSSP
if ($params.Role -eq "Client")
{
$c[0] | Should -Match "The machine is configured to allow delegating fresh credentials to the following target\(s\):wsman/\*"
Wait-UntilTrue -IntervalInMilliseconds 500 -sb {
$c = Get-WSManCredSSP
$c[0] -match $expected
} | Should -BeTrue -Because "WSManCredSSP should have been enabled to allow delegating fresh credentials to wsman/*, but it was not."
}
else
{
$c[1] | Should -Match "This computer is configured to receive credentials from a remote client computer"
Wait-UntilTrue -IntervalInMilliseconds 500 -sb {
$c = Get-WSManCredSSP
$c[1] -match $expected
} | Should -BeTrue -Because "WSManCredSSP should have been enabled to allow receiving credentials from a remote client computer, but it was not."
}
}

Expand Down

0 comments on commit a3385b9

Please sign in to comment.