mirror of
https://github.com/actions/runner-images.git
synced 2025-12-28 04:38:53 +08:00
* Add ShouldReturnZeroExitCodeWithParam function and a new set of tests for MSYS2 tools * Change get-command -> Get-Command * Remove elevated user, return original path after msys installation and tests, resolve nitpicks * Add BeforeEach and AfterEach blocks These blocks change the path before each test and return the original path after each test * Change get-command -> Get-Command
78 lines
2.1 KiB
PowerShell
78 lines
2.1 KiB
PowerShell
$toolsetContent = (Get-ToolsetContent).MsysPackages
|
|
$archs = $toolsetContent.mingw.arch
|
|
|
|
BeforeAll {
|
|
$msys2Dir = "C:\msys64\usr\bin"
|
|
$originalPath = $env:PATH
|
|
}
|
|
|
|
Describe "MSYS2 packages" {
|
|
BeforeEach {
|
|
$env:PATH = "$msys2Dir;$env:PATH"
|
|
}
|
|
|
|
It "msys2Dir exists" {
|
|
$msys2Dir | Should -Exist
|
|
}
|
|
|
|
$TestCases = @(
|
|
@{ ToolName = "bash.exe" }
|
|
@{ ToolName = "tar.exe" }
|
|
@{ ToolName = "make.exe" }
|
|
)
|
|
|
|
It "<ToolName> is installed in <msys2Dir>" -TestCases $TestCases {
|
|
(Get-Command "$ToolName").Source | Should -BeLike "$msys2Dir*"
|
|
}
|
|
|
|
It "<ToolName> is avaialable" -TestCases $TestCases {
|
|
"$ToolName" | Should -ReturnZeroExitCodeWithParam
|
|
}
|
|
|
|
AfterEach {
|
|
$env:PATH = $originalPath
|
|
}
|
|
}
|
|
|
|
foreach ($arch in $archs) {
|
|
Describe "$arch arch packages" {
|
|
$archPackages = $toolsetContent.mingw | Where-Object { $_.arch -eq $arch }
|
|
$tools = $archPackages.runtime_packages.name
|
|
|
|
if ($arch -eq "mingw-w64-i686")
|
|
{
|
|
$ExecDir = "C:\msys64\mingw32\bin"
|
|
}
|
|
else
|
|
{
|
|
$ExecDir = "C:\msys64\mingw64\bin"
|
|
}
|
|
|
|
foreach ($tool in $tools) {
|
|
Context "$tool package"{
|
|
$executables = ($archPackages.runtime_packages | Where-Object { $_.name -eq $tool }).executables | ForEach-Object {
|
|
@{
|
|
ExecName = $_
|
|
ExecDir = $ExecDir
|
|
}
|
|
}
|
|
|
|
BeforeEach {
|
|
$env:PATH = "$ExecDir;$env:PATH"
|
|
}
|
|
|
|
It "<ExecName> is installed in <ExecDir>" -TestCases $executables {
|
|
(Get-Command "$ExecName").Source | Should -BeLike "$ExecDir*"
|
|
}
|
|
|
|
It "<ExecName> is available" -TestCases $executables {
|
|
"$ExecName" | Should -ReturnZeroExitCodeWithParam
|
|
}
|
|
|
|
AfterEach {
|
|
$env:PATH = $originalPath
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |