sdk/core/azure-core-amqp/Test-Setup.ps1 (55 lines of code) (raw):
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License.
# cspell: ignore JOBID depsfile
# Load common ES scripts
. "$PSScriptRoot\..\..\..\eng\common\scripts\common.ps1"
# Create the test binary *outside* the repo root to avoid polluting the repo.
$WorkingDirectory = ([System.IO.Path]::Combine($RepoRoot, "../TestArtifacts"))
# Create the working directory if it does not exist.
Write-Host "Using Working Directory $WorkingDirectory"
if (-not (Test-Path $WorkingDirectory)) {
Write-Host "Working directory does not exist, creating working directory: $WorkingDirectory"
New-Item -ItemType Directory -Path $WorkingDirectory
}
Write-Host "Setting current directory to working directory: $WorkingDirectory"
Push-Location -Path $WorkingDirectory
# Clone and build the Test Amqp Broker.
try {
$repositoryUrl = "https://github.com/Azure/azure-amqp.git"
# We would like to use the "hotfix" branch because that is current, but unfortunately it references System.Net.Security version 4.0.0
$repositoryBranch = "master"
$cloneCommand = "git clone $repositoryUrl --branch $repositoryBranch"
Write-Host "Cloning repository from $repositoryUrl..."
Invoke-LoggedCommand $cloneCommand
Set-Location -Path "./azure-amqp/test/TestAmqpBroker"
Invoke-LoggedCommand "dotnet build -p RollForward=LatestMajor --framework net6.0"
if (!$? -ne 0) {
Write-Error "Failed to build TestAmqpBroker."
exit 1
}
Write-Host "Test broker built successfully."
# now that the Test broker has been built, launch the broker on a local address.
Write-Host "Starting test broker listening on ${env:TEST_BROKER_ADDRESS} ..."
Set-Location -Path $WorkingDirectory/azure-amqp/bin/Debug/TestAmqpBroker/net6.0
# $job = dotnet exec ./TestAmqpBroker.dll ${env:TEST_BROKER_ADDRESS} /headless &
$Process = Start-Process -NoNewWindow -FilePath "dotnet" -ArgumentList "exec ./TestAmqpBroker.dll ${env:TEST_BROKER_ADDRESS} /headless" -PassThru -RedirectStandardOutput $WorkingDirectory/test-broker.log -RedirectStandardError $WorkingDirectory/test-broker-error.log
if (!$? -ne 0) {
Write-Error "Failed to start TestAmqpBroker."
exit 1
}
$Process
$env:TEST_BROKER_JOBID = $Process.Id
Write-Host "Waiting for test broker to start..."
Start-Sleep -Seconds 3
# Write-Host "Job Output after wait:"
# Receive-Job $job.Id
#
# $job = Get-Job -Id $env:TEST_BROKER_JOBID
# if ($job.State -ne "Running") {
# Write-Host "Test broker failed to start."
# exit 1
# }
}
finally {
Pop-Location
}