Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
integration
Manage
Activity
Members
Labels
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Deploy
Releases
Package registry
Model registry
Operate
Terraform modules
Analyze
Contributor analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
GitLab community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
elixxir
integration
Commits
c2588eb3
Commit
c2588eb3
authored
Oct 1, 2018
by
Spencer Brown
Browse files
Options
Downloads
Patches
Plain Diff
Add readme and integration test running script
parent
91257701
No related branches found
No related tags found
No related merge requests found
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
.gitignore
+3
-0
3 additions, 0 deletions
.gitignore
README.md
+56
-0
56 additions, 0 deletions
README.md
run.sh
+14
-0
14 additions, 0 deletions
run.sh
with
73 additions
and
0 deletions
.gitignore
+
3
−
0
View file @
c2588eb3
...
...
@@ -5,3 +5,6 @@ bin/*
*results*
*/.udb-cMix-session
blob*
# Vim swap files
*.swp
*.swo
This diff is collapsed.
Click to expand it.
README.md
0 → 100644
+
56
−
0
View file @
c2588eb3
# Integration
## Purpose
This is to automatically test all the system's components and make sure they
work together correctly. If the integration test passes, it should guarantee
that clients can send messages all the way through the system, including
mixing with multiple nodes and an anonymity set greater than 1. If the
integration test fails, look at the logs and narrow down the cause by adding
more logging statements if necessary.
## How to manually run locally
1.
Build the binaries under test for your operating system and place them in
the
`bin`
directory.
1.
`cd`
to
`basice2e/`
and run
`run.sh`
. Observe the results and inspect the
logs if things go wrong.
1.
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.
## What runs on continuous integration?
The
`master`
branch of integration runs whenever you merge anything to the
`master`
branch of any of the projects that integration tests. The CI server
downloads the latest
`master`
branch binaries that any CI server built and
uses them to run
`basice2e/run.sh`
.
The benchmark branch of integration runs nightly and produces information about
how fast the software runs. It doesn't provide the full performance picture
because it runs on one modest CI server, rather than on a team of powerful
servers. However, the information it provides is sometimes useful.
So, if you make changes that break integration and merge the fixes to the
`master`
branch of integration, you ought to also merge the
`master`
branch
into the
`benchmark`
branch so that the benchmarks will continue to function.
## Automate running locally
`build.sh`
generates version information for all repositories under test and
builds binaries for them in the
`bin/`
directory.
`update.sh`
runs
`git pull`
for each repo under test, and by uncommenting the
relevant code, checks out the
`master`
branch of each repo before pulling. This
is the most useful if you're trying to fix an integration breakage in
`master`
and you want to get started right away.
In the root directory of integration,
`run.sh`
builds new binaries with
`build.sh`
, runs the
`basice2e`
integration test, and opens all the log files
in
`gedit`
for easy viewing. If you prefer some other program to view the
resulting logs, set the INTEGRATION
\_
EDITOR environment variable:
`INTEGRATION_EDITOR=emacs ./run.sh`
If you need to make a lot of exploratory changes to get things integrated,
using these utility scripts can speed up the process.
This diff is collapsed.
Click to expand it.
run.sh
0 → 100755
+
14
−
0
View file @
c2588eb3
#!/bin/bash
# Build
./build.sh
# Run
pushd
basice2e
./run.sh
popd
# View result logs
# Not using $EDITOR or $VISUAL because many editors that people set those to
# don't have as easy support for viewing multiple files
${
INTEGRATION_EDITOR
:-
gedit
}
./basice2e/results/clients/
*
.out ./basice2e/results/servers/
*
.console ./basice2e/results/gateway.log ./basice2e/results/channelbot.console&
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment