Commit Graph

4338 Commits

Author SHA1 Message Date
Nick Mathewson 897a2d5fa0 Add "suspend" and "resume" to TaskSchedule.
Unlike "cancel" and "fire", "suspend" and "resume" don't change any
pending timers or events: they just prevent execution of those
events for a while, and let them resume later on.
2022-06-07 10:11:49 -04:00
Nick Mathewson aa3a81c3ba Upgrade serial_test dev-dependency to 0.7.0 2022-06-07 09:22:24 -04:00
Nick Mathewson 7f785b66c2 Upgrade float_eq dev-dependency to 1.0.0 2022-06-07 08:03:55 -04:00
Nick Mathewson df06e7b9bc Upgrade tls-api to latest versions in arti-hyper. 2022-06-07 08:01:39 -04:00
Nick Mathewson 125f99a723 Merge branch 'typos' into 'main'
Fix typos

See merge request tpo/core/arti!567
2022-06-05 16:25:24 +00:00
Dimitris Apostolou 8488192ba1
Fix typos 2022-06-05 18:47:51 +03:00
Nick Mathewson 018fda4f73 Merge branch 'testing-rng' into 'main'
New facility for deterministic and reproducible test PRNGs.

See merge request tpo/core/arti!561
2022-06-02 21:11:36 +00:00
Nick Mathewson 0e6a54351d Add an upcast_arc function to NetDirProvider.
This uses some apparently-standard trickery to implement a function
that lets us upcast from Arc<dyn Subtrait> to Arc<dyn Supertrait>.

I considered as alternatives `as_dyn_trait` and `cast_dyn_object`.
Both were nice, but generated a far larger interface than this.
2022-06-02 17:06:11 -04:00
Nick Mathewson 1076f25031 Rewrite tests in tor-netdir to use testing_rng()
The randomized tests in this crate take a lot of iterations to
converge, so they default to using a deterministic PRNG seed with
few iterations and higher tolerance, and they only randomize the
tests (with more iterations and tighter tolerances) when you
explicitly opt in to randomization.

(If you specify a seed explicitly, you're doing that to reproduce a
randomized case, so we use the same behavior.)
2022-06-02 15:48:41 -04:00
Nick Mathewson b4c0febd97 Refactor fallback-set tests to work with deterministic PRNG.
The trouble was that one of the helper functions they used
did not take a PRNG as an argument.
2022-06-02 14:59:55 -04:00
Nick Mathewson 967ea67b7d Use testing_rng() in tests throughout our crates.
This only affects uses of thread_rng(), and affects them all more or
less indiscriminately.  One test does not work with
ARTI_TEST_PRNG=deterministic; the next commit will fix it.
2022-06-02 14:56:42 -04:00
Nick Mathewson 69d352a7c7 New facility for deterministic and reproducible test PRNGs.
The new `testing_rng()` function is meant as a replacement for
thread_rng() for use in unit tests.  By default, it uses a randomly
seeded RNG, but prints the seed before the test so that you can
reproduce any failures that occur.  You can override this via the
environment to use a previous seed, or by using a deterministic
seed for all your tests.

Backend for #486.
2022-06-02 14:51:51 -04:00
Ian Jackson 6f96736278 Merge branch 'check-license-fixes' into 'main'
Update check_licenses and add it to CI.

Closes #462

See merge request tpo/core/arti!559
2022-06-02 13:59:35 +00:00
Ian Jackson c2d8dac1ce Merge branch 'better-fs-mistrust-badpermissions-string' into 'main'
fs-mistrust: Improve BadPermission string

See merge request tpo/core/arti!554
2022-06-02 11:15:52 +00:00
Nick Mathewson e03833098e Merge branch 'doc' into 'main'
tor-config: Fix a doc link

See merge request tpo/core/arti!563
2022-06-01 15:50:24 +00:00
Ian Jackson 9f4fe6a484 tor-config: Fix a doc link
Nightly cargo doc complaints about this.
2022-06-01 15:48:45 +01:00
Nick Mathewson 07dc49a2dc Fix a copy-paste error in Ed25519 parsing tests.
We accidentally tried to validate (invalid) ed25519 keys
as curve25519 keys.
2022-06-01 08:32:09 -04:00
Nick Mathewson 3de2496303 Add test for parsing bad tor version with too many elements.
This is a coverage-driven test.
2022-06-01 08:32:09 -04:00
Nick Mathewson 3e693fa717 Add test for mutability of RelayFamily. 2022-06-01 08:32:09 -04:00
Nick Mathewson 526fd424f7 Tests for tor_netdoc::util::intern 2022-06-01 08:32:09 -04:00
Nick Mathewson 43028b94a5 Merge branch 'lint-followup' into 'main'
Improve maint/add_warning

Closes #494

See merge request tpo/core/arti!560
2022-06-01 10:04:50 +00:00
Ian Jackson 98ccd7e7e2 Merge branch 'lint' into 'main'
lints: Make lint blocks consistent and ensure they stay that way

Closes #469

See merge request tpo/core/arti!557
2022-05-31 18:27:53 +00:00
Alex Xu (Hello71) bc6b02045e fs-mistrust: Improve BadPermission string
To me, "Incorrect permissions on file or directory /path: g=w o=w"
implies that the current permissions on /path are 022.

Change the message to "Incorrect permissions: /path is
u=rwx,g=rwx,o=rwx; need g-w,o-w", which is closer to chmod syntax and is
more useful in non-interactive environments such as CI and support.
2022-05-31 14:23:01 -04:00
Ian Jackson 2730bed5bd maint/add_warning: Convert remaining asserts 2022-05-31 19:16:09 +01:00
Alex Xu (Hello71) 201107906c fs-mistrust: BadPermission(_, _) -> BadPermission(..)
Next commit adds another parameter to Error::BadPermission.
2022-05-31 14:15:03 -04:00
Ian Jackson 6c52fa675b maint/add_warning: Introduce ImproperFile and convert one assert 2022-05-31 19:14:19 +01:00
Ian Jackson 7e96664140 maint/add_warning: Use python3 argparse 2022-05-31 19:03:38 +01:00
Nick Mathewson c8997b652a Add check_licenses to CI.
The artifact-caching logic is taken from other examples in the
.gitlab-ci.yml.
2022-05-31 14:01:21 -04:00
Nick Mathewson 842e6a697d check_licenses: list new crates with manual license verification
Closes #462.

Note that the license on `ring` is slightly problematic for some
users, including as it does old the openssl license[^1], with
advertising clause and all.  That's not a blocker for us now, since
`ring` is not a required dependency.  But we wouldn't want `ring` to
become a mandatory dependency because of this.

[^1]: To make the situation even more complicated, modern openssl
      has relicensed under apache-2.0, but that doesn't necessarily
      help us, since ring took its code from boringssll, which
      forked from an older version of openssl.
2022-05-31 13:58:40 -04:00
Ian Jackson 47a10fa84c maint/add_warning: Add "how to fix" to error message
As per
  https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/557#note_2808879
2022-05-31 18:54:08 +01:00
Ian Jackson 3c3cdbcf9a maint/add_warning: Run with --check in CI 2022-05-31 18:54:08 +01:00
Ian Jackson 89b4a59048 maint/add_warning: Provide --check mode 2022-05-31 18:54:08 +01:00
Ian Jackson c2939b5f74 maint/add_warning: Change shebang to python3
"python" sometimes means Python 2.
2022-05-31 18:53:49 +01:00
Ian Jackson 00f82a7f4d maint/add_warning: Use .tmp~ for temp filename, not .bak
"bak" ought to be a backup file, with the old contents, which this
most definitely isn't.
2022-05-31 18:53:47 +01:00
Nick Mathewson a53b3d67d8 Merge branch 'data-stream-err' into 'main'
proto: Only ready a DataStream if CONNECTED was succesfully received

See merge request tpo/core/arti!556
2022-05-31 17:05:39 +00:00
Ian Jackson 9aec60871c Merge branch 'config-test' into 'main'
arti config: Check that example config is exhaustive

See merge request tpo/core/arti!546
2022-05-31 16:33:27 +00:00
trinity-1686a 1d41ae92c7 use the right feature name for llcrypto openssl 2022-05-31 18:27:51 +02:00
Ian Jackson 558ae0673d Merge branch 'self_digests_error_if_0' into 'main'
tor-dirclient: Require that self.digests is nonempty

See merge request tpo/core/arti!553
2022-05-31 16:21:28 +00:00
David Goulet 710709313b proto: Only ready a DataStream if CONNECTED was succesfully received
Signed-off-by: David Goulet <dgoulet@torproject.org>
2022-05-31 12:20:18 -04:00
Ian Jackson 89c4f76b6c tor-config: Suppress unwrap lint in tests
As per
  https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/546#note_2808892
2022-05-31 16:58:14 +01:00
Nick Mathewson d707f6215e Merge branch 'config-desc' into 'main'
arti-config: Change description of tombstone crate

See merge request tpo/core/arti!558
2022-05-31 15:25:44 +00:00
Ian Jackson 5b684020ed tor-config: resolve_option tests: disable rsutfmt 2022-05-31 16:06:32 +01:00
Ian Jackson c2fa37c56a tor-config: Add comprehensive tests for resolve_option 2022-05-31 16:06:32 +01:00
Ian Jackson 32e4baa4c4 arti: Demote itertools back to dev-dependency 2022-05-31 15:45:07 +01:00
Ian Jackson c938eeb386 arti-config: Change description of tombstone crate
I was looking to see if we could delete this altogether but I
discovered that on lib.rs the description does not say it's a removed
crate, in the summaries.

Fix this.
2022-05-31 15:26:41 +01:00
Ian Jackson fec706c2f3 lints: Make lint blocks consistent
The remaining consequences of running add_warning
2022-05-31 15:24:11 +01:00
Ian Jackson 91b341de34 lints: arti-testing: Move some allows outside the auto block 2022-05-31 15:24:01 +01:00
Ian Jackson de92a295fb lints: tor-protover: Move two allows outside the auto block
These need to survive.
2022-05-31 15:24:01 +01:00
Ian Jackson 4f42101554 lints: Add let_unit_value allow to all crates
From running add_warning, with manual picking of the right
hunks/lines.
2022-05-31 15:23:52 +01:00
Nick Mathewson f67c0eaf50 Merge branch 'tor-config-tests' into 'main'
Add a few coverage-based tests to tor-config.

See merge request tpo/core/arti!540
2022-05-31 14:08:51 +00:00