Skip to content

About

Interoperability runner is an automated test framework that verifies pion/dtls compatibility against other independent implementations and against pion/dtls itself

Resources

Contributing

Security policy

Stars

3 stars

Watchers

1 watching

Forks

Latest commit

 

History

81 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pion DTLS Interop

Pion dtls-interop Join us on Discord Follow us on Bluesky License: MIT

Interoperability tests for pion/dtls. The aim is to test every DTLS 1.2 and 1.3 feature supported by Pion, first against itself, then against other DTLS implementations.

How it works

The suite connects Pion clients and servers to peers and runs shared test cases against each implementation. Cases that a peer does not support or that its adapter has not implemented are skipped.

The following implementations have test runners:

Implementation Runner
Pion DTLS v4 pion-v4
Pion DTLS v3 pion-v3
BoringSSL boringssl
OpenSSL 3 openssl3
OpenSSL 4 openssl4
wolfSSL wolfssl
Mbed TLS mbedtls
TLS-Anvil (DTLS 1.2 and 1.3 server tests) anvil

Run locally

With Nix and Devenv installed, enter the development environment to get Go, Task, and the peer implementations:

devenv shell
task interop

task interop runs all implementations using the Pion version in go.mod. Use RUNNER to select one:

task interop RUNNER=pion-v4
task interop RUNNER=boringssl
task interop RUNNER=openssl4

Select the Pion version

Pass a branch, tag, or commit to clone it into .cache/pion-dtls/<ref> and test that checkout. An existing cached checkout is reused:

task interop -- main
task interop -- v4.0.0
task interop -- ee71667c005d4ae1745490f2c6ef87555d898c68

You can also pass a relative or absolute path to a local pion/dtls v4 checkout, including uncommitted changes:

task interop -- ../dtls
task interop RUNNER=pion-v4 -- /path/to/dtls

The runner uses a temporary Go workspace to test the selected checkout.

Development environment

devenv.nix defines the tools and peer binaries. Inside devenv shell, you can check the bundled OpenSSL versions and BoringSSL shim:

openssl-3 version
openssl-4 version
bssl-shim -is-handshaker-supported

Community and license

Join the Pion Discord for discussion and see the contributing guide to get involved.

MIT licensed. See LICENSE.

About

Interoperability runner is an automated test framework that verifies pion/dtls compatibility against other independent implementations and against pion/dtls itself

Resources

Contributing

Security policy

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

Generated from pion/template