mirror of
https://github.com/actions/runner-images.git
synced 2025-12-14 05:07:02 +00:00
[ubuntu] Refactor test helpers (#8938)
* [ubuntu] Refactor test helpers * [ubuntu] Adjust help comment
This commit is contained in:
committed by
GitHub
parent
5ed2615017
commit
ff1dc02cbc
@@ -11,7 +11,7 @@ Describe "MongoDB" -Skip:(Test-IsUbuntu22) {
|
|||||||
Describe "PostgreSQL" {
|
Describe "PostgreSQL" {
|
||||||
It "PostgreSQL Service" {
|
It "PostgreSQL Service" {
|
||||||
"sudo systemctl start postgresql" | Should -ReturnZeroExitCode
|
"sudo systemctl start postgresql" | Should -ReturnZeroExitCode
|
||||||
"pg_isready" | Should -MatchCommandOutput "/var/run/postgresql:5432 - accepting connections"
|
"pg_isready" | Should -OutputTextMatchingRegex "/var/run/postgresql:5432 - accepting connections"
|
||||||
"sudo systemctl stop postgresql" | Should -ReturnZeroExitCode
|
"sudo systemctl stop postgresql" | Should -ReturnZeroExitCode
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,13 +1,32 @@
|
|||||||
Import-Module "$PSScriptRoot/../helpers/Common.Helpers.psm1" -DisableNameChecking
|
Import-Module "$PSScriptRoot/../helpers/Common.Helpers.psm1" -DisableNameChecking
|
||||||
|
|
||||||
# Validates that tool is installed and in PATH
|
|
||||||
function Validate-ToolExist($tool) {
|
|
||||||
Get-Command $tool -ErrorAction SilentlyContinue | Should -BeTrue
|
|
||||||
}
|
|
||||||
|
|
||||||
function Invoke-PesterTests {
|
function Invoke-PesterTests {
|
||||||
|
<#
|
||||||
|
.SYNOPSIS
|
||||||
|
Runs Pester tests based on the provided test file and test name.
|
||||||
|
|
||||||
|
.DESCRIPTION
|
||||||
|
The Invoke-PesterTests function runs Pester tests based on the provided test file and test name.
|
||||||
|
|
||||||
|
.PARAMETER TestFile
|
||||||
|
The name of the test file to run. This should be the base name of the test file without the extension.
|
||||||
|
Using "*" will run all tests from all test files.
|
||||||
|
|
||||||
|
.PARAMETER TestName
|
||||||
|
The name of the specific test to run. If provided, only the test with the matching name will be executed.
|
||||||
|
|
||||||
|
.EXAMPLE
|
||||||
|
Invoke-PesterTests -TestFile "MyTests" -TestName "Test1"
|
||||||
|
Runs the test named "Test1" from the test file "MyTests.Tests.ps1".
|
||||||
|
|
||||||
|
.EXAMPLE
|
||||||
|
Invoke-PesterTests -TestFile "*"
|
||||||
|
Runs all tests from all test files
|
||||||
|
|
||||||
|
#>
|
||||||
Param(
|
Param(
|
||||||
[Parameter(Mandatory)][string] $TestFile,
|
[Parameter(Mandatory = $true)]
|
||||||
|
[string] $TestFile,
|
||||||
[string] $TestName
|
[string] $TestName
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -17,7 +36,7 @@ function Invoke-PesterTests {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# Check that Pester module is imported
|
# Check that Pester module is imported
|
||||||
if (!(Get-Module "Pester")) {
|
if (-not (Get-Module "Pester")) {
|
||||||
Import-Module Pester
|
Import-Module Pester
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -43,6 +62,29 @@ function Invoke-PesterTests {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function ShouldReturnZeroExitCode {
|
function ShouldReturnZeroExitCode {
|
||||||
|
<#
|
||||||
|
.SYNOPSIS
|
||||||
|
Implements a custom Should-operator for the Pester framework.
|
||||||
|
|
||||||
|
.DESCRIPTION
|
||||||
|
This function is used to check if a command has returned a zero exit code.
|
||||||
|
It can be used by registering it using the Add-ShouldOperator function in Pester.
|
||||||
|
|
||||||
|
.PARAMETER ActualValue
|
||||||
|
The actual value to be checked.
|
||||||
|
|
||||||
|
.PARAMETER Negate
|
||||||
|
A switch parameter that, when specified, negates the result of the check.
|
||||||
|
|
||||||
|
.PARAMETER Because
|
||||||
|
An optional string that provides additional context or explanation for the check.
|
||||||
|
|
||||||
|
.NOTES
|
||||||
|
This function is designed to be used with the Pester framework.
|
||||||
|
|
||||||
|
.LINK
|
||||||
|
https://pester.dev/docs/assertions/custom-assertions
|
||||||
|
#>
|
||||||
Param(
|
Param(
|
||||||
[string] $ActualValue,
|
[string] $ActualValue,
|
||||||
[switch] $Negate,
|
[switch] $Negate,
|
||||||
@@ -67,7 +109,30 @@ function ShouldReturnZeroExitCode {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function ShouldMatchCommandOutput {
|
function ShouldOutputTextMatchingRegex {
|
||||||
|
<#
|
||||||
|
.SYNOPSIS
|
||||||
|
Implements a custom Should-operator for the Pester framework.
|
||||||
|
|
||||||
|
.DESCRIPTION
|
||||||
|
This function is used to check if a command outputs text that matches a regular expression.
|
||||||
|
It can be used by registering it using the Add-ShouldOperator function in Pester.
|
||||||
|
|
||||||
|
.PARAMETER ActualValue
|
||||||
|
The actual value to be checked.
|
||||||
|
|
||||||
|
.PARAMETER RegularExpression
|
||||||
|
The regular expression to be used for the check.
|
||||||
|
|
||||||
|
.PARAMETER Negate
|
||||||
|
A switch parameter that, when specified, negates the result of the check.
|
||||||
|
|
||||||
|
.NOTES
|
||||||
|
This function is designed to be used with the Pester framework.
|
||||||
|
|
||||||
|
.LINK
|
||||||
|
https://pester.dev/docs/assertions/custom-assertions
|
||||||
|
#>
|
||||||
Param(
|
Param(
|
||||||
[string] $ActualValue,
|
[string] $ActualValue,
|
||||||
[string] $RegularExpression,
|
[string] $RegularExpression,
|
||||||
@@ -77,9 +142,7 @@ function ShouldMatchCommandOutput {
|
|||||||
$output = (Get-CommandResult $ActualValue -ValidateExitCode $false).Output | Out-String
|
$output = (Get-CommandResult $ActualValue -ValidateExitCode $false).Output | Out-String
|
||||||
[bool] $succeeded = $output -cmatch $RegularExpression
|
[bool] $succeeded = $output -cmatch $RegularExpression
|
||||||
|
|
||||||
if ($Negate) {
|
if ($Negate) { $succeeded = -not $succeeded }
|
||||||
$succeeded = -not $succeeded
|
|
||||||
}
|
|
||||||
|
|
||||||
$failureMessage = ''
|
$failureMessage = ''
|
||||||
|
|
||||||
@@ -100,5 +163,5 @@ function ShouldMatchCommandOutput {
|
|||||||
|
|
||||||
If (Get-Command -Name Add-ShouldOperator -ErrorAction SilentlyContinue) {
|
If (Get-Command -Name Add-ShouldOperator -ErrorAction SilentlyContinue) {
|
||||||
Add-ShouldOperator -Name ReturnZeroExitCode -InternalName ShouldReturnZeroExitCode -Test ${function:ShouldReturnZeroExitCode}
|
Add-ShouldOperator -Name ReturnZeroExitCode -InternalName ShouldReturnZeroExitCode -Test ${function:ShouldReturnZeroExitCode}
|
||||||
Add-ShouldOperator -Name MatchCommandOutput -InternalName ShouldMatchCommandOutput -Test ${function:ShouldMatchCommandOutput}
|
Add-ShouldOperator -Name OutputTextMatchingRegex -InternalName ShouldOutputTextMatchingRegex -Test ${function:ShouldOutputTextMatchingRegex}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -45,6 +45,6 @@ Describe "Java" {
|
|||||||
if ($Version -eq 8) {
|
if ($Version -eq 8) {
|
||||||
$Version = "1.${Version}"
|
$Version = "1.${Version}"
|
||||||
}
|
}
|
||||||
"`"$javaPath`" -version" | Should -MatchCommandOutput "openjdk\ version\ `"${Version}(\.[0-9_\.]+)?`""
|
"`"$javaPath`" -version" | Should -OutputTextMatchingRegex "openjdk\ version\ `"${Version}(\.[0-9_\.]+)?`""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -281,7 +281,7 @@ Describe "Kubernetes tools" {
|
|||||||
}
|
}
|
||||||
|
|
||||||
It "kubectl" {
|
It "kubectl" {
|
||||||
"kubectl version --client=true" | Should -MatchCommandOutput "Client Version: v"
|
"kubectl version --client=true" | Should -OutputTextMatchingRegex "Client Version: v"
|
||||||
}
|
}
|
||||||
|
|
||||||
It "helm" {
|
It "helm" {
|
||||||
@@ -341,7 +341,7 @@ Describe "Containers" {
|
|||||||
|
|
||||||
# https://github.com/actions/runner-images/issues/7753
|
# https://github.com/actions/runner-images/issues/7753
|
||||||
It "podman networking" -TestCases "podman CNI plugins" {
|
It "podman networking" -TestCases "podman CNI plugins" {
|
||||||
"podman network create -d bridge test-net && podman network ls" | Should -Not -MatchCommandOutput "Error"
|
"podman network create -d bridge test-net && podman network ls" | Should -Not -OutputTextMatchingRegex "Error"
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -382,7 +382,7 @@ Describe "Ruby" {
|
|||||||
if ($gemTestCases)
|
if ($gemTestCases)
|
||||||
{
|
{
|
||||||
It "Gem <gemName> is installed" -TestCases $gemTestCases {
|
It "Gem <gemName> is installed" -TestCases $gemTestCases {
|
||||||
"gem list -i '^$gemName$'" | Should -MatchCommandOutput "true"
|
"gem list -i '^$gemName$'" | Should -OutputTextMatchingRegex "true"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user