You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by ma...@apache.org on 2017/12/19 00:10:06 UTC
[trafficserver] branch quic-latest updated: Update tests for
version negotiation
This is an automated email from the ASF dual-hosted git repository.
maskit pushed a commit to branch quic-latest
in repository https://gitbox.apache.org/repos/asf/trafficserver.git
The following commit(s) were added to refs/heads/quic-latest by this push:
new 48f5acb Update tests for version negotiation
48f5acb is described below
commit 48f5acb0488b47aff70d72de2e9a319598493d82
Author: Masakazu Kitajo <ma...@apache.org>
AuthorDate: Tue Dec 19 09:09:41 2017 +0900
Update tests for version negotiation
---
iocore/net/quic/test/test_QUICVersionNegotiator.cc | 63 +++++++++++++++++-----
1 file changed, 51 insertions(+), 12 deletions(-)
diff --git a/iocore/net/quic/test/test_QUICVersionNegotiator.cc b/iocore/net/quic/test/test_QUICVersionNegotiator.cc
index 2917e1c..48cc23d 100644
--- a/iocore/net/quic/test/test_QUICVersionNegotiator.cc
+++ b/iocore/net/quic/test/test_QUICVersionNegotiator.cc
@@ -26,24 +26,63 @@
#include "quic/QUICVersionNegotiator.h"
#include "quic/Mock.h"
-TEST_CASE("QUICVersionNegotiator_Normal", "[quic]")
+TEST_CASE("QUICVersionNegotiator", "[quic]")
{
QUICPacketFactory packet_factory;
MockQUICCrypto crypto;
packet_factory.set_crypto_module(&crypto);
QUICVersionNegotiator vn;
- // Check initial state
- CHECK(vn.status() == QUICVersionNegotiationStatus::NOT_NEGOTIATED);
+ SECTION("Normal case")
+ {
+ // Check initial state
+ CHECK(vn.status() == QUICVersionNegotiationStatus::NOT_NEGOTIATED);
- // Negotiate version
- QUICPacketUPtr initial_packet = packet_factory.create_initial_packet({}, 0, QUIC_SUPPORTED_VERSIONS[0], ats_unique_malloc(0), 0);
- vn.negotiate(initial_packet.get());
- CHECK(vn.status() == QUICVersionNegotiationStatus::NEGOTIATED);
+ // Negotiate version
+ QUICPacketUPtr initial_packet =
+ packet_factory.create_initial_packet({}, 0, QUIC_SUPPORTED_VERSIONS[0], ats_unique_malloc(0), 0);
+ vn.negotiate(initial_packet.get());
+ CHECK(vn.status() == QUICVersionNegotiationStatus::NEGOTIATED);
- // Revalidate version
- QUICTransportParametersInClientHello tp(QUIC_SUPPORTED_VERSIONS[0]);
- vn.revalidate(&tp);
- CHECK(vn.status() == QUICVersionNegotiationStatus::REVALIDATED);
- CHECK(vn.negotiated_version() == QUIC_SUPPORTED_VERSIONS[0]);
+ // Validate version
+ QUICTransportParametersInClientHello tp(QUIC_SUPPORTED_VERSIONS[0]);
+ vn.validate(&tp);
+ CHECK(vn.status() == QUICVersionNegotiationStatus::VALIDATED);
+ CHECK(vn.negotiated_version() == QUIC_SUPPORTED_VERSIONS[0]);
+ }
+
+ SECTION("Negotiation case")
+ {
+ // Check initial state
+ CHECK(vn.status() == QUICVersionNegotiationStatus::NOT_NEGOTIATED);
+
+ // Negotiate version
+ QUICPacketUPtr initial_packet =
+ packet_factory.create_initial_packet({}, 0, QUIC_SUPPORTED_VERSIONS[0], ats_unique_malloc(0), 0);
+ vn.negotiate(initial_packet.get());
+ CHECK(vn.status() == QUICVersionNegotiationStatus::NEGOTIATED);
+
+ // Validate version
+ QUICTransportParametersInClientHello tp(0xbabababa);
+ vn.validate(&tp);
+ CHECK(vn.status() == QUICVersionNegotiationStatus::VALIDATED);
+ CHECK(vn.negotiated_version() == QUIC_SUPPORTED_VERSIONS[0]);
+ }
+
+ SECTION("Downgrade case")
+ {
+ // Check initial state
+ CHECK(vn.status() == QUICVersionNegotiationStatus::NOT_NEGOTIATED);
+
+ // Negotiate version
+ QUICPacketUPtr initial_packet = packet_factory.create_initial_packet({}, 0, 0xbabababa, ats_unique_malloc(0), 0);
+ vn.negotiate(initial_packet.get());
+ CHECK(vn.status() == QUICVersionNegotiationStatus::NOT_NEGOTIATED);
+
+ // Validate version
+ QUICTransportParametersInClientHello tp(QUIC_SUPPORTED_VERSIONS[0]);
+ vn.validate(&tp);
+ CHECK(vn.status() == QUICVersionNegotiationStatus::FAILED);
+ CHECK(vn.negotiated_version() != QUIC_SUPPORTED_VERSIONS[0]);
+ }
}
--
To stop receiving notification emails like this one, please contact
['"commits@trafficserver.apache.org" <co...@trafficserver.apache.org>'].