Родитель
043f16691e
Коммит
65f3a545a5
|
@ -7,8 +7,9 @@ param ([Parameter(Mandatory=$True)] [string] $WorkingDirectory,
|
|||
Push-Location $WorkingDirectory
|
||||
|
||||
Import-Module .\common.psm1 -Force -ArgumentList ($LogFileName) -WarningAction SilentlyContinue
|
||||
Import-Module .\install_ebpf.psm1 -Force -ArgumentList ($WorkingDirectory, $LogFileName) -WarningAction SilentlyContinue
|
||||
|
||||
# eBPF Ddrivers.
|
||||
# eBPF drivers.
|
||||
$EbpfDrivers =
|
||||
@{
|
||||
"EbpfCore" = "ebpfcore.sys";
|
||||
|
@ -16,95 +17,6 @@ $EbpfDrivers =
|
|||
"SampleEbpfExt" = "sample_ebpf_ext.sys"
|
||||
}
|
||||
|
||||
#
|
||||
# Uninstall eBPF components.
|
||||
#
|
||||
function Unregister-eBPFComponents
|
||||
{
|
||||
# Uninstall drivers.
|
||||
$EbpfDrivers.GetEnumerator() | ForEach-Object {
|
||||
# New-Service does not support installing drivers.
|
||||
sc.exe delete $_.Name 2>&1 | Write-Log
|
||||
}
|
||||
|
||||
# Uninstall user mode service.
|
||||
sc.exe delete eBPFSvc.exe 2>&1 | Write-Log
|
||||
|
||||
# Delete the eBPF netsh helper.
|
||||
netsh delete helper "$Env:systemroot\system32\ebpfnetsh.dll" 2>&1 | Write-Log
|
||||
}
|
||||
|
||||
#
|
||||
# Install eBPF components.
|
||||
#
|
||||
|
||||
function Register-eBPFComponents
|
||||
{
|
||||
# Uinstall previous installations (if any).
|
||||
Unregister-eBPFComponents
|
||||
|
||||
# Install drivers.
|
||||
$EbpfDrivers.GetEnumerator() | ForEach-Object {
|
||||
# New-Service does not support installing drivers.
|
||||
sc.exe create $_.Name type=kernel start=demand binpath=("$Env:systemroot\system32\drivers\{0}" -f $_.Value) 2>&1 | Write-Log
|
||||
if ($LASTEXITCODE -ne 0) {
|
||||
throw ("Failed to create $_.Name driver.")
|
||||
} else {
|
||||
Write-Log ("{0} driver created." -f $_.Name) -ForegroundColor Green
|
||||
}
|
||||
}
|
||||
|
||||
# Install user mode service.
|
||||
eBPFSvc.exe install 2>&1 | Write-Log
|
||||
if ($LASTEXITCODE -ne 0) {
|
||||
throw ("Failed to create eBPF user mode service.")
|
||||
} else {
|
||||
Write-Log "eBPF user mode service created." -ForegroundColor Green
|
||||
}
|
||||
|
||||
# Add the eBPF netsh helper.
|
||||
netsh add helper "$Env:systemroot\system32\ebpfnetsh.dll" 2>&1 | Write-Log
|
||||
}
|
||||
|
||||
#
|
||||
# Start service and drivers.
|
||||
#
|
||||
function Start-eBPFComponents
|
||||
{
|
||||
# Start drivers.
|
||||
$EbpfDrivers.GetEnumerator() | ForEach-Object {
|
||||
Start-Service $_.Name -ErrorAction Stop 2>&1 | Write-Log
|
||||
}
|
||||
|
||||
# Start user mode service.
|
||||
Start-Service "eBPFSvc" -ErrorAction Stop 2>&1 | Write-Log
|
||||
}
|
||||
|
||||
function Install-eBPF
|
||||
{
|
||||
# Copy all binaries to system32.
|
||||
Copy-Item *.sys -Destination "$Env:systemroot\system32\drivers" -Force -ErrorAction Stop 2>&1 | Write-Log
|
||||
Copy-Item *.dll -Destination "$Env:systemroot\system32" -Force -ErrorAction Stop 2>&1 | Write-Log
|
||||
Copy-Item *.exe -Destination "$Env:systemroot\system32" -Force -ErrorAction Stop 2>&1 | Write-Log
|
||||
|
||||
# Register all components.
|
||||
Register-eBPFComponents
|
||||
|
||||
# Start all components.
|
||||
Start-eBPFComponents
|
||||
}
|
||||
|
||||
function Stop-eBPFComponents
|
||||
{
|
||||
# Stop user mode service.
|
||||
Stop-Service "eBPFSvc" -ErrorAction Stop 2>&1 | Write-Log
|
||||
|
||||
# Stop the drivers.
|
||||
$EbpfDrivers.GetEnumerator() | ForEach-Object {
|
||||
Stop-Service $_.Name -ErrorAction Stop 2>&1 | Write-Log
|
||||
}
|
||||
}
|
||||
|
||||
#
|
||||
# Execute tests on VM.
|
||||
#
|
||||
|
|
|
@ -26,6 +26,7 @@ function Invoke-CICDTestsOnVM
|
|||
[Parameter(Mandatory=$True)] [string] $LogFileName,
|
||||
[Parameter(Mandatory=$True)] [bool] $VerboseLogs)
|
||||
Import-Module $WorkingDirectory\common.psm1 -ArgumentList ($LogFileName) -Force -WarningAction SilentlyContinue
|
||||
Import-Module $WorkingDirectory\install_ebpf.psm1 -ArgumentList ($WorkingDirectory, $LogFileName) -Force -WarningAction SilentlyContinue
|
||||
Import-Module $WorkingDirectory\run_tests.psm1 -ArgumentList ($WorkingDirectory, $LogFileName) -Force -WarningAction SilentlyContinue
|
||||
Invoke-CICDTests -VerboseLogs $VerboseLogs 2>&1 | Write-Log
|
||||
} -ArgumentList ("C:\eBPF", ("{0}_{1}" -f $VMName, $LogFileName), $VerboseLogs) -ErrorAction Stop
|
||||
|
|
Загрузка…
Ссылка в новой задаче