Implement go-libp2p interop tests (echo protocol over QUIC) #1138
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #1136
What was wrong?
The tests/interop/go_libp2p/ directory only contained a placeholder test that didn't verify any actual interoperability with go-libp2p. This meant py-libp2p had no automated way to verify it can communicate with the reference libp2p implementation (go-libp2p) .
Related: Following the pattern established by nim-libp2p interop tests
How was it fixed?
Implemented a complete interop testing suite that verifies py-libp2p can communicate with go-libp2p over QUIC transport using the echo protocol (
/echo/1.0.0).Components Added
Go Echo Server (
go_echo_server.goBuild Script (
scripts/setup_go_echo.sh)Test Fixtures (
conftest.py)Test Suite (
test_echo_interop.py)Tests Implemented
test_basic_echotest_echo_empty_stringtest_echo_large_messagetest_echo_unicodetest_echo_multiple_sequentialtest_multiple_connectionsTesting
All tests passing
Screenshot: Test Results
Manual verification