Files
runner-images-sangeeth/images/win/scripts/Tests/Android.Tests.ps1
Mikhail Timofeev 6e7af98600 [Windows] Switch android tools installation to use cmdline-tools' sdkmanager (#3682)
* Switch android installation to use cmdline-tools
* Rename update-android sdk to install-android sdk as for the other OSs
* Remove cmdline-tools installation from toolset as it's installed
* Regenerate licenses for the new sdkmanager
* Add tests to check that both sdkmanagers are available
* Simplify Get-AndroidInstalledPackages function to use list_installed

* Resolve nitpicks from @AlenaSviridenko
* Add extra lines to separate comments from the code
* Remove extra line after $androidNDKs

* Modify software report to output any version number

* Change regex pattern to output the group
* Currently the function returns 4. instead of 4.0, this change fixes it
2021-07-07 15:16:35 +03:00

103 lines
4.3 KiB
PowerShell

Import-Module (Join-Path $PSScriptRoot "..\SoftwareReport\SoftwareReport.Android.psm1") -DisableNameChecking
Describe "Android SDK" {
$androidToolset = (Get-ToolsetContent).android
$androidPackages = Get-AndroidPackages -AndroidSDKManagerPath (Get-AndroidSDKManagerPath)
$androidInstalledPackages = Get-AndroidInstalledPackages
$ndkLTSMajorVersion = $androidToolset.ndk.lts
$ndkLatestMajorVersion = $androidToolset.ndk.latest
$platformTestCases = @()
[int]$platformMinVersion = $androidToolset.platform_min_version
$platformListByVersion = Get-AndroidPackagesByVersion -AndroidPackages $androidPackages `
-PrefixPackageName "platforms;" `
-MinimumVersion $platformMinVersion `
-Delimiter "-" `
-Index 1
$platformListByName = Get-AndroidPackagesByName -AndroidPackages $androidPackages `
-PrefixPackageName "platforms;" | Where-Object {$_ -match "-\D+$"}
$platformList = $platformListByVersion + $platformListByName
$platformList | ForEach-Object {
$platformTestCases += @{ platformVersion = $_; installedPackages = $androidInstalledPackages }
}
$buildToolsTestCases = @()
[version]$buildToolsMinVersion = $androidToolset.build_tools_min_version
$buildToolsList = Get-AndroidPackagesByVersion -AndroidPackages $androidPackages `
-PrefixPackageName "build-tools;" `
-MinimumVersion $buildToolsMinVersion `
-Delimiter ";" `
-Index 1
$buildToolsList | ForEach-Object {
$buildToolsTestCases += @{ buildToolsVersion = $_; installedPackages = $androidInstalledPackages }
}
$extraPackagesTestCases = @()
$extraPackageList = $androidToolset.extra_list
$extraPackageList | ForEach-Object {
$extraPackagesTestCases += @{ extraPackage = $_; installedPackages = $androidInstalledPackages }
}
$addonsTestCases = @()
$addonsPackageList = $androidToolset.addon_list
$addonsPackageList | ForEach-Object {
$addonsTestCases += @{ addonPackage = $_; installedPackages = $androidInstalledPackages }
}
$additionalToolsTestCases = @()
$additionalToolsList = $androidToolset.additional_tools
$additionalToolsList | ForEach-Object {
$additionalToolsTestCases += @{ additionalToolVersion = $_; installedPackages = $androidInstalledPackages }
}
Context "SDKManagers" {
$testCases = @(
@{
PackageName = "SDK tools"
Sdkmanager = "$env:ANDROID_HOME\tools\bin\sdkmanager.bat"
},
@{
PackageName = "Command-line tools"
Sdkmanager = "$env:ANDROID_HOME\cmdline-tools\latest\bin\sdkmanager.bat"
}
)
It "Sdkmanager from <PackageName> is available" -TestCases $testCases {
"$Sdkmanager --list" | Should -ReturnZeroExitCode
}
}
Context "Packages" {
It "Platform version <platformVersion> is installed" -TestCases $platformTestCases {
"$installedPackages" | Should -Match "$platformVersion"
}
It "Platform build tools <buildToolsVersion> is installed" -TestCases $buildToolsTestCases {
"$installedPackages" | Should -Match "$buildToolsVersion"
}
if (Test-IsWin19) {
It "Extra package <extraPackage> is installed" -TestCases $extraPackagesTestCases {
"$installedPackages" | Should -Match "extras;$extraPackage"
}
It "Addon package <addonPackage> is installed" -TestCases $addonsTestCases {
"$installedPackages" | Should -Match "add-ons;$addonPackage"
}
}
It "Additional tool <additionalToolVersion> is installed" -TestCases $additionalToolsTestCases {
"$installedPackages" | Should -Match $additionalToolVersion
}
It "LTS NDK is installed" -TestCases @(@{ ndkLTSVersion = $ndkLTSMajorVersion; installedPackages = $androidInstalledPackages }) {
"$installedPackages" | Should -Match "ndk;$ndkLTSVersion"
}
It "Latest NDK is installed" -TestCases @(@{ ndkLatestVersion = $ndkLatestMajorVersion; installedPackages = $androidInstalledPackages }) {
"$installedPackages" | Should -Match "ndk;$ndkLatestVersion"
}
}
}