fix tests

This commit is contained in:
Maxim Lobanov
2020-11-03 09:13:58 +03:00
parent 8f1f707032
commit 8c96dbb9bb
3 changed files with 56 additions and 43 deletions

View File

@@ -99,7 +99,7 @@ function Build-XcodeTable {
} }
} }
function Get-XcodeDevicesList { function Build-XcodeDevicesList {
param ( param (
[Parameter(Mandatory)][object] $XcodeInfo, [Parameter(Mandatory)][object] $XcodeInfo,
[Parameter(Mandatory)][object] $Runtime [Parameter(Mandatory)][object] $Runtime
@@ -188,7 +188,7 @@ function Build-XcodeSimulatorsTable {
$xcodeInfo.Values | ForEach-Object { $xcodeInfo.Values | ForEach-Object {
$runtimeFound = $_.SimulatorsInfo.runtimes | Where-Object { $_.identifier -eq $runtime.identifier } | Select-Object -First 1 $runtimeFound = $_.SimulatorsInfo.runtimes | Where-Object { $_.identifier -eq $runtime.identifier } | Select-Object -First 1
if ($runtimeFound) { if ($runtimeFound) {
$devicesToAdd = Get-XcodeDevicesList -XcodeInfo $_ -Runtime $runtimeFound $devicesToAdd = Build-XcodeDevicesList -XcodeInfo $_ -Runtime $runtimeFound
$runtimeDevices += $devicesToAdd | Select-Object -ExpandProperty name $runtimeDevices += $devicesToAdd | Select-Object -ExpandProperty name
$xcodeList += $_.VersionInfo.Version $xcodeList += $_.VersionInfo.Version
} }

View File

@@ -136,11 +136,15 @@
"scripts": [ "scripts": [
"./provision/core/xcode-clt.sh", "./provision/core/xcode-clt.sh",
"./provision/core/homebrew.sh", "./provision/core/homebrew.sh",
"./provision/core/dotnet.sh",
"./provision/core/python.sh",
"./provision/core/azcopy.sh", "./provision/core/azcopy.sh",
"./provision/core/openssl.sh", "./provision/core/openssl.sh",
"./provision/core/ruby.sh", "./provision/core/ruby.sh",
"./provision/core/rubygem.sh", "./provision/core/rubygem.sh",
"./provision/core/powershell.sh" "./provision/core/powershell.sh",
"./provision/core/git.sh",
"./provision/core/node.sh"
] ]
}, },
{ {

View File

@@ -8,45 +8,53 @@ $latestXcodeVersion = $xcodeVersions | Select-Object -First 1
$os = Get-OSVersion $os = Get-OSVersion
Describe "Xcode" { Describe "Xcode" {
$defaultXcodeTestCase = @{ DefaultXcode = $defaultXcode }
It "Default Xcode is <DefaultXcode>" -TestCases $defaultXcodeTestCase {
"xcodebuild -version" | Should -ReturnZeroExitCode
(Get-CommandResult "xcodebuild -version").Output | Should -BeLike "Xcode ${DefaultXcode}.*"
}
It "Xcode.app points to default Xcode" -TestCases $defaultXcodeTestCase {
$xcodeApp = "/Applications/Xcode.app"
$expectedTarget = Get-XcodeRootPath -Version $DefaultXcode
$xcodeApp | Should -Exist
$expectedTarget | Should -Exist
(Get-Item $xcodeApp).Target | Should -Be $expectedTarget
}
$testCases = $xcodeVersions | ForEach-Object { @{ XcodeVersion = $_.link; LatestXcodeVersion = $xcodeVersions[0].link; Symlinks = $_.symlinks } } $testCases = $xcodeVersions | ForEach-Object { @{ XcodeVersion = $_.link; LatestXcodeVersion = $xcodeVersions[0].link; Symlinks = $_.symlinks } }
It "<XcodeVersion>" -TestCases $testCases { Context "Versions" {
$xcodebuildPath = Get-XcodeToolPath -Version $XcodeVersion -ToolName "xcodebuild" It "<XcodeVersion>" -TestCases $testCases {
"$xcodebuildPath -version" | Should -ReturnZeroExitCode $xcodebuildPath = Get-XcodeToolPath -Version $XcodeVersion -ToolName "xcodebuild"
} "$xcodebuildPath -version" | Should -ReturnZeroExitCode
It "Xcode <XcodeVersion> tools are installed" -TestCases $testCases -Skip:($os.IsHighSierra) {
$TOOLS_NOT_INSTALLED_EXIT_CODE = 69
$xcodebuildPath = Get-XcodeToolPath -Version $XcodeVersion -ToolName "xcodebuild"
$result = Get-CommandResult "$xcodebuildPath -checkFirstLaunchStatus"
if ($XcodeVersion -ne $LatestXcodeVersion) {
$result.ExitCode | Should -Not -Be $TOOLS_NOT_INSTALLED_EXIT_CODE
} else {
$result.ExitCode | Should -BeIn (0, $TOOLS_NOT_INSTALLED_EXIT_CODE)
} }
} }
It "Xcode <XcodeVersion> has correct beta symlink" -TestCases $testCases { Context "Default" {
$sourcePath = Get-XcodeRootPath -Version $XcodeVersion $defaultXcodeTestCase = @{ DefaultXcode = $defaultXcode }
$Symlinks | ForEach-Object { It "Default Xcode is <DefaultXcode>" -TestCases $defaultXcodeTestCase {
$targetPath = Get-XcodeRootPath -Version $_ "xcodebuild -version" | Should -ReturnZeroExitCode
$targetPath | Should -Exist (Get-CommandResult "xcodebuild -version").Output | Should -BeLike "Xcode ${DefaultXcode}.*"
(Get-Item $targetPath).Target | Should -Be $sourcePath }
It "Xcode.app points to default Xcode" -TestCases $defaultXcodeTestCase {
$xcodeApp = "/Applications/Xcode.app"
$expectedTarget = Get-XcodeRootPath -Version $DefaultXcode
$xcodeApp | Should -Exist
$expectedTarget | Should -Exist
(Get-Item $xcodeApp).Target | Should -Be $expectedTarget
}
}
Context "Additional tools" {
It "Xcode <XcodeVersion> tools are installed" -TestCases $testCases -Skip:($os.IsHighSierra) {
$TOOLS_NOT_INSTALLED_EXIT_CODE = 69
$xcodebuildPath = Get-XcodeToolPath -Version $XcodeVersion -ToolName "xcodebuild"
$result = Get-CommandResult "$xcodebuildPath -checkFirstLaunchStatus"
if ($XcodeVersion -ne $LatestXcodeVersion) {
$result.ExitCode | Should -Not -Be $TOOLS_NOT_INSTALLED_EXIT_CODE
} else {
$result.ExitCode | Should -BeIn (0, $TOOLS_NOT_INSTALLED_EXIT_CODE)
}
}
}
Context "Symlinks" {
It "Xcode <XcodeVersion> has correct symlinks" -TestCases $testCases {
$sourcePath = Get-XcodeRootPath -Version $XcodeVersion
$Symlinks | Where-Object { $_ } | ForEach-Object {
$targetPath = Get-XcodeRootPath -Version $_
$targetPath | Should -Exist
(Get-Item $targetPath).Target | Should -Be $sourcePath
}
} }
} }
@@ -82,23 +90,24 @@ Describe "XCODE_DEVELOPER_DIR variables" {
} }
Describe "Xcode simulators" { Describe "Xcode simulators" {
$xcodeVersions | Where-Object { Test-XcodeStableRelease -Version $_ } | ForEach-Object { $xcodeVersions.link | Where-Object { Test-XcodeStableRelease -Version $_ } | ForEach-Object {
Switch-Xcode -Version $_
Context "$_" { Context "$_" {
It "No duplicates in devices" { $testCase = @{ XcodeVersion = $_ }
It "No duplicates in devices" -TestCases $testCase {
Switch-Xcode -Version $XcodeVersion
[array]$devicesList = @(Get-XcodeDevicesList | Where-Object { $_ }) [array]$devicesList = @(Get-XcodeDevicesList | Where-Object { $_ })
Validate-ArrayWithoutDuplicates $devicesList -Because "Found duplicate device simulators" Validate-ArrayWithoutDuplicates $devicesList -Because "Found duplicate device simulators"
} }
It "No duplicates in pairs" { It "No duplicates in pairs" -TestCases $testCase {
Switch-Xcode -Version $XcodeVersion
[array]$pairsList = @(Get-XcodePairsList | Where-Object { $_ }) [array]$pairsList = @(Get-XcodePairsList | Where-Object { $_ })
Validate-ArrayWithoutDuplicates $pairsList -Because "Found duplicate pairs simulators" Validate-ArrayWithoutDuplicates $pairsList -Because "Found duplicate pairs simulators"
} }
} }
} }
AfterAll { AfterEach {
$defaultXcode = Get-ToolsetValue "xcode.default" $defaultXcode = Get-ToolsetValue "xcode.default"
Switch-Xcode -Version $defaultXcode Switch-Xcode -Version $defaultXcode
} }