aboutsummaryrefslogtreecommitdiff
path: root/tests
Commit message (Collapse)AuthorAgeFilesLines
* integration-e2e-shadow: use shadow-exec to forward output to consoleJim Newsome2026-07-271-19/+14
|
* integration-e2e-shadow: use shadowtools.config to typecheck generated shadow ↵Jim Newsome2026-07-271-39/+39
| | | | | | | | | config * build shadowtools python package in `build-shadow` job * install the shadowtools python package in python3-checks, so that usage can be checked with mypy. * integration-e2e-shadow: generate typed shadow config
* integration-e2e-shadow: change default data-dir to TOPLEVEL/chutney-netJim Newsome2026-07-231-1/+3
|
* integration-e2e-shadow: move artifacts into nodes dirJim Newsome2026-07-232-13/+23
| | | | | This keeps everything together and avoids clobbering previous artifacts, since chutney already creates a unique nodes dir in every run.
* integration-e2e-shadow: config and init outside of shadowJim Newsome2026-07-231-10/+19
| | | | | | This makes the chutney network configuration available *before* we generate the shadow config file, which we need in order to generate multi-host networks.
* chutney test: split network init from network bootstrapJim Newsome2026-07-233-10/+16
| | | | | | This is in preparation to move the init step outside of the shadow simulation in integration-e2e-shadow (while leaving the bootstrap step inside the shadow simulation).
* integration-e2e-shadow: inline integration-e2eJim Newsome2026-07-231-2/+30
| | | | | | | This is in preparation to diverge somewhat. In particular, we want to do some of the configuration and setup from *outside* of shadow, so that we can generate shadow configs that take the chutney network configuration into account.
* integration-e2e-shadow: add support for subcommandsJim Newsome2026-07-231-1/+3
|
* integration-e2e-shadow: split out helper _configure_and_run_shadowJim Newsome2026-07-231-10/+13
|
* chutney test network: add 4 suitable middle/guard/vg relaysJim Newsome2026-06-151-3/+9
| | | | | | | | | | | | | | | | | | | | | | | | With the chutney bump in the previous commit alone, we hit arti#2463 consistently. According to the spec, a hidden service using vanguards-lite needs 2 guards and 4 vanguards <https://spec.torproject.org/vanguards-spec/index.html>. All 6 of those relays need to be Fast and Stable. At least the 2 guards also need to be Measured. (Probably the 4 vanguards too, but I haven't verified). authority relays are never considered Measured. Prior to the chutney bump, none of the relays were, but since chutney!142, we create a bandwidth file to ensure the non-authorities *are* Measured, and will get the Fast flag. (IIUC, tor doesn't apply the bandwidth measurements to authorities). Maybe the presence of *some* measured relays gets us out of some fallback path that was getting used before to allow unmeasured relays? Adding the additional relays seems to fix the issue.
* integration-chutney-shadow: disable shadow spin-loopingJim Newsome2026-04-211-0/+3
| | | | | | | shadow's default behavior of spin-looping is bad behavior in a shared environment. This is already disabled in integration-shadow.
* CI: Disble shadow cpu-pinningJim Newsome2026-04-212-0/+5
| | | | | | In CI, shadow's default behavior of pinning to CPU cores can result in multiple instances of shadow fighting over the same CPU cores instead of using idle ones.
* integration-shadow: remove torrc parameter tuningJim Newsome2026-04-081-5/+17
| | | | | | | | | | | | | | | | | These were originally blindly copied over from shadow's own integration test. The relatively low BandwidthRate and BandwidthBurst rates in particular could cause overload in heavily-used relays given the amount of traffic we're trying to push through the network simultaneously from different clients. I'm not aware of a specific problem the other parameters might cause, but it seems better not to have them without some concrete reason. Motivated while debugging arti#2399; we hypothesize that the bandwidth limits + bad luck of many circuits trying to use one relay at once could be a contributing factor.
* chutney CI: add hidden servicesJim Newsome2026-04-022-1/+23
|
* chutney test: enable loggingJim Newsome2026-04-021-0/+2
|
* Merge branch 'chutney-arti-extra' into 'main'Jim Newsome2026-03-185-46/+156
|\ | | | | | | | | chutney test: include arti-extra bin See merge request tpo/core/arti!3772
| * chutney test: include arti-extra binJim Newsome2026-03-114-19/+80
| | | | | | | | | | Test the arti-extra bin, which includes most of `full` and `experimental` features, too.
| * network.py: break up construction of configs listJim Newsome2026-03-111-47/+46
| |
| * chutney test: don't override CHUTNEY_START_TIMEJim Newsome2026-03-111-3/+0
| | | | | | | | | | The default has been increased to 300, so there's no need to override it here.
| * chutney ci: convert chutney-script to a normal python moduleJim Newsome2026-03-115-44/+97
| | | | | | | | | | | | | | | | | | | | | | | | | | This will give us a bit more flexibility, e.g. to pass additional arguments. Now that the python linters understand it, we fix some linting issues. We preserve the ability to run the test on other networks by making the Config.network optional. The new default of `None` means to use the built-in module to create the network. The functionality of the test itself is the same.
* | Merge branch 'shadow-keep-going' into 'main'Alexander Hansen Færøy2026-03-121-10/+14
|\ \ | |/ |/| | | | | shadow ci: keep going after first failure See merge request tpo/core/arti!3766
| * shadow ci: keep going after first failureJim Newsome2026-03-111-10/+14
| | | | | | | | It can be useful to see the outcome of the other tests/analysis.
* | chutney test setup: use explicit namespace destJim Newsome2026-03-091-10/+27
| | | | | | | | | | This helps avoid subtle mismatches of the sort fixed in the previous commit.
* | chutney test setup: fix override for arti-bench-binJim Newsome2026-03-091-1/+1
|/ | | | | We were accidentally using the arti-bin command-line arg to also override arti-bench-bin.
* chutney scripts: opt into strict typecheckingJim Newsome2026-03-091-1/+1
|
* chutney setup: no longer dump shell snippetJim Newsome2026-03-091-13/+0
| | | | Everything now uses the json version, instead.
* chutney teardown: convert from shell to pythonJim Newsome2026-03-091-10/+15
|
* chutney integration-e2e: convert from shell to pythonJim Newsome2026-03-091-7/+16
|
* chutney integration-e2e-shadow: redirect stderr to stdoutJim Newsome2026-03-092-2/+8
| | | | | No particular need to separate them, and the merged version is easier to follow.
* chutney test: use unittest frameworkJim Newsome2026-03-091-103/+125
| | | | | | This organizes the code a bit better and gives nicer output. It also separates individual test cases and subcases, continuing to try to complete other tests when one fails instead of exiting.
* Document tests/chutney/config.pyJim Newsome2026-03-051-0/+13
|
* chutney test: bump CHUTNEY commit and update to test all endpointsJim Newsome2026-03-041-50/+61
| | | | | | | chutney replaced Node.socksport (a single optional port) with Node.socksport_endpoints (a sequence of bound addresses and ports). Update for compatibility, and test all of the exposed endpoints where relevant.
* chutney test: test all relevant clients, not just an arbitrary oneJim Newsome2026-03-041-53/+56
|
* chutney test: don't shell out to chutney for 'verify' testJim Newsome2026-03-041-2/+3
|
* chutney test: drop jq dependencyJim Newsome2026-03-042-25/+0
|
* chutney test: use chutney module to inspect NetworkJim Newsome2026-03-041-29/+31
| | | | | | | | | | | * Gets rid of shelling out to jq. We could also accomplish that with the json module, but this way also gives us: * Better error detection and handling. In particular this lets mypy statically detect trying to access fields of the wrong name or type. It will also make it easier to bump to the latest chutney, which has replaced `socksport` with `socksport_endpoints`, which would be more difficult to work with as json, especially via `jq`.
* chutney test: move some common functionality into a moduleJim Newsome2026-03-043-14/+22
|
* chutney test: convert to pythonJim Newsome2026-03-042-39/+103
|
* chutney bootstrap: convert to pythonJim Newsome2026-03-042-11/+32
| | | | | This is primarily a proof-of-concept for converting these scripts before tackling the more complext 'test' script.
* chutney test: dump config as json, for use by python scriptsJim Newsome2026-03-042-1/+8
|
* chutney Config: use json-friendly typesJim Newsome2026-03-042-10/+10
| | | | | In particular, use `str` instead of `Path`, so that it's directly encodable and decodable by the json module.
* chutney CI: move config class to a module for reuseJim Newsome2026-03-042-10/+20
|
* tests/chutney/setup: use shlex.quoteJim Newsome2026-01-211-6/+10
| | | | | | Previously this was naively wrapping strings in double-quotes. This works ok for escaping internal whitespace, but doesn't escape other special characters.
* Bump chutneyJim Newsome2026-01-214-6/+9
| | | | Bump chutney, and migrate to CLI changes introduced in chutney!101
* Bump blackJim Newsome2026-01-211-24/+8
|
* shadow CI: disable stallouts for onion clientsJim Newsome2025-12-087-0/+21
| | | | | | | | | | | | tgen aborts a stream and starts the next one when the "stallout" timeout is reached. In some cases the arti (or tor) client just needs a bit more time to establish a connection to the hidden service. A potential downside is that if a single stream "stalls" forever without an explicit error, tgen will never give up on it, and thus never try any more streams. We can worry about that if and when we see it though; and it would indicate a likely bug since the known clients and servers in this test shouldn't stall indefinitely in this way.
* shadow CI: *increase* required success rate for c-tor clientJim Newsome2025-12-021-5/+5
| | | | | | | None of the failures currently recorded in https://gitlab.torproject.org/tpo/core/arti/-/issues/2209 involve the c-tor client. I think we can safely require all xfers to succeed for the c-tor client.
* shadow CI: reduce arti client HS required successesJim Newsome2025-12-021-7/+7
| | | | | | | | From 9/10 to 5/10. This is to mitigate flakiness. See https://gitlab.torproject.org/tpo/core/arti/-/issues/2209#note_3295789
* ci: Improve formatting of shadow results.Wesley Aptekar-Cassels2025-11-251-3/+3
| | | | Having this all on one line makes it easier to read.
* ci: Print host names in shadow run script.Wesley Aptekar-Cassels2025-11-251-1/+1
| | | | Now that we no longer echo these, this is useful.