[Ubuntu] Migrate tests for Android to Pester (#2313)

* Add Pester tests for Android on Ubuntu

* Minor fix

* Move Get-AndroidPackages to common helpers

* Minor fix

* Delete Android test name for invoke_tests script
This commit is contained in:
Vladimir Safonkin
2020-12-24 12:14:41 +03:00
committed by GitHub
parent 6245d40db7
commit 7f1a7b4177
3 changed files with 75 additions and 0 deletions

View File

@@ -33,3 +33,25 @@ function Get-ToolsetContent {
$toolset = Join-Path $env:INSTALLER_SCRIPT_FOLDER "toolset.json"
Get-Content $toolset -Raw | ConvertFrom-Json
}
function Get-ToolsetValue {
param (
[Parameter(Mandatory = $true)]
[string] $KeyPath
)
$jsonNode = Get-ToolsetContent
$pathParts = $KeyPath.Split(".")
# try to walk through all arguments consequentially to resolve specific json node
$pathParts | ForEach-Object {
$jsonNode = $jsonNode.$_
}
return $jsonNode
}
function Get-AndroidPackages {
$androidSDKManagerPath = "/usr/local/lib/android/sdk/tools/bin/sdkmanager"
$androidPackages = & $androidSDKManagerPath --list --verbose
return $androidPackages
}

View File

@@ -7,6 +7,7 @@
# Source the helpers for use with the script
source $HELPER_SCRIPTS/os.sh
source $HELPER_SCRIPTS/install.sh
source $HELPER_SCRIPTS/invoke-tests.sh
function filter_components_by_version {
minimumVersion=$1
@@ -77,3 +78,5 @@ echo "y" | ${ANDROID_SDK_ROOT}/tools/bin/sdkmanager ${components[@]}
# Add required permissions
chmod -R a+rwx ${ANDROID_SDK_ROOT}
invoke_tests "Android"

View File

@@ -0,0 +1,50 @@
Describe "Android" {
$androidSdkManagerPackages = Get-AndroidPackages
[int]$platformMinVersion = Get-ToolsetValue "android.platform_min_version"
[version]$buildToolsMinVersion = Get-ToolsetValue "android.build_tools_min_version"
$platforms = (($androidSdkManagerPackages | Where-Object { "$_".StartsWith("platforms;") }) -replace 'platforms;', '' |
Where-Object { [int]$_.Split("-")[1] -ge $platformMinVersion } | Sort-Object { [int]$_.Split("-")[1] } -Unique |
ForEach-Object { "platforms/${_}" })
$buildTools = (($androidSdkManagerPackages | Where-Object { "$_".StartsWith("build-tools;") }) -replace 'build-tools;', '' |
Where-Object { [version]$_ -ge $buildToolsMinVersion } | Sort-Object { [version]$_ } -Unique |
ForEach-Object { "build-tools/${_}" })
$androidPackages = @(
$platforms,
$buildTools,
(Get-ToolsetValue "android.extra_list" | ForEach-Object { "extras/${_}" }),
(Get-ToolsetValue "android.addon_list" | ForEach-Object { "add-ons/${_}" }),
(Get-ToolsetValue "android.additional_tools" | ForEach-Object { "${_}" })
) | ForEach-Object { $_ }
BeforeAll {
$ANDROID_SDK_DIR = "/usr/local/lib/android/sdk"
function Validate-AndroidPackage {
param (
[Parameter(Mandatory=$true)]
[string]$PackageName
)
# Convert 'm2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta1' ->
# 'm2repository/com/android/support/constraint/constraint-layout-solver/1.0.0-beta1'
# 'cmake;3.6.4111459' -> 'cmake/3.6.4111459'
# 'patcher;v4' -> 'patcher/v4'
$PackageName = $PackageName.Replace(";", "/")
$targetPath = Join-Path $ANDROID_SDK_DIR $PackageName
$targetPath | Should -Exist
}
}
Context "Packages" {
$testCases = $androidPackages | ForEach-Object { @{ PackageName = $_ } }
It "<PackageName>" -TestCases $testCases {
param ([string] $PackageName)
Validate-AndroidPackage $PackageName
}
}
}