openssh-portable/regress/pesterTests
Manoj Ampalam fdd54b6334
Implement Unix styled privilege separation in Windows (#258)
OpenSSh privilege separation model - http://www.citi.umich.edu/u/provos/ssh/privsep.html 
Posix_spawn is implemented in POSIX adapter as an alternative to fork() that is heavily used in Privilege separation. 
Additional state info is added to sshd to accommodate distinguishing the various modes (privileged monitor, unprivileged child, authenticated child).
Required service state (like config and host keys) is transmitted over pipes from monitor to child processes.
Changes to installation scripts and tests to accomodate new architectural changes
2018-01-15 13:57:31 -08:00
..
testdata Implement Unix styled privilege separation in Windows (#258) 2018-01-15 13:57:31 -08:00
Authorized_keys_fileperm.Tests.ps1 Implement Unix styled privilege separation in Windows (#258) 2018-01-15 13:57:31 -08:00
CertAuth.Tests.ps1 Added test cases for certificate authentication (#216) 2017-10-03 12:21:08 -07:00
Cfginclude.Tests.ps1 test scripts update to run on win7 (#174) 2017-06-26 21:58:29 -07:00
CommonUtils.psm1 test scripts update to run on win7 (#174) 2017-06-26 21:58:29 -07:00
Hostkey_fileperm.Tests.ps1 test scripts update to run on win7 (#174) 2017-06-26 21:58:29 -07:00
KeyUtils.Tests.ps1 Implement Unix styled privilege separation in Windows (#258) 2018-01-15 13:57:31 -08:00
Log_fileperm.Tests.ps1 Fix sftp scp file permission (#212) 2017-10-16 13:00:40 -07:00
PlatformAbstractLayer.psm1 latestw + Test Infra upgrades 2017-03-24 12:35:52 -07:00
PortForwarding.Tests.ps1 test scripts update to run on win7 (#174) 2017-06-26 21:58:29 -07:00
PowerShell.SSH.Tests.ps1 Test scripts updates and readme (#97) 2017-03-29 12:48:26 -07:00
README.md E2E test updates 2017-05-12 14:09:50 -07:00
SCP.Tests.ps1 Minor update on scp tests (#178) 2017-07-01 16:53:55 -07:00
SFTP.Tests.ps1 test scripts update to run on win7 (#174) 2017-06-26 21:58:29 -07:00
SSH.Tests.ps1 Fixed issue in POSIX layer that could truncate write streams (#235) 2017-11-06 21:38:14 -08:00
SSHDConfig.tests.ps1 Implement Unix styled privilege separation in Windows (#258) 2018-01-15 13:57:31 -08:00
SSHD_Config Implement Unix styled privilege separation in Windows (#258) 2018-01-15 13:57:31 -08:00
Userkey_fileperm.Tests.ps1 rename variable to NoLibressl 2017-11-07 16:07:16 -08:00
known_hosts latestw + Test Infra upgrades 2017-03-24 12:35:52 -07:00
ssh-add-hostkey-tmp.txt Implement Unix styled privilege separation in Windows (#258) 2018-01-15 13:57:31 -08:00
ssh_config E2E test updates 2017-05-12 14:09:50 -07:00
sshtest_ca_userkeys Added test cases for certificate authentication (#216) 2017-10-03 12:21:08 -07:00
sshtest_ca_userkeys.pub Added test cases for certificate authentication (#216) 2017-10-03 12:21:08 -07:00
sshtest_hostkey_dsa latestw + Test Infra upgrades 2017-03-24 12:35:52 -07:00
sshtest_hostkey_dsa.pub latestw + Test Infra upgrades 2017-03-24 12:35:52 -07:00
sshtest_hostkey_ecdsa latestw + Test Infra upgrades 2017-03-24 12:35:52 -07:00
sshtest_hostkey_ecdsa.pub latestw + Test Infra upgrades 2017-03-24 12:35:52 -07:00
sshtest_hostkey_ed25519 latestw + Test Infra upgrades 2017-03-24 12:35:52 -07:00
sshtest_hostkey_ed25519.pub latestw + Test Infra upgrades 2017-03-24 12:35:52 -07:00
sshtest_hostkey_rsa latestw + Test Infra upgrades 2017-03-24 12:35:52 -07:00
sshtest_hostkey_rsa.pub latestw + Test Infra upgrades 2017-03-24 12:35:52 -07:00
sshtest_userssokey_ed25519 latestw + Test Infra upgrades 2017-03-24 12:35:52 -07:00
sshtest_userssokey_ed25519.pub latestw + Test Infra upgrades 2017-03-24 12:35:52 -07:00

README.md

Run OpenSSH Pester Tests:

To setup the test environment before test run:

Import-Module  .\openssh-portable\contrib\win32\openssh\OpenSSHTestHelper.psm1 Force
Setup-OpenSSHTestEnvironment

Setup-OpenSSHTestEnvironment contains below parameters:

  • -OpenSSHBinPath: Specify the location where ssh.exe should be picked up. If not specified, the function will prompt to user if he/she want to choose the first ssh.exe found in $env:path if exists.
  • -TestDataPath: Specify the location where the test binaries deploy to. The default is $env:SystemDrive\OpenSSHTests if it not specified.
  • -Quiet: If it is set, the function will do all the changes without prompting to user to confirm.
  • -DebugMode: If it is set, the subsequent tests will be running in debug mode. User can modify by setting $OpenSSHTestInfo["DebugMode"] .

To run the test suites:

Run-OpenSSHE2ETest
Run-OpenSSHUnitTest

To run a particular test, just run the script or the executatlbe directly

C:\git\openssh-portable\regress\pesterTests\SCP.Tests.ps1
C:\git\openssh-portable\bin\x64\Release\unittest-bitmap\unittest-bitmap.exe

To verify / modify (Ex- DebugMode) the Test setup environment

$OpenSSHTestInfo
$OpenSSHTestInfo["DebugMode"] = $true

To revert what's done in Setup-OpenSSHTestEnvironment:

Cleanup-OpenSSHTestEnvironment

Guidelines for writing Pester based OpenSSH test cases

Follow these simple steps for test case indexing

  • Initialize the following variables at start
  $tC = 1
  $tI = 0
  • Place the following blocks in Describe
    BeforeEach {
        $stderrFile=Join-Path $testDir "$tC.$tI.stderr.txt"
        $stdoutFile=Join-Path $testDir "$tC.$tI.stdout.txt"
        $logFile = Join-Path $testDir "$tC.$tI.log.txt"
    }        
    AfterEach {$tI++;}
  • Place the following blocks in each Context
  BeforeAll {$tI=1}
  AfterAll{$tC++}
  • Prefix any test out file with $tC.$tI. You may use pre-created $stderrFile, $stdoutFile, $logFile for this purpose