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
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
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
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
Nick Mathewson
ca94ec72ef
Add a few coverage-based tests to tor-config.
...
There's nothing major here, but it does fill in a few gaps.
2022-05-31 08:59:30 -04:00
Nick Mathewson
9fed0b39fa
Merge branch 'dbg' into 'main'
...
Revert "Remove dbg!()s in tor-config"
See merge request tpo/core/arti!552
2022-05-31 12:38:59 +00:00
Neel Chauhan
04579c0328
tor-dirclient: Require that self.digests is nonempty
2022-05-30 11:46:54 -07:00
Ian Jackson
fe9fb6b6ee
arti config: Check that example config is exhaustive
...
This is the final piece of #457 .
2022-05-30 16:03:01 +01:00
Ian Jackson
0a324f843f
mistrust: Canonicalise prefix from Some("") to None
...
This allows us to add the proper default example to the arti example
config file.
2022-05-30 16:00:45 +01:00
Ian Jackson
ca60859dff
arti: config: Canonicalise ports, and provide example dns_port
...
Now the validated configuration will never be `Some(0)`, even if that
is what was written in the config file. The arti CLI parser can still
produce this, so we don't touch the code that actually uses this.
(Without the canonicalisation the default builder produces `None` for
the `dns_port`, but the example would produce `Some(0)`, which is
semantically identical but fails the test.)
See https://gitlab.torproject.org/tpo/core/arti/-/issues/488 for some
background.
2022-05-30 16:00:45 +01:00
Ian Jackson
fbfaecdf72
config: Provide tor_config::resolve_option and resolve journald
...
Canonicalise the `logging.journald` setting in the validated
configuration. Now it will never be `Some("")`, even if that is what
was written in the config file.
This allows us to write `journald = ""` in the example configuration.
(Without the canonicalisation the default builder produces `None` and
the example would produce `Some("")`, which are semantically identical
but fail the test.)
See https://gitlab.torproject.org/tpo/core/arti/-/issues/488 for some
background.
2022-05-30 16:00:45 +01:00
Ian Jackson
fb54b5b032
arti: config example: Add entries for tor_network fields
...
These weren't previously discussed. It's not practical or useful to
show the actual default values here.
2022-05-30 16:00:45 +01:00
Ian Jackson
116b6c30e0
arti: config example: Add some missing defaults
...
Found by my forthcoming test.
2022-05-30 16:00:45 +01:00
Ian Jackson
d365d73889
arti: example config: Arrange to uncomment logfiles
...
This makes the config default parser see just "[ ]", an empty list,
which is indeed the default.
2022-05-30 16:00:45 +01:00
Ian Jackson
b88c1c1093
tor-config: Drop Serialize and Deserialize from a test type
...
These violate our rule that *built* structs ought not to be desr.
But this is just in a test.
2022-05-30 16:00:45 +01:00
Ian Jackson
c8d5681ff1
arti: Make ProxyConfig no longer Deserialize
...
That this remained was an oversight.
2022-05-30 16:00:45 +01:00
Ian Jackson
e0d9d24348
arti: cfg: Actually uncomment *all* the things in the example
2022-05-30 16:00:45 +01:00
Ian Jackson
017906cdc7
tor-dirmgr: Fix DirSkewTolerance
...
This was upposed to be one day, I presume!
Also complete a truncated sentence in the docs.
2022-05-30 16:00:45 +01:00
Ian Jackson
5824992471
Merge branch 'post-release-fix-20220527' into 'main'
...
Fix minor issues found while publishing crates for Arti 0.4.0
See merge request tpo/core/arti!547
2022-05-30 14:57:49 +00:00
Ian Jackson
ea80f124ff
Merge branch 'bug487' into 'main'
...
fs-mistrust: add getegid() to getgrouplist() output.
Closes #487
See merge request tpo/core/arti!548
2022-05-30 14:56:49 +00:00
Ian Jackson
064521dcf2
Merge branch 'arti-cfg-tests' into 'main'
...
add unit tests for ArtiConfig public functions
See merge request tpo/core/arti!551
2022-05-30 14:23:11 +00:00
Ian Jackson
aa5e647bd2
Merge branch 'chore/integrate_cargo_sort' into 'main'
...
Lexically sort Cargo.toml dependencies
Closes #490
See merge request tpo/core/arti!549
2022-05-30 14:19:19 +00:00
Ian Jackson
573d12363b
Merge branch 'per_crate_semver' into 'main'
...
Update semver_status.md with new procedure.
See merge request tpo/core/arti!545
2022-05-30 13:47:05 +00:00
Ian Jackson
5327059775
Merge branch 'mistrust_osstring_limitation' into 'main'
...
fs-mistrust: Document problems with non-UTF8 OsString in toml
See merge request tpo/core/arti!538
2022-05-30 09:54:10 +00:00
Ian Jackson
c3de4f338b
Merge branch 'dns-dedup' into 'main'
...
deduplicate dns requests based on transaction id
Closes #411
See merge request tpo/core/arti!535
2022-05-30 09:52:11 +00:00
trinity-1686a
266b278c74
deduplicate dns requests based on transaction id
2022-05-30 09:52:11 +00:00
michael mccune
db6842f666
add unit tests for ArtiConfig public functions
...
this change adds some simple tests for the ArtiConfig public getter
functions to help expand coverage in this crate.
2022-05-28 20:41:31 -04:00
Orhun Parmaksız
bfd41ddb5f
Lexically sort Cargo.toml dependencies
...
Utilize cargo-sort: https://github.com/DevinR528/cargo-sort
Signed-off-by: Orhun Parmaksız <orhunparmaksiz@gmail.com>
2022-05-28 20:05:51 +03:00
Nick Mathewson
a58eaa2893
fs-mistrust: add getegid() to getgrouplist() output.
...
This fixes a unit test failure in weird environments (like some
containers) where the current effective GID is not included in the
list of current groups.
Closes #487 .
Bug reported by @sjm217.
2022-05-27 14:14:29 -04:00
Nick Mathewson
5b1622c283
tor-rtcompat: Fix a warning when building with no backends.
...
Cargo publish (and probably nobody else!) builds this crate with no
features enabled. When you do that, you get a warning about an
unused `use std::io`.
Fixing that.
2022-05-27 14:07:06 -04:00
Nick Mathewson
9d36925700
Move tor-error crate to the "rust-patterns" category.
...
There is no "tor" category; crates.io warned about this.
2022-05-27 14:02:17 -04:00
Nick Mathewson
75f968017d
Merge branch 'macro' into 'main'
...
Suppress new "unused_macro_rules" lint in one place
See merge request tpo/core/arti!544
2022-05-27 17:20:13 +00:00
Ian Jackson
35e3841e4c
Revert "Remove dbg!()s in tor-config"
...
This was done because Nightly Rust complained about these, despite
them all being in tests. That is now fixed upstream:
https://github.com/rust-lang/rust-clippy/issues/8758
https://github.com/rust-lang/rust-clippy/pull/8838
This reverts commit 9d26a91886
.
2022-05-27 18:14:03 +01:00
Ian Jackson
0173fce2e9
tor-netdoc: Allow suppressing unknown lints
...
We want to supress the unused_macro_rules lint in one place but it's
new in Nightly and this triggers yet another lint.
2022-05-27 17:36:54 +01:00
Ian Jackson
1f067c0237
tor-netdoc: Suppress new "unused_macro_rules" lint in one place
...
The compiler can apparently tell that we aren't generating compile
errors! Also that we're not yet using a feature provided here.
(New lint in currently Nightly.)
2022-05-27 17:36:52 +01:00
Nick Mathewson
c9552220dc
Update semver_status.md with new procedure.
...
Now (per discussion on #471 ) we use one file per crate.
I've tried to be more explicit about the format to use, and what to
add when.
2022-05-27 11:55:29 -04:00
Nick Mathewson
ed518c5a2b
Merge branch 'fix-coverage-help' into 'main'
...
Fix "coverage -h" command
See merge request tpo/core/arti!539
2022-05-27 15:41:56 +00:00
Nick Mathewson
c5e9b81374
Merge branch 'bench-default-chutney' into 'main'
...
add default chutney path to arti-bench script
See merge request tpo/core/arti!541
2022-05-27 15:41:11 +00:00
Nick Mathewson
4f7e06fe17
Clear out 0.4.0 semver-status
2022-05-27 11:36:33 -04:00
Nick Mathewson
4326aa1de9
Regenerate version bump from previous commit.
...
This commit was made by reverting the previous commit, then
re-running the script I used to generate it. In theory there should
be no semantic changes: only changes due to improved formatting from
cargo edit.
2022-05-27 10:18:52 -04:00