summaryrefslogtreecommitdiff
path: root/tests/chutney
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-211-0/+4
| | | | | | 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.
* chutney CI: add hidden servicesJim Newsome2026-04-022-1/+23
|
* chutney test: enable loggingJim Newsome2026-04-021-0/+2
|
* 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.
* 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
|
* chutney ci: make arti-bench bin configurableJim Newsome2025-10-092-1/+43
| | | | Also search several candidate paths.
* chutney ci setup: encapsulate config as a wholeJim Newsome2025-09-291-23/+35
| | | | | | This is partly just to get more code out of "main", but also paves the way a bit for reusing this config code in the `integration-e2e-shadow` wrapper script, to support the same command-line arguments there.
* chutney CI: store and use jq pathJim Newsome2025-09-292-5/+5
| | | | | | Since we're validating the presence of jq, we might as well handle it consistently with the other dependencies and provide a way to specify where it is.
* chutney setup: refactor config options into Resolver objectsJim Newsome2025-09-291-79/+127
| | | | | | Encapsulate the logic of finding and validating each option into their own objects (e.g. so that specification of corresponding command-line option goes together with other related logic).
* chutney ci: remove CHUTNEY_BIN env variableJim Newsome2025-09-295-17/+10
| | | | | | This wasn't a pre-existing environment variable, and now it can be set via command-line if it needs to be overridden. I don't see much reason to use an environment variable here.
* chutney ci setup: allow bin locations to be set by cmd lineJim Newsome2025-09-291-20/+36
|
* chutney setup: break into functionsJim Newsome2025-09-291-36/+50
|
* chutney ci: rewrite setup script in pythonJim Newsome2025-09-291-92/+75
| | | | | We avoid much refactoring at this step to minimize functional changes from the shell script.
* chutney CI: move benchmark from e2e script to `test` scriptJim Newsome2025-09-292-12/+7
|