aboutsummaryrefslogtreecommitdiff
path: root/src/test
AgeCommit message (Collapse)Author
2021-10-19test: Don't run HSv2 Chutney test networksDavid Goulet
Part of #40476 Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-10-19test: Fix unit tests after disabling version 2David Goulet
Some tests were removed because they were testing something not usable anymore. Some tests remains to make sure that things are indeed disabled. Part of #40476 Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-09-13Only check for bindable ports if we are unsure if it will fail.Alexander Færøy
We currently assume that the only way for Tor to listen on ports in the privileged port range (1 to 1023), on Linux, is if we are granted the NET_BIND_SERVICE capability. Today on Linux, it's possible to specify the beginning of the unprivileged port range using a sysctl configuration option. Docker (and thus the CI service Tor uses) recently changed this sysctl value to 0, which causes our tests to fail as they assume that we should NOT be able to bind to a privileged port *without* the NET_BIND_SERVICE capability. In this patch, we read the value of the sysctl value via the /proc/sys/ filesystem iff it's present, otherwise we assume the default unprivileged port range begins at port 1024. See: tor#40275
2021-08-11relay: Reduce streaming compression ratio from HIGH to LOWDavid Goulet
Fixes #40301 Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-05-25Remove the function `tor_tls_assert_renegotiation_unblocked`.Nick Mathewson
It was used nowhere outside its own unit tests, and it was causing compilation issues with recent OpenSSL 3.0.0 alphas. Closes ticket 40399.
2021-04-13Fix test naming, and fix tests on windows.Nick Mathewson
This is a bugfix against my fix for #40133, which has not yet appeared in 0.3.5.
2021-02-23Remove mallinfo() from codebaseDavid Goulet
Now deprecated in libc >= 2.33 Closes #40309 Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-02-03node: Move reentry set to use a digestmap_tDavid Goulet
Any lookup now will be certain and not probabilistic as the bloomfilter. Closes #40269 Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-01-29test: Add test for exits blocking reentry to the networkGeorge Kadianakis
Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-01-28Merge branch 'tor-gitlab/mr/50' into maint-0.3.5David Goulet
2021-01-28Merge branch 'tor-gitlab/mr/254' into maint-0.3.5David Goulet
2021-01-28Merge remote-tracking branch 'tor-gitlab/mr/186' into maint-0.3.5David Goulet
2021-01-19Merge remote-tracking branch 'tor-gitlab/mr/143' into maint-0.3.5Nick Mathewson
2021-01-12hs-v3: Require reasonably live consensusDavid Goulet
Some days before this commit, the network experienced a DDoS on the directory authorities that prevented them to generate a consensus for more than 5 hours straight. That in turn entirely disabled onion service v3, client and service side, due to the subsystem requiring a live consensus to function properly. We know require a reasonably live consensus which means that the HSv3 subsystem will to its job for using the best consensus tor can find. If the entire network is using an old consensus, than this should be alright. If the service happens to use a live consensus while a client is not, it should still work because the client will use the current SRV it sees which might be the previous SRV for the service for which it still publish descriptors for. If the service is using an old one and somehow can't get a new one while clients are on a new one, then reachability issues might arise. However, this is a situation we already have at the moment since the service will simply not work if it doesn't have a live consensus while a client has one. Fixes #40237 Signed-off-by: David Goulet <dgoulet@torproject.org>
2020-11-05Handle a change in the implementation of hashlib in Python 3.9Nick Mathewson
Previously, hashlib.shake_256 was a class (if present); now it can also be a function. This change invalidated our old compatibility/workaround code, and made one of our tests fail. Fixes bug 40179; bugfix on 0.3.1.6-rc when the workaround code was added.
2020-10-28Fix a previously overstrict log message check.Nick Mathewson
OpenSSL doesn't seem to report error locations in the same way as before, which broke one of our tests. Fixes bug 40170; bugfix on 0.2.8.1-alpha.
2020-10-14Implement proposal 318: Limit protovers to 0..63Nick Mathewson
In brief: we go through a lot of gymnastics to handle huge protover numbers, but after years of development we're not even close to 10 for any of our current versions. We also have a convenient workaround available in case we ever run out of protocols: if (for example) we someday need Link=64, we can just add Link2=0 or something. This patch is a minimal patch to change tor's behavior; it doesn't take advantage of the new restrictions. Implements #40133 and proposal 318.
2020-10-07Merge remote-tracking branch 'tor-github/pr/1827/head' into maint-0.3.5Nick Mathewson
2020-10-07Merge remote-tracking branch 'tor-gitlab/mr/103' into maint-0.3.5Nick Mathewson
2020-10-07Merge branch 'mr_124_squashed' into maint-0.3.5Nick Mathewson
2020-10-07Parallelize src/test/test into chunks.Nick Mathewson
First, we introduce a flag to teach src/test/test to split its work into chunks. Then we replace our invocation of src/test/test in our "make check" target with a set of 8 scripts that invoke the first 8th of the tests, the second 8th, and so on. This change makes our "make -kj4 check" target in our hardened gitlab build more than twice as fast, since src/test/test was taking the longest to finish. Closes 40098.
2020-09-17Fix underflow in rend_cache/free_all test.Nick Mathewson
We already fixed these in #40099 and #40125. This patch fixes #40126. Bugfix on 0.2.8.1-alpha.
2020-09-17test: Increment rend cache allocation before freeingDavid Goulet
The rend_cache/entry_free was missing the rend cache allocation increment before freeing the object. Without it, it had an underflow bug: Sep 17 08:40:13.845 [warn] rend_cache_decrement_allocation(): Bug: Underflow in rend_cache_decrement_allocation (on Tor 0.4.5.0-alpha-dev 7eef9ced61e72b1d) Fixes #40125 Signed-off-by: David Goulet <dgoulet@torproject.org>
2020-09-14Resolve a compilation warning in test_connection.cNick Mathewson
Instead of casting an enum to a void and back, use a string -- that's better C anyway. Fixes bug 40113; bugfix on 0.2.9.3-alpha.
2020-08-12Fix allocation counting in clean_v2_descs_as_dir test.Nick Mathewson
Without this fix, running this test on its own would fail. Fixes bug 40099. Bugfix on ade5005853c17b3 in 0.2.8.1-alpha.
2020-08-03Remove channel_is_canonical_is_reliable()Nick Mathewson
This function once served to let circuits continue to be built over version-1 link connections. But such connections are long-obsolete, and it's time to remove this check. Closes #40081.
2020-07-30Fix a bug in buf_move_all() when the input buffer is empty.Nick Mathewson
We found this in #40076, after we started using buf_move_all() in more places. Fixes bug #40076; bugfix on 0.3.3.1-alpha. As far as I know, the crash only affects master, but I think this warrants a backport, "just in case".
2020-07-30Add unit test for buf_move_all(), including a failing caseNick Mathewson
The failing case is #if'd out for now, but will be fixed in the next commit. Testing for a fix for #40076.
2020-07-14Strip '\r' characters when reading text files on Unix.Alexander Færøy
This patch ensures that we strip "\r" characters on both Windows as well as Unix when we read text files. This should prevent the issue where some Tor state files have been moved from a Windows machine, and thus contains CRLF line ending, to a Unix machine where only \n is needed. We add a test-case to ensure that we handle this properly on all our platforms. See: https://bugs.torproject.org/tpo/core/tor/33781
2020-07-06Run `tor_tls_cert_matches_key()` Test Suite with both OpenSSL and NSS.Alexander Færøy
This patch lifts the `tor_tls_cert_matches_key()` tests out of the OpenSSL specific TLS test suite and moves it into the generic TLS test suite that is executed for both OpenSSL and NSS. This patch is largely a code movement, but we had to rewrite parts of the test to avoid using OpenSSL specific data-types (such as `X509 *`) and replace it with the generic Tor abstraction type (`tor_x509_cert_impl_t *`). This patch is part of the fix for TROVE-2020-001. See: https://bugs.torproject.org/33119
2020-06-30Merge branch 'tor-github/pr/1793' into maint-0.3.5Alexander Færøy
2020-06-30Merge branch 'tor-github/pr/1785' into maint-0.3.5Alexander Færøy
2020-05-06Use __attribute__((fallthrough)) rather than magic GCC comments.Nick Mathewson
GCC added an implicit-fallthrough warning a while back, where it would complain if you had a nontrivial "case:" block that didn't end with break, return, or something like that. Clang recently added the same thing. GCC, however, would let you annotate a fall-through as intended by any of various magic "/* fall through */" comments. Clang, however, only seems to like "__attribute__((fallthrough))". Fortunately, GCC accepts that too. A previous commit in this branch defined a FALLTHROUGH macro to do the right thing if GNUC is defined; here we replace all of our "fall through" comments with uses of that macro. This is an automated commit, made with the following perl one-liner: #!/usr/bin/perl -i -p s#/\* *falls? ?thr.*?\*/#FALLTHROUGH;#i;
2020-04-09Merge remote-tracking branch 'tor-github/pr/1784' into maint-0.3.5teor
2020-03-21Add a test for the localhost case.Nick Mathewson
2020-03-21Extend test to handle router_get_advertised_ipv6_or_apNick Mathewson
2020-03-21Add a test for router_get_advertised_or_port_by_af().Nick Mathewson
2020-03-21Add tests for get_first_advertised_{addr,port}_by_type_af()Nick Mathewson
2020-03-19Add a TOR_SKIP_TESTCASES environment variable for suppressing tests.Nick Mathewson
For example, "TOR_SKIP_TESTCASES=crypto/.. ./src/test/test" will run the tests and suppress all the "crypto/" tests. You could get the same effect by running "./src/test/test :crypto/..", but that can be harder to arrange from CI. Part of a fix/workaround for 33643.
2020-03-17Merge branch 'trove_2020_002_035' into maint-0.3.5Nick Mathewson
2020-03-17Add off-by-one checks for key length.Nick Mathewson
2020-03-14Add a test for crypto_pk_asn1_decode_private maxbits.Nick Mathewson
2020-03-12Fix unit tests that look at contactinfo logs.Nick Mathewson
2020-03-11pem_decode(): Tolerate CRLF line endingsNick Mathewson
Fixes bug 33032; bugfix on 0.3.5.1-alpha when we introduced our own PEM decoder.
2020-03-10dos: Pass transport name on new client connectionDavid Goulet
For a bridge configured with a pluggable transport, the transport name is used, with the IP address, for the GeoIP client cache entry. However, the DoS subsystem was not aware of it and always passing NULL when doing a lookup into the GeoIP cache. This resulted in bridges with a PT are never able to apply DoS defenses for newly created connections. Fixes #33491 Signed-off-by: David Goulet <dgoulet@torproject.org>
2020-02-12Lowercase the BridgeDistribution value from torrc in descriptors.Alexander Færøy
This patch ensures that we always lowercase the BridgeDistribution from torrc in descriptors before submitting it. See: https://bugs.torproject.org/32753
2019-11-06Merge remote-tracking branch 'tor-github/pr/1354' into maint-0.3.5teor
2019-10-20test/rebind: Make control formatting and log parsing more robustteor
* actually sleep when tor has not logged anything * log at debug level when waiting for tor to log something * backslash-replace bad UTF-8 characters in logs * format control messages as ASCII: tor does not accept UTF-8 control commands Fixes bug 31837; bugfix on 0.3.5.1-alpha.
2019-09-23Fix bug when %including folder with comment only files. #31408Daniel Pinto
When processing a %included folder, a bug caused the pointer to the last element of the options list to be set to NULL when processing a file with only comments or whitepace. This could cause options from other files on the same folder to be discarded depending on the lines after the affected %include.
2019-09-06entrynodes: Make routine descriptor expiry notice logs less alarmingteor
When tor is missing descriptors for some primary entry guards, make the log message less alarming. It's normal for descriptors to expire, as long as tor fetches new ones soon after. Fixes bug 31657; bugfix on 0.3.3.1-alpha.