Skip to content

Commit

Permalink
Add Firefox Nightly Windows tests
Browse files Browse the repository at this point in the history
  • Loading branch information
JeremyRand committed Mar 11, 2022
1 parent b857159 commit 8116ff3
Show file tree
Hide file tree
Showing 4 changed files with 167 additions and 0 deletions.
16 changes: 16 additions & 0 deletions .cirrus.yml
Original file line number Diff line number Diff line change
Expand Up @@ -206,6 +206,22 @@ task:
depends_on:
- "Compile Go latest linux amd64"

task:
name: "firefox windows"
windows_container:
image: cirrusci/windowsservercore:2019
cpu: 1
memory: 1G
install_script:
- choco install firefox-nightly --pre
- curl -o pkcs11mod.tar.gz --location https://api.cirrus-ci.com/v1/artifact/build/%CIRRUS_BUILD_ID%/Compile%%%%20Go%%%%20latest%%%%20windows%%%%20%GOARCH%/binaries/dist/pkcs11mod.tar.gz
- tar -xf pkcs11mod.tar.gz
test_script:
- SET PATH=%PATH%;%cd%
- powershell -ExecutionPolicy Unrestricted -File "testdata/ci-firefox-tests.ps1"
depends_on:
- "Compile Go latest windows amd64"

task:
name: "gnutls-cli"
container:
Expand Down
25 changes: 25 additions & 0 deletions testdata/assert-proxy-log.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
param (
$desired
)

if ( ("$desired" -ne "present" ) -and ( "$desired" -ne "missing" ) ) {
Write-Host "Invalid DESIRED value; should be present or missing"
exit 1
}

if ( Test-Path -Path "$Env:USERPROFILE/pkcs11mod.log" ) {
$result="present"
}
else {
$result="missing"
}

Remove-Item -Force "$Env:USERPROFILE/pkcs11mod.log"

if ( "$result" -ne "$desired" ) {
Write-Host "Log test failed"
Write-Host "Got $result, wanted $desired"
exit 1
}

exit 0
91 changes: 91 additions & 0 deletions testdata/ci-firefox-tests.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
Write-Host "===== Default System CKBI ====="

& "powershell" "-ExecutionPolicy" "Unrestricted" "-File" "testdata/try-firefox-connect.ps1" -host "www.namecoin.org" -desired "success"
If (!$?) {
exit 222
}
& "powershell" "-ExecutionPolicy" "Unrestricted" "-File" "testdata/assert-proxy-log.ps1" -desired "missing"
If (!$?) {
exit 222
}

& "powershell" "-ExecutionPolicy" "Unrestricted" "-File" "testdata/try-firefox-connect.ps1" -host "untrusted-root.badssl.com" -desired "fail"
If (!$?) {
exit 222
}
& "powershell" "-ExecutionPolicy" "Unrestricted" "-File" "testdata/assert-proxy-log.ps1" -desired "missing"
If (!$?) {
exit 222
}

Write-Host "===== Deleted System CKBI ====="

Move-Item -Path "$Env:CI_MAIN_MODULE" -Destination "$Env:CI_BAK_MODULE"

& "powershell" "-ExecutionPolicy" "Unrestricted" "-File" "testdata/try-firefox-connect.ps1" -host "www.namecoin.org" -desired "fail"
If (!$?) {
exit 222
}
& "powershell" "-ExecutionPolicy" "Unrestricted" "-File" "testdata/assert-proxy-log.ps1" -desired "missing"
If (!$?) {
exit 222
}

& "powershell" "-ExecutionPolicy" "Unrestricted" "-File" "testdata/try-firefox-connect.ps1" -host "untrusted-root.badssl.com" -desired "fail"
If (!$?) {
exit 222
}
& "powershell" "-ExecutionPolicy" "Unrestricted" "-File" "testdata/assert-proxy-log.ps1" -desired "missing"
If (!$?) {
exit 222
}

# TODO: No env var, -desired "missing" default target

# TODO: Env var pointing to -desired "missing" target

Write-Host "===== System CKBI via pkcs11proxy ====="

$Env:PKCS11PROXY_CKBI_TARGET = "$Env:CI_BAK_MODULE"
Copy-Item libpkcs11proxy.so -Destination "$Env:CI_MAIN_MODULE"

& "powershell" "-ExecutionPolicy" "Unrestricted" "-File" "testdata/try-firefox-connect.ps1" -host "www.namecoin.org" -desired "success"
If (!$?) {
exit 222
}
& "powershell" "-ExecutionPolicy" "Unrestricted" "-File" "testdata/assert-proxy-log.ps1" -desired "present"
If (!$?) {
exit 222
}

& "powershell" "-ExecutionPolicy" "Unrestricted" "-File" "testdata/try-firefox-connect.ps1" -host "untrusted-root.badssl.com" -desired "fail"
If (!$?) {
exit 222
}
& "powershell" "-ExecutionPolicy" "Unrestricted" "-File" "testdata/assert-proxy-log.ps1" -desired "present"
If (!$?) {
exit 222
}

Write-Host "===== System CKBI via p11proxy ====="

$Env:P11PROXY_CKBI_TARGET = "$Env:CI_BAK_MODULE"
Copy-Item libp11proxy.so -Destination "$Env:CI_MAIN_MODULE"

& "powershell" "-ExecutionPolicy" "Unrestricted" "-File" "testdata/try-firefox-connect.ps1" -host "www.namecoin.org" -desired "success"
If (!$?) {
exit 222
}
& "powershell" "-ExecutionPolicy" "Unrestricted" "-File" "testdata/assert-proxy-log.ps1" -desired "present"
If (!$?) {
exit 222
}

& "powershell" "-ExecutionPolicy" "Unrestricted" "-File" "testdata/try-firefox-connect.ps1" -host "untrusted-root.badssl.com" -desired "fail"
If (!$?) {
exit 222
}
& "powershell" "-ExecutionPolicy" "Unrestricted" "-File" "testdata/assert-proxy-log.ps1" -desired "present"
If (!$?) {
exit 222
}
35 changes: 35 additions & 0 deletions testdata/try-firefox-connect.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
param (
$host,
$desired
)

Write-Host "$host"

if ( ("$desired" -ne "success" ) -and ( "$desired" -ne "fail" ) ) {
Write-Host "Invalid DESIRED value; should be success or fail"
exit 1
}

# Nuke whatever cached state might exist...
Remove-Item -Recurse -Force "%APPDATA%/Mozilla"

& "C:\Program Files\Firefox Nightly\firefox.exe" --screenshot "https://$host"
Start-Sleep -seconds 10
Stop-Process -Name "firefox"

if ( Test-Path -Path "screenshot.png" ) {
$result = "success"
}
else {
$result = "fail"
}

Remove-Item -Force "screenshot.png"

if ( "$result" -ne "$desired" ) {
Write-Host "TLS test failed"
Write-Host "Got $result, wanted $desired"
exit 1
}

exit 0

0 comments on commit 8116ff3

Please sign in to comment.