| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| |
|
|
|
|
|
|
|
| |
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
|
| | |
|
| |
|
|
|
| |
This keeps everything together and avoids clobbering previous artifacts,
since chutney already creates a unique nodes dir in every run.
|
| |
|
|
|
|
| |
This makes the chutney network configuration available *before* we
generate the shadow config file, which we need in order to generate
multi-host networks.
|
| |
|
|
|
|
| |
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).
|
| |
|
|
|
|
|
| |
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.
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
| |
shadow's default behavior of spin-looping is bad behavior in a shared
environment.
This is already disabled in integration-shadow.
|
| |
|
|
|
|
| |
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.
|
| | |
|
| | |
|
| |
|
|
|
| |
Test the arti-extra bin, which includes most of `full` and
`experimental` features, too.
|
| | |
|
| |
|
|
|
| |
The default has been increased to 300, so there's no need to override it
here.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
| |
This helps avoid subtle mismatches of the sort fixed in the previous
commit.
|
| |
|
|
|
| |
We were accidentally using the arti-bin command-line arg to also
override arti-bench-bin.
|
| | |
|
| |
|
|
| |
Everything now uses the json version, instead.
|
| | |
|
| | |
|
| |
|
|
|
| |
No particular need to separate them, and the merged version is easier to
follow.
|
| |
|
|
|
|
| |
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.
|
| | |
|
| |
|
|
|
|
|
| |
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.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
| |
* 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`.
|
| | |
|
| | |
|
| |
|
|
|
| |
This is primarily a proof-of-concept for converting these scripts before
tackling the more complext 'test' script.
|
| | |
|
| |
|
|
|
| |
In particular, use `str` instead of `Path`, so that it's directly
encodable and decodable by the json module.
|
| | |
|
| |
|
|
|
|
| |
Previously this was naively wrapping strings in double-quotes. This
works ok for escaping internal whitespace, but doesn't escape other
special characters.
|
| |
|
|
| |
Bump chutney, and migrate to CLI changes introduced in chutney!101
|
| | |
|
| |
|
|
| |
Also search several candidate paths.
|
| |
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
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).
|
| |
|
|
|
|
| |
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.
|
| | |
|
| | |
|
| |
|
|
|
| |
We avoid much refactoring at this step to minimize functional changes
from the shell script.
|
| | |
|