aboutsummaryrefslogtreecommitdiff
path: root/src/test/test_protover.c
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2017-09-11 09:50:31 -0400
committerNick Mathewson <nickm@torproject.org>2017-09-11 09:50:31 -0400
commit362bc880b1c4bbccba8698b872c16fc6a6da168e (patch)
tree243c1f3f2d07859811db59180994419adc3784ca /src/test/test_protover.c
parent67a5d4cb60a9f27e981b83195cf47183a7e9abcc (diff)
downloadtor-362bc880b1c4bbccba8698b872c16fc6a6da168e.tar.gz
tor-362bc880b1c4bbccba8698b872c16fc6a6da168e.zip
Add a function to check for support for "protocol X or later"
Also, add unit tests for this new function and for the regular "does this list include support for protocol X" code.
Diffstat (limited to 'src/test/test_protover.c')
-rw-r--r--src/test/test_protover.c30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/test/test_protover.c b/src/test/test_protover.c
index 6ce54890d6..874b315490 100644
--- a/src/test/test_protover.c
+++ b/src/test/test_protover.c
@@ -182,6 +182,35 @@ test_protover_all_supported(void *arg)
tor_free(msg);
}
+static void
+test_protover_supports_version(void *arg)
+{
+ (void)arg;
+
+ tt_assert(protocol_list_supports_protocol("Link=3-6", PRT_LINK, 3));
+ tt_assert(protocol_list_supports_protocol("Link=3-6", PRT_LINK, 6));
+ tt_assert(!protocol_list_supports_protocol("Link=3-6", PRT_LINK, 7));
+ tt_assert(!protocol_list_supports_protocol("Link=3-6", PRT_LINKAUTH, 3));
+
+ tt_assert(!protocol_list_supports_protocol("Link=4-6 LinkAuth=3",
+ PRT_LINKAUTH, 2));
+ tt_assert(protocol_list_supports_protocol("Link=4-6 LinkAuth=3",
+ PRT_LINKAUTH, 3));
+ tt_assert(!protocol_list_supports_protocol("Link=4-6 LinkAuth=3",
+ PRT_LINKAUTH, 4));
+ tt_assert(!protocol_list_supports_protocol_or_later("Link=4-6 LinkAuth=3",
+ PRT_LINKAUTH, 4));
+ tt_assert(protocol_list_supports_protocol_or_later("Link=4-6 LinkAuth=3",
+ PRT_LINKAUTH, 3));
+ tt_assert(protocol_list_supports_protocol_or_later("Link=4-6 LinkAuth=3",
+ PRT_LINKAUTH, 2));
+
+ tt_assert(!protocol_list_supports_protocol_or_later("Link=4-6 LinkAuth=3",
+ PRT_DESC, 2));
+ done:
+ ;
+}
+
#define PV_TEST(name, flags) \
{ #name, test_protover_ ##name, (flags), NULL, NULL }
@@ -190,6 +219,7 @@ struct testcase_t protover_tests[] = {
PV_TEST(parse_fail, 0),
PV_TEST(vote, 0),
PV_TEST(all_supported, 0),
+ PV_TEST(supports_version, 0),
END_OF_TESTCASES
};