Version 7 (modified by 8 years ago) (diff) | ,
---|
Introduction
This page outlines the tests we do or should run on Windows. Other pages of interest:
Usage patterns to test
Usage of OpenVPN-GUI
Right now OpenVPN-GUI testing has not been automated, and all tests are manual:
- Without Interactive Service, with admin privileges
- With Interactive Service, without admin privileges
- With Interactive Service, with admin privileges
That said, OpenVPN-GUI communicates with OpenVPN using the management interface, as do all the more recent GUIs. Thus management interface tests (below) will eventually help verify correct operation of OpenVPN-GUI. All the basic functions of OpenVPN-GUI should be tested, but how would these tests be automated? Would it require an automation API in OpenVPN-GUI itself?
Usage of openvpnserv2
All the basic functionality of openvpnserv2 should be tested. Right now the tests have to be run manually:
- Ensuring that the service can be enabled / disabled / started / stopped on all platforms
- Restarting a connection that goes down
- What happens with broken configuration files? What is the proper behavior?
- What happens with conflicting configuration files? What is the proper behavior?
Usage from command-line
Basic usage from the command-line should be tested. This is covered by cron2's run.bat/run2.bat script. At minimum we should test
- Connect and disconnect to a VPN as admin (should work)
- Connect to a VPN as unprivileged user (should fail cleanly)
Windows-specific command-line tools
netsh
Ensure that the netsh calls that OpenVPN makes have the desired effect. There are no automated tests for this yet.
Windows-specific options
Ensure that various Windows-specific options behave as excepted
ip-win32
- dynamic (= DHCP)
- ipapi (= windows API system calls)
- netsh (= netsh.exe calls)
- maybe even "adaptive" (= try ipapi, fall back to dynamic)
My minimal run.bat test has cases for that, and it seems --ip-win32 netsh
is already unreliable today, even before d12fk's do_ifconfig_after_tun patch.
Management interface
Ensure that management interface commands work as expected, with particular focus on the commands and sequences that a GUI typically uses. These tests should automated immediately. Questions:
- How do we automate the tests?
- What are the commands and sequences we should test?
Right now there are no tests, not even ones that are run manually.
Basic connectivity testing
Extend t_client.sh tests to Windows also. Right now: barebones run.bat+run2.bat
Infrastructure needed for the tests
- t_client server side
- what about testing "clients on other systems, server on windows"?
Tests based on usage patterns
- Connecting directly from the command-line as admin
- Running --server on Windows
- Using more than one tap adapter
- Run openvpnserv2
- Single config file
- Several config files
- Behavior if subnets overlap or there are other conflicts