We need to make PTs in general, and Snowflake in particular, more reliable and well-tested. On way to do that is with realistic integration tests, using Chutney.
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Child items
0
Show closed items
No child items are currently assigned. Use child items to break down this issue into smaller parts.
Linked items
0
Link issues together to show that they're related.
Learn more.
Let's review these tickets at the next meeting using our 041-proposed process.
They're on the roadmap, so the review should focus on ticket size and team capacity (and sponsor expectations).
I am interested in doing this ticket in February, or if I take a break from PrivCount in January. I can also work with someone else to make it happen. (Or review their changes.)
This was written to run in the Docker-based snowflake test environment, which could potentially be used for CI (and would work quite well with gitlab if we more the repo there).
It's very simple right now: it runs each piece of Snowflake in a docker container and greps the logs for common error messages. Pull requests, advice, or examples of similar tests done for little-t-tor are welcome :)
Status: I have chutney testing obfs2 via obfs4proxy in a branch called chutney-obfs4.
This is not yet ready for primetime. For example, it cannot test stuff like obfs4 that requires that the bridge be launched before the client is configured, since chutney currently wants to write every torrc before it starts up every tor.
There will be some followup work here to improve test-network.sh, to document all of this better, and to support more PTs, and to make it work with #30459 (moved).
To start this network yourself, run these:
# configure and launch everything except the bridge clientCHUTNEY_CONFIG_PHASE=1 ./chutney configure networks/bridges-obfs4CHUTNEY_LAUNCH_PHASE=1 ./chutney start networks/bridges-obfs4# wait a moment for the PT to launchsleep 2# configure and launch the bridge client. CHUTNEY_CONFIG_PHASE=2 ./chutney configure networks/bridges-obfs4CHUTNEY_LAUNCH_PHASE=2 ./chutney start networks/bridges-obfs4
As noted above, this happens in two phases because the bridge line can't be constructed until the bridge and its PT are running.
Trac: Status: new to needs_review Actualpoints: N/Ato 1
Looks good to me, I had a few minor comments and questions.
I haven't run it yet.
There will be some followup work here to improve test-network.sh, to document all of this better, and to support more PTs, and to make it work with #30459 (moved).
Did you want to make those changes in this ticket, or open another ticket?
To start this network yourself, run these:
{{{
configure and launch everything except the bridge client
There will be some followup work here to improve test-network.sh, to document all of this better, and to support more PTs, and to make it work with #30459 (moved).
Did you want to make those changes in this ticket, or open another ticket?
I'd like to make sure there is CI for these pluggable transports, I think the best way to do that is adding them to the bridge jobs. I'll try to do that later today.
There will be some followup work here to improve test-network.sh, to document all of this better, and to support more PTs, and to make it work with #30459 (moved).
Once we get pluggable transports into test-network.sh, let's think about how to test pluggable transports in Tor's CI, or in the PT CIs.
The CI failed because 0.3.4 no longer exists, and the tests fail on 0.2.9 (which is installed when 0.3.4 is not available).
We have an open ticket to remove 0.3.4 from chutney's CI.
There were a few conflicts around extra = "" and extra = '', I think I resolved them correctly, but please check I didn't mangle anything, and put this ticket back in merge_ready.
The CI will test a merge to the latest master with #30876 (moved) and #29263 (moved).
I expect that it will pass, but I want to make sure we don't have any issues with the new PT code.
Trac: Status: merge_ready to needs_review Reviewer: teor to teor, nickm
This looks fine to me (based on review of git diff chutney-obfs4 tor-github/pr/34).
Should we add documentation in the README?
Or do you want to wait until we add PTs as a feature in test-network.sh?
I'm fine with either approach, with a slight preference for the latter.
I want to change all the README examples to use test-network.sh in #30720 (moved), so there's not much point adding another raw chutney command example.