2020-07-21 09:50:01 +03:00
Describe "Azure Cosmos DB Emulator" {
$cosmosDbEmulatorRegKey = Get-ChildItem "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*" | Get-ItemProperty | Where-Object { $_ . DisplayName -eq 'Azure Cosmos DB Emulator' }
$installDir = $cosmosDbEmulatorRegKey . InstallLocation
It "Azure Cosmos DB Emulator install location registry key exists" -TestCases @ { installDir = $installDir } {
$installDir | Should -Not -BeNullOrEmpty
}
It "Azure Cosmos DB Emulator exe file exists" -TestCases @ { installDir = $installDir } {
$exeFilePath = Join-Path $installDir 'CosmosDB.Emulator.exe'
$exeFilePath | Should -Exist
}
}
Describe "Bazel" {
It "<ToolName>" -TestCases @ (
@ { ToolName = "bazel" }
@ { ToolName = "bazelisk" }
) {
" $ToolName --version" | Should -ReturnZeroExitCode
}
}
2023-10-04 15:31:00 +01:00
Describe "CodeQL Bundle" {
It "Single distribution installed" {
2023-12-11 22:23:36 +01:00
$CodeQLVersionsWildcard = Join-Path $env:AGENT_TOOLSDIRECTORY -ChildPath "CodeQL" | Join-Path -ChildPath "*"
2023-10-04 15:31:00 +01:00
$CodeQLVersionPath = Get-ChildItem $CodeQLVersionsWildcard | Should -HaveCount 1
2020-09-09 15:50:49 +01:00
}
2023-01-29 05:46:43 -08:00
2023-10-04 15:31:00 +01:00
It "Contains CodeQL executable" {
2023-12-11 22:23:36 +01:00
$CodeQLVersionsWildcard = Join-Path $env:AGENT_TOOLSDIRECTORY -ChildPath "CodeQL" | Join-Path -ChildPath "*"
2023-10-04 15:31:00 +01:00
$CodeQLVersionPath = Get-ChildItem $CodeQLVersionsWildcard | Sort-Object -Descending | Select-Object -First 1 -Expand FullName
$CodeQLPath = Join-Path $CodeQLVersionPath -ChildPath "x64" | Join-Path -ChildPath "codeql" | Join-Path -ChildPath "codeql.exe"
" $CodeQLPath version --quiet" | Should -ReturnZeroExitCode
2023-01-29 05:46:43 -08:00
}
2023-10-04 15:31:00 +01:00
It "Contains CodeQL packs" {
2023-12-11 22:23:36 +01:00
$CodeQLVersionsWildcard = Join-Path $env:AGENT_TOOLSDIRECTORY -ChildPath "CodeQL" | Join-Path -ChildPath "*"
2023-10-04 15:31:00 +01:00
$CodeQLVersionPath = Get-ChildItem $CodeQLVersionsWildcard | Sort-Object -Descending | Select-Object -First 1 -Expand FullName
$CodeQLPacksPath = Join-Path $CodeQLVersionPath -ChildPath "x64" | Join-Path -ChildPath "codeql" | Join-Path -ChildPath "qlpacks"
$CodeQLPacksPath | Should -Exist
2023-01-29 05:46:43 -08:00
}
2020-09-09 15:50:49 +01:00
}
2020-07-27 11:41:47 +03:00
Describe "R" {
It "Rscript" {
"Rscript --version" | Should -ReturnZeroExitCode
}
}
2020-07-21 09:50:01 +03:00
Describe "DACFx" {
It "DACFx" {
2022-05-26 11:53:27 +02:00
( Get-ItemProperty HKLM : \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Uninstall \*). DisplayName -Contains "Microsoft SQL Server Data-Tier Application Framework" | Should -BeTrue
2025-04-17 14:07:45 +00:00
$sqlPackagePath = 'C:\Program Files\Microsoft SQL Server\170\DAC\bin\SqlPackage.exe'
2020-07-21 09:50:01 +03:00
" ${sqlPackagePath} " | Should -Exist
2021-08-23 11:13:14 +03:00
}
2024-11-29 11:08:29 +01:00
It "SqlLocalDB" -Skip: ( -not ( Test-IsWin19 )) {
2021-08-23 11:13:14 +03:00
$sqlLocalDBPath = 'C:\Program Files\Microsoft SQL Server\130\Tools\Binn\SqlLocalDB.exe'
2020-07-21 09:50:01 +03:00
" ${sqlLocalDBPath} " | Should -Exist
}
2020-07-13 16:17:49 +03:00
}
2024-11-29 11:08:29 +01:00
Describe "DotnetTLS" -Skip: ( -not ( Test-IsWin19 )) {
2020-07-13 16:17:49 +03:00
It "Tls 1.2 is enabled" {
2020-07-14 09:40:02 +03:00
[ Net.ServicePointManager ]:: SecurityProtocol -band "Tls12" | Should -Be Tls12
2020-07-13 16:17:49 +03:00
}
2020-07-15 08:26:27 +03:00
}
2024-11-29 11:08:29 +01:00
Describe "Mercurial" -Skip: ( Test-IsWin25 ) {
2020-07-10 14:29:54 +03:00
It "Mercurial" {
"hg --version" | Should -ReturnZeroExitCode
}
}
2021-01-29 11:38:57 +03:00
Describe "KubernetesTools" {
It "Kind" {
"kind version" | Should -ReturnZeroExitCode
}
2020-07-10 14:29:54 +03:00
It "kubectl" {
2023-08-17 10:26:46 +02:00
"kubectl version --client=true" | Should -ReturnZeroExitCode
2020-07-10 14:29:54 +03:00
}
2021-01-29 11:38:57 +03:00
It "Helm" {
"helm version --short" | Should -ReturnZeroExitCode
}
2020-07-10 14:29:54 +03:00
It "minikube" {
"minikube version --short" | Should -ReturnZeroExitCode
}
}
Describe "Mingw64" {
2020-07-17 15:29:03 +07:00
It "<ToolName>" -TestCases @ (
@ { ToolName = "gcc" }
@ { ToolName = "g++" }
@ { ToolName = "make" }
) {
" $ToolName --version" | Should -ReturnZeroExitCode
2020-07-10 14:29:54 +03:00
}
}
2024-11-29 11:08:29 +01:00
Describe "GoogleCloudCLI" -Skip: ( -not ( Test-IsWin19 )) {
2020-07-17 15:29:03 +07:00
It "<ToolName>" -TestCases @ (
@ { ToolName = "bq" }
@ { ToolName = "gcloud" }
@ { ToolName = "gsutil" }
) {
" $ToolName version" | Should -ReturnZeroExitCode
2020-07-10 14:29:54 +03:00
}
2020-07-17 15:29:03 +07:00
}
2020-07-10 14:29:54 +03:00
2020-07-17 15:29:03 +07:00
Describe "NET48" {
It "NET48" {
2022-12-14 19:53:32 +01:00
Get-ChildItem -Path "${env:ProgramFiles(x86)}\Microsoft SDKs\Windows\*\*\NETFX 4.8 Tools" -Directory | Should -HaveCount 1
2020-07-10 14:29:54 +03:00
}
2020-07-17 15:29:03 +07:00
}
2020-07-10 14:29:54 +03:00
2024-11-29 11:08:29 +01:00
Describe "NSIS" -Skip: ( Test-IsWin25 ) {
2020-07-17 15:29:03 +07:00
It "NSIS" {
2023-12-11 22:23:36 +01:00
"makensis /VERSION" | Should -ReturnZeroExitCode
2020-07-17 15:29:03 +07:00
}
}
2020-07-20 18:57:00 +03:00
Describe "PowerShell Core" {
It "pwsh" {
"pwsh --version" | Should -ReturnZeroExitCode
}
It "Execute 2+2 command" {
pwsh -Command "2+2" | Should -BeExactly 4
}
}
2021-11-22 13:21:03 +01:00
Describe "Sbt" {
2020-07-20 18:57:00 +03:00
It "sbt" {
"sbt --version" | Should -ReturnZeroExitCode
}
}
2021-12-27 23:12:44 +03:00
Describe "ServiceFabricSDK" {
2020-07-20 18:57:00 +03:00
It "PowerShell Module" {
2023-11-29 12:58:37 +01:00
# Ignore PowerShell version check if running in PowerShell Core
# https://github.com/microsoft/service-fabric/issues/1343
if ( $PSVersionTable . PSEdition -eq 'Core' ) {
Get-Module -Name ServiceFabric -SkipEditionCheck -ListAvailable | Should -Not -BeNullOrEmpty
} else {
Get-Module -Name ServiceFabric -ListAvailable | Should -Not -BeNullOrEmpty
}
2020-07-20 18:57:00 +03:00
}
2021-11-23 21:01:37 +03:00
It "ServiceFabricSDK version" {
Get-ItemPropertyValue 'HKLM:\SOFTWARE\Microsoft\Service Fabric\' -Name FabricVersion | Should -Not -BeNullOrEmpty
}
2020-07-30 12:12:49 +05:00
}
Describe "Stack" {
It "Stack" {
"stack --version" | Should -ReturnZeroExitCode
}
}
Describe "Vcpkg" {
It "vcpkg" {
2022-09-08 17:29:02 +02:00
"vcpkg version" | Should -ReturnZeroExitCode
2020-07-30 12:12:49 +05:00
}
It "env variable VCPKG_INSTALLATION_ROOT is set" {
2022-09-08 17:29:02 +02:00
$env:VCPKG_INSTALLATION_ROOT | Should -Not -BeNullOrEmpty
2020-07-30 12:12:49 +05:00
}
2022-10-24 12:23:14 +02:00
2022-10-25 09:30:50 +02:00
It "VCPKG_INSTALLATION_ROOT directory" {
$env:VCPKG_INSTALLATION_ROOT | Should -Exist
2020-07-30 12:12:49 +05:00
}
}
2024-11-29 11:08:29 +01:00
Describe "VCRedist" -Skip: ( -not ( Test-IsWin19 )) {
2022-08-01 15:35:36 +02:00
It "vcredist_2010_x64" {
2021-09-29 09:40:01 +03:00
"HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{1D8E6291-B0D5-35EC-8441-6616F567A0F7}" | Should -Exist
"C:\Windows\System32\msvcr100.dll" | Should -Exist
}
}
2021-12-27 23:12:44 +03:00
Describe "WebPlatformInstaller" {
2020-08-08 08:01:33 +03:00
It "WebPlatformInstaller" {
"WebPICMD" | Should -ReturnZeroExitCode
}
}
2020-07-30 12:12:49 +05:00
Describe "Zstd" {
It "zstd" {
"zstd -V" | Should -ReturnZeroExitCode
}
}
2020-10-08 16:57:24 +03:00
Describe "Pipx" {
It "Pipx" {
"pipx --version" | Should -ReturnZeroExitCode
}
}
2021-09-16 11:35:11 +03:00
Describe "Kotlin" {
2024-11-28 11:04:06 +01:00
$kotlinPackages = @ ( "kapt" , "kotlin" , "kotlinc" , "kotlinc-js" , "kotlinc-jvm" )
2021-09-16 11:35:11 +03:00
2023-12-11 22:23:36 +01:00
It "<toolName> is available" -TestCases ( $kotlinPackages | ForEach-Object { @ { toolName = $_ } }) {
2021-09-16 11:35:11 +03:00
" $toolName -version" | Should -ReturnZeroExitCode
}
2021-11-22 13:21:03 +01:00
}
2022-01-20 15:59:37 +03:00
2022-08-01 15:35:36 +02:00
Describe "SQL OLEDB Driver" {
2022-01-20 15:59:37 +03:00
It "SQL OLEDB Driver" {
"HKLM:\SOFTWARE\Microsoft\MSOLEDBSQL" | Should -Exist
}
2022-08-11 16:45:40 +02:00
}
2023-03-28 10:42:14 +02:00
Describe "OpenSSL" {
2023-09-26 09:35:12 +02:00
It "OpenSSL Version" {
2023-03-31 16:30:04 +02:00
$OpenSSLVersion = ( Get-ToolsetContent ). openssl . version
openssl version | Should -BeLike "* ${OpenSSLVersion} *"
2023-03-28 10:42:14 +02:00
}
2023-09-26 09:35:12 +02:00
It "OpenSSL Path" {
( Get-Command openssl ). Source -eq ( Join-Path ${ env : ProgramFiles } 'OpenSSL\bin\openssl.exe' ) | Should -Be $true
}
It "OpenSSL Full package" {
Join-Path ${ env : ProgramFiles } 'OpenSSL\include' | Should -Exist
}
2023-03-28 10:42:14 +02:00
}