Skip to content
Snippets Groups Projects
Select Git revision
0 results

README.md

Blame
  • README.md 6.11 KiB

    Integration

    Purpose

    This is for running the network locally on a single machine. There are 2 testing suite packages (smokeinfra and basice2e) and a general-use long-running network package (localNetwork).

    Testing Suites

    This is to automatically test all the system's components and make sure they work together correctly. These testing suites are used by the xx network team to ensure basic functionality of the network and its clients. It is a part of their CI/CD workflow. If the integration tedigga#1 st fails with an unknown or unhandled error, they look at the logs to narrow down and resolve the issue.

    SmokeInfra is a simple test of the xx network, ensuring that rounds are running. Generally speaking, this is for the xx network team and developers that wish to contribute to how the network operates.

    BasicE2E determines whether clients can send messages all the way through the system, including mixing with multiple nodes and an anonymity set greater than 1. There are several tests of the client in this package, including features such as group messaging, file transfer, etc. Whenever a new feature is introduced to the client by the xx network development team, a new test for this feature is added to this testing suite via the run script (run.sh)

    Local Network

    The localNetwork package is a more general-use network tool. This package will run a local version of the xx network on a single machine until a manually killed by the user. This can be done using either the run.sh or the runpublish.sh scripts. With this network established, a developer may, for example, test the xxDK.

    How to manually run locally

    1. Build the binaries for your operating system and place them in the bin directory.
    2. cd to any of the three previously mentioned directories and run run.sh. Observe the results and inspect the logs if things go wrong.
    3. OPTIONAL: Make changes to the run.sh script, config files, and binaries as needed based on your analysis of the logs. You may want to add more logging or build the binaries under test with race condition checking to track down problems.

    Scripts

    build.sh

    build.sh generates version information for all repositories under test and builds binaries for them in the bin/ directory.

    download_cmix_binaries.sh

    The script download_cmix_binaries.sh accepts an optional flag that specifies which platform to download the binaries for. If no flag is specified, then the script defaults to the Linux binaries. Refer to the table below for details on the flags.

    Long flag Short flag Effect
    linux l downloads the Linux binaries
    mac m downloads the Mac binaries

    A second argument can be provided which changes where the script downloads from. By default it downloads from a public bucket which includes release and master builds.

    Flag name Short flag Effect
    dev downloads d downloads from internal CI

    This script will require additional set-up steps, see the Additional Set-Up section for details.