diff options
author | Mike Perry <mikeperry-git@torproject.org> | 2022-02-17 00:04:41 +0000 |
---|---|---|
committer | Mike Perry <mikeperry-git@torproject.org> | 2022-02-22 19:28:36 +0000 |
commit | 5c88bea84c3535ed908d51d2ed2e9beaa58ee607 (patch) | |
tree | e25f279eac1d42a3026fe939a7ccbbaa95a746cb /src/test | |
parent | 933e4b4788982d35414d5ecfe54a94479513b136 (diff) | |
download | tor-5c88bea84c3535ed908d51d2ed2e9beaa58ee607.tar.gz tor-5c88bea84c3535ed908d51d2ed2e9beaa58ee607.zip |
Add test for circuit_sendme_cell_is_next() when sendme_inc is 100.
This ensures compatibility with old tor.
Diffstat (limited to 'src/test')
-rw-r--r-- | src/test/test_sendme.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/test/test_sendme.c b/src/test/test_sendme.c index eef65a394e..1a046b5c50 100644 --- a/src/test/test_sendme.c +++ b/src/test/test_sendme.c @@ -348,6 +348,30 @@ test_package_payload_len(void *arg) tor_free(c); } +/* Check that circuit_sendme_is_next works with a window of 1000, + * and a sendme_inc of 100 (old school tor compat) */ +static void +test_sendme_is_next1000(void *arg) +{ + (void)arg; + tt_int_op(circuit_sendme_cell_is_next(1000, 100), OP_EQ, 0); + tt_int_op(circuit_sendme_cell_is_next(999, 100), OP_EQ, 0); + tt_int_op(circuit_sendme_cell_is_next(901, 100), OP_EQ, 1); + + tt_int_op(circuit_sendme_cell_is_next(900, 100), OP_EQ, 0); + tt_int_op(circuit_sendme_cell_is_next(899, 100), OP_EQ, 0); + tt_int_op(circuit_sendme_cell_is_next(801, 100), OP_EQ, 1); + + tt_int_op(circuit_sendme_cell_is_next(101, 100), OP_EQ, 1); + tt_int_op(circuit_sendme_cell_is_next(100, 100), OP_EQ, 0); + tt_int_op(circuit_sendme_cell_is_next(99, 100), OP_EQ, 0); + tt_int_op(circuit_sendme_cell_is_next(1, 100), OP_EQ, 1); + tt_int_op(circuit_sendme_cell_is_next(0, 100), OP_EQ, 0); + +done: + ; +} + struct testcase_t sendme_tests[] = { { "v1_record_digest", test_v1_record_digest, TT_FORK, NULL, NULL }, @@ -360,6 +384,7 @@ struct testcase_t sendme_tests[] = { { "cell_version_validation", test_cell_version_validation, TT_FORK, NULL, NULL }, { "package_payload_len", test_package_payload_len, 0, NULL, NULL }, + { "sendme_is_next1000", test_sendme_is_next1000, 0, NULL, NULL }, END_OF_TESTCASES }; |