summaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
...
* | tor-linkspec: Remove redundant method; add more tests.Nick Mathewson2021-12-043-13/+53
| | | | | | | | | | | | | | The redundant method was a `to_owned` that probably shouldn't have been called that. It was only used in one place. The tests should get tor-linkspec's line coverage up above 90%.
* | Remove the unused "Error" type from caret.Nick Mathewson2021-12-041-24/+0
|/ | | | | | | This was a relic of the old, now-unused "caret_enum!" macro. Removing it gets caret's coverage to 100%. Yes, technically this is a semver breaker on caret.
* Idle hacking: Get 90% coverage in tor-llcryptoNick Mathewson2021-12-021-0/+112
| | | | | | | For this one I just wrote some "are things completely broken" tests for the rand_compat wrappers. These won't detect subtle biases in the RNGs! They'll only let you know if the wrappers have screwed up in some way that always sets a given bit to 1 or 0.
* Idle hacking to get 90% coverage in arti-configNick Mathewson2021-12-021-0/+18
| | | | | This is just a matter of writing a few tests for some very easy functions.
* Idle hacking to get tor-socksproto line coverage over 90%Nick Mathewson2021-12-021-1/+1
| | | | This was just a matter of adding a call to one function.
* Get tor-units grcov line coverage to 100%Nick Mathewson2021-12-021-0/+40
| | | | | | | | | | | | | | | | | | | | | | | This is mostly a finger exercise, and an experiment in "what does grcov consider to be coverage". Here's what I've found out... * In grcov's eyes, most #[derive(Foo)] lines count as containing code; but calling any one derived function counts as calling those lines. * Unlike with tarpaulin, it is actually possible to reach 100% grcov line coverage. (Tarpaulin likes to pick "}" lines and tell you that you never reached them; or sometimes it picks expression statements that have the effect of a return, and tells you that they're unreached. Even with these tests, tarpaulin claims that the line coverage of tor-units is only 97.3%.) * In rust, it may be a bit hopeless trying to get high function coverage. Even though we've hit every line of the tor-units crate, the function coverage from its own tests is only 9.38% (55.41% from other crates). I think this is probably due to derived functions, or maybe due to generics getting instantiated? I've got no idea; the denominator for the function coverage lines fluctuates oddly.
* Implement Eq,PartialEq for BoundedInt32.Nick Mathewson2021-12-021-1/+1
|
* Remove dir_port from RouterStatusBuilderNeel Chauhan2021-12-013-17/+1
|
* Merge branch 'tor-dirmgr' into 'main'eta2021-12-011-3/+9
|\ | | | | | | | | Don't warn in bootstrap_from_config when error is Error::ManagerDropped See merge request tpo/core/arti!157
| * dont warn on bootstrap error when error == manager droppeddagon2021-11-301-3/+9
| |
* | tor-netdir: Use bitflags for WeightKindNeel Chauhan2021-11-302-34/+50
| |
* | Add a semicolon.Nick Mathewson2021-11-301-1/+1
| |
* | Add constructor for TorAddr, to enforce port != 0Nick Mathewson2021-11-301-24/+30
| | | | | | | | This makes sure that we're checking for a nonzero port in all cases.
* | Merge remote-tracking branch 'origin/mr/156'Nick Mathewson2021-11-301-2/+5
|\ \
| * | arti-client: Reject Port 0 when parsing address:port combosNeel Chauhan2021-11-291-2/+5
| | |
* | | Merge remote-tracking branch 'origin/mr/154'Nick Mathewson2021-11-305-32/+481
|\ \ \
| * | | Add tests & address review commentaryeta2021-11-304-34/+269
| | | |
| * | | Actually build preemptive circuits (and minor fixes)eta2021-11-294-1/+74
| | | | | | | | | | | | | | | | | | | | | | | | The new CircMgr::build_circuits_preemptively function actually causes preemptive circuits to be built; it gets called from arti-client, like the other daemon tasks the CircMgr has.
| * | | Introduce PreemptiveCircuitPredictor and TargetCircUsage::Preemptiveeta2021-11-234-26/+167
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In preparation for making Arti build circuits preemptively, this commit introduces `TargetCircUsage::Preemptive`, a circuit usage that works somewhat differently from other ones: it requires at least 2 circuits to exist that can exit the port it contains in order for an existing circuit to match against it (path-spec.txt § 2.1.1); if that's not the case, that usage will require building new circuits (in order that we build enough to have 2 available). This required refactoring how circuit reuse worked; now, `CircList::find_open` uses the new `AbstractSpec::find_supported` trait method, which we customize to implement the above check in the case of `Preemptive` circuit usages. To make that work, `OpenEntry` now takes two type parameters (the spec and circuit types), instead of taking a builder type parameter and using its associated types. (We also got rid of type constraints on that struct, yay!) A WIP implementation of a preemptive circuit predictor that implements path-spec.txt § 2.1.1 is also included, but this will require additional effort to wire it up with the `CircMgr` properly.
* | | | Add comments about the absence of tap_key in microdesc.Nick Mathewson2021-11-301-1/+4
| | | |
* | | | Merge remote-tracking branch 'origin/mr/151'Nick Mathewson2021-11-303-57/+4
|\ \ \ \
| * | | | Parse RSA public keyNeel Chauhan2021-11-292-5/+9
| | | | |
| * | | | Remove unused tap_onion_key and tap_keyNeel Chauhan2021-11-284-64/+7
| | | | |
* | | | | Merge remote-tracking branch 'origin/mr/160'Nick Mathewson2021-11-301-17/+53
|\ \ \ \ \
| * | | | | add constructorsdagon2021-11-301-17/+53
| | |_|_|/ | |/| | |
* | | | | Merge remote-tracking branch 'origin/mr/159'Nick Mathewson2021-11-301-13/+51
|\ \ \ \ \
| * | | | | remember utf8 checkdagon2021-11-301-13/+51
| |/ / / /
* | | | | Merge branch 'readme_fixes'Nick Mathewson2021-11-3011-43/+76
|\ \ \ \ \
| * | | | | Example needs to be the same as the readmedagon2021-11-304-74/+60
| | | | | |
| * | | | | MR review feedbackdagon2021-11-303-22/+23
| | | | | |
| * | | | | fix arti-client doc exampledagon2021-11-301-25/+39
| | | | | |
| * | | | | fix example for retry-errordagon2021-11-301-2/+15
| | | | | |
| * | | | | run ./maint/readmes.shdagon2021-11-298-17/+36
| | |/ / / | |/| | |
* | | | | Fix a documentation link.Nick Mathewson2021-11-301-2/+3
| |/ / / |/| | |
* | | | Fix a bad rustdoc reference.Nick Mathewson2021-11-291-1/+1
| | | |
* | | | Merge branch 'simplify_config_helpers' into 'main'eta2021-11-296-41/+34
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | Change sane_defaults() and with_directories() See merge request tpo/core/arti!155
| * | | | Change sane_defaults() and with_directories()Nick Mathewson2021-11-296-41/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The sane_defaults() call is now the same as you get from a default builder: by convention, we just call that method Default::default(). The with_directories() constructor makes more sense as a constructor for the TorClientConfigBuilder than for TorClientConfig.
* | | | | Bump every crate by one patch version.Nick Mathewson2021-11-2928-135/+135
| | | | |
* | | | | Run "cargo update" to get latest versions.Nick Mathewson2021-11-292-0/+3
|/ / / / | | | | | | | | | | | | | | | | | | | | | | | | Also fix a couple of warnings introduced by now-unneeded imports with new ed25519 crate. This is part of the process for releasing our next version.
* | | | Merge branch 'config-updates-and-tests'Nick Mathewson2021-11-297-45/+387
|\ \ \ \ | |_|_|/ |/| | |
| * | | Document StorageConfig defaults better.Nick Mathewson2021-11-292-11/+28
| | | | | | | | | | | | | | | | (Also fix a couple of typos)
| * | | Add basic tests for high-level buildersNick Mathewson2021-11-254-4/+111
| | | | | | | | | | | | | | | | | | | | Make sure that we can change elements, and we can reconstruct builders that give us the same thing.
| * | | Implement builder patterns for ArtiConfig.Nick Mathewson2021-11-252-6/+181
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit implements the "metabuilder" pattern and the "builder reconstruction" pattern for the ArtiConfig type. I'm not 100% that this will be necessary, but it will certainly help with testing.
| * | | Resolve some warnings in tor-config testNick Mathewson2021-11-251-0/+4
| | | |
| * | | Impl and test Default for high-level configsNick Mathewson2021-11-252-3/+42
| | | |
| * | | Ensure that all config sections have deny_unknown_fieldsNick Mathewson2021-11-252-0/+3
| | | | | | | | | | | | | | | | | | | | When we deserialize a configuration, we should reject unknown variables (except when we have an explicit reason to allow them).
| * | | Make directory accessors crate-private.Nick Mathewson2021-11-251-4/+2
| | | | | | | | | | | | | | | | These don't need to be exposed any longer.
| * | | Define defaults for StorageConfigNick Mathewson2021-11-251-19/+18
| |/ / | | | | | | | | | | | | | | | | | | | | | I'm still not 100% sure this is the right move: should we encourage app developers to always pick their own directories? Or should we make it easy for them to use, well, `sane_defaults`? This patch takes the second approach.
* | | Mark a test as #[ignore]Nick Mathewson2021-11-291-0/+1
| | | | | | | | | | | | | | | | | | This test seems unreliable on CI: we've got to disable them for now so that we have a working CI system. The CI failure is #238; the ticket to repair them is #244.
* | | Merge remote-tracking branch 'origin/mr/149'Nick Mathewson2021-11-292-23/+0
|\ \ \