Skip to content

Latest commit

 

History

History
84 lines (57 loc) · 3.18 KB

README.md

File metadata and controls

84 lines (57 loc) · 3.18 KB

Covert Suite

The Covert Suite is a test framework and test suite that allows to test and verify that the peer-to-peer network services implemented on either side are working as expected.

The idea is that it can be used to understand the different states that all its data can have, and that it can be used as a reference point for future Peer Client implementations.

By default, it uses the node.js Client.mjs, so no external libraries and no external programs are necessary.

Requirements

Currently, Covert runs officially only on Arch Linux, though it might be possible to run it on MacOS Mojave and later, too.

In order to simulate end-to-end throttled peer-to-peer Networking correctly, Covert requires these external packages on minimalistic Unix/Linux systems:

# Install necessary packages
pacman -S --needed iproute2 kmod net-tools sudo

Additionally, the following ports have to be allowed in the Firewall to transmit and receive of both UDP/TCP data:

Command-Line Flags

  • --debug is a boolean flag to toggle the console.clear() that is otherwise called after each Review's test has been processed. If set to true, it allows explicit debugging in code without loss of process.stdout data. The default value is false.

  • --internet is a boolean flag to toggle the inclusion of network tests against the internet or online reference test suites. The default value is true.

  • --network is a string flag to emulate a traffic-controlled internet connection. It can be set to either of 1G, 2G, 3G or 4G. The default value is null.

  • --timeout is a string flag to override the timeout in seconds after which a waiting test is being skipped automatically. The default value is 10s.

If a non-flag parameter is given, it is assumed to be a Query to filter the Reviews. This allows to debug a single Review or a Suite of related Reviews.

cd /path/to/covert;

node ./covert.mjs stealth/Client;       # Execute Stealth's review/Client.mjs
node ./covert.mjs stealth/client*;      # Execute Stealth's reviews starting with "client"
node ./covert.mjs *Cache;               # Execute all reviews ending with "Cache"
node ./covert.mjs stealth/client*Cache; # Execute Stealth's reviews starting with "client" and ending with "Cache"

node ./covert.mjs --debug=true;     # Execute reviews in debug mode
node ./covert.mjs --internet=false; # Execute reviews in offline mode

Quickstart

cd /path/to/stealth;

# Show Help
node ./covert/covert.mjs;