Windows File Server Protocol Test Suite
Cross Platform
Vivian Tian, Senior Software Engineer
Victor Ding, Software Engineer II
2
Agenda
Background
File Server Protocol Test Suites Cross Platform
Demo
Background
4
Background
…
.NET Core
PowerShell
Core
WSL
Shell/
C / Java
/Python
Control
Adapter
• Explorer cross platform experience gradually
• Test Suite 4.20.9.0
• PTF 2.0.0
File Server Protocol Test Suites Cross Platform
6
Protocol Test Framework
Protocol Test Framework
Features .NET Framework Version
Supported Features .NET Core VersionEnabled Features Release GitHub MSI NuGetPackage
Install Explicitly install MSI Side-by-side with test suites WiX Dependency Yes No
Spec Explorer Yes No
Test Environment ✓ ✓
Configuration (ptfconfig) ✓ ✓
Checking ✓ ✓
Power Shell Adapter ✓ ✓ Managed Adapter ✓ ✓ Shell Adapter ✓ Interactive Adapter ✓ File Logging ✓ ✓ Console Logging ✓ ✓ Beacon Logging ✓ ETW logging ✓ Automatic Network Capturing ✓
Protocol Test Framework
Protocol Test Framework8
Protocol SDK
ProtoSDKProtocol
SDK
Remove
Spec Explorer
dependency
Rewrite
SSP & SSPI
with C#
Fix .NET Core
Incompatible APIs
File Server Test Suite
▪
Migrated to .NET Core 3.1
▪
Removed Spec Explorer dependency
▪
Removed WiX dependency
Protocol Test Suites
FSA
•Tra di tional •ModelSMB2
•Tra di tional •ModelSQOS
Auth
DFSC
RSVD
10
PTM / PTMCli
PTM/PTM Cli
.NET Framework Test Suite
.NET Core Test Suite
Similar Experience as Before:
GUI, Auto Detect, Run case, Profile, etc.
PTM
Windows
Windows
Linux
macOS
Run case, Profile
File Server Protocol Test Suites Cross Platform
Significant Changes
Cross Platform Support
PTF
SDK/File Server Test Suite PTMCli
Less Dependencies
No SE dependency No WiX dependency
No VS dependency Only .NET Core SDK dependency
12
How to use ? -
Build and Run from Scratch
Install
Clone
Config
Build
Run
•Install .NET Core SDK 3.1
•Clone source code from GitHub
repo
•Modify ptfconfig file
•Run with Scripts, PTMCli or PTM (Windows)
•RunTestCasesByFilter.sh "TestCategory=BVT&TestCategory=SMB311" •RunTestCasesByFilter.ps1 "TestCategory=BVT&TestCategory=SMB311"
•PtmCli.exe <-p|--profile profileName> [-s|--selected] [--categories categories] [-r|--report reportFile]
•Build test suite
•Install .NET Core SDK 3.1
•Download and extract the latest test suite package
Install
•Modify ptfconfig file
Config
•Run with Scripts, PTMCli or PTM (Windows)
•RunTestCasesByFilter.sh "TestCategory=BVT&TestCategory=SMB311" •RunTestCasesByFilter.ps1 "TestCategory=BVT&TestCategory=SMB311"
•PtmCli.exe <-p|--profile profileName> [-s|--selected] [--categories categories] [-r|--report reportFile]
Run
14
How to use ? – Run with Docker
Host
Host\VM OS files & libs
Container (test suite instance1) Container (test suite instance 2) Container (test suite instance 3) Unassigned
•Install Docker Desktop
•
snap install docker
•Download Configuration Files
•
Wget https://github.com/microsoft/WindowsProtocolTestSuites/releases/download/4.20.9.0/fileserver-docker-ptfconfig.tar.gz
•Run Test Cases
•
Docker run
•
–hostname <hostname>
•
--network host
•
-v <ptfconfig path>
•
-I <image name>
•Pull image from Docker Hub & Config Network
•
docker pull mcr.microsoft.com/windowsprotocoltestsuites:fileserver
Install
Pull
Download
Config
Run
16
Domain Controller
SUT 2 Driver 2 SUT 1 Driver 1
Meetup Environment
Demo SUT Demo Driver
Protocol Testing Environments on Azure
VPN Gateway
Meetup Environment Topology
1.
Dial In Azure Test Environment via VPN
2.
Remote to Driver Computer
3.
Run Cases on Driver Computer against SUT
Run Test
Run Test
PTM (Windows)
DEMO
Run FS Test Suite with
PTMCli
on Linux Driver
Run FS Test Suite with
Docker Image
on Linux Driver
18