Opened 8 months ago

Last modified 2 months ago

#29259 assigned task

Ensure high test coverage for Snowflake

Reported by: ahf Owned by: cohosh
Priority: Medium Milestone:
Component: Circumvention/Snowflake Version:
Severity: Normal Keywords: anti-censorship-roadmap-september
Cc: dcf, arlolra, cohosh Actual Points:
Parent ID: Points:
Reviewer: Sponsor: Sponsor28-must

Description (last modified by cohosh)

We should aim for high test coverage and proper CI setup for Snowflake as early as possible in the process to ensure that we don't cause regressions or break things "randomly".

Known issues:

  • We don't currently have many proxy-go tests.
  • Tests in client/lib/rendezvous.go rely on specific HTTP response bodies which is prone to change and unnecessary

Child Tickets

TicketStatusOwnerSummaryComponent
#29489closedcohoshSet up automated local testing environment for SnowflakeCircumvention/Snowflake
#30867assignedcohoshWrite proxy-go tests to cover existing implementationCircumvention/Snowflake
#30868closedModify client rendezvous library to remove hard-coded responsesCircumvention/Snowflake
#30878assignedcohoshSet up snowbox to simulate censorshipCircumvention/Snowflake

Change History (12)

comment:1 Changed 5 months ago by cohosh

Description: modified (diff)

comment:2 Changed 4 months ago by cohosh

Description: modified (diff)

comment:3 Changed 4 months ago by cohosh

Owner: set to cohosh
Status: newassigned

comment:4 Changed 4 months ago by gaba

Keywords: ex-sponsor-19 added

Adding the keyword to mark everything that didn't fit into the time for sponsor 19.

comment:5 Changed 4 months ago by phw

Sponsor: Sponsor19Sponsor28-must

Moving from Sponsor 19 to Sponsor 28.

comment:6 Changed 3 months ago by cohosh

Description: modified (diff)

comment:7 Changed 3 months ago by arlolra

Since we have js and go implementations of the proxy, it might be nice to have a test runner that can exercise both in some language independent way. Just a thought.

comment:8 Changed 3 months ago by cohosh

Hm, this is an interesting idea, but it sounds like a lot more work. I suppose the goal of this would be to make sure that both versions show the same (or similar) behaviours?

The broker-facing functions (pollOffer and sendAnswer) and the proxying functions appear similarly structured across the two projects at least. We'd probably still want some independent tests for each implementation since they do differ a bit in how they work (e.g., the proxy-go instance uses tokens to handle multiple clients at once).

comment:9 Changed 3 months ago by arlolra

I suppose the goal of this would be to make sure that both versions show the same (or similar) behaviours?

Ya, that they comply with some sort of specification.

We'd probably still want some independent tests for each implementation since they do differ a bit in how they work (e.g., the proxy-go instance uses tokens to handle multiple clients at once).

That's only because it hasn't been implemented on the js side yet, see #25601

But yes, to your point, I was thinking more in terms of integration than unit testing.

comment:10 Changed 3 months ago by gaba

Keywords: anti-censorship-roadmap added

comment:11 Changed 2 months ago by arlolra

Milestone: Tor: unspecified
Version: Tor: unspecified

comment:12 Changed 2 months ago by gaba

Keywords: anti-censorship-roadmap-september added; ex-sponsor-19 anti-censorship-roadmap removed
Note: See TracTickets for help on using tickets.