The Status module that consumes go-ethereum https://status.im
Go to file
Dmitry Shulyak b2580c79d7
Add destructive tests (#646)
Network disconnect is introduced by removing default gateway, easily reversible condition.

On my local machine it takes 30 seconds for peers to reconnect after connectivity is restored. As you guess this is not an accident, and there is 30 seconds timeout for dial expiration. This dial expiration is used in p2p.Server to guarantee that peers are not dialed too often.

Additionally I added small script to Makefile to run such tests in docker environment, usage example:

```
make docker-test ARGS="./t/destructive/ -v -network=4"
```
2018-02-19 17:32:58 +02:00
.github Update github-bot.yml 2018-02-08 13:00:10 +01:00
_assets Remove DefaultMinimumPow patches in favor of using whisper config (#683) 2018-02-19 15:53:40 +01:00
cmd Remove //nolint: gas directives from fmt.Fprintf #590 (#656) 2018-02-14 19:58:20 +02:00
extkeys Fix make lint warnings (#417) 2017-10-20 12:06:22 +03:00
geth Add destructive tests (#646) 2018-02-19 17:32:58 +02:00
lib Add ConnectionChange API call to backend for handling network state changes 2018-02-16 13:02:41 +01:00
metrics add node_peers Prometheus metric 2018-02-13 15:18:29 +01:00
profiling Enable gometalinter on tests and fix static analysis issues #631 (#644) 2018-02-12 13:16:06 +02:00
static Add support for metrics (#558) 2018-01-30 12:51:48 +01:00
t Add destructive tests (#646) 2018-02-19 17:32:58 +02:00
vendor Add destructive tests (#646) 2018-02-19 17:32:58 +02:00
.dockerignore Ignore *.test files from all folders (#635) 2018-02-08 14:23:08 +02:00
.gitignore .gitignore: add vim swap files (#545) 2018-01-09 18:28:03 +01:00
.gometalinter.json Disable unparam linter 2018-02-19 11:40:08 +01:00
.travis.yml Fix sync-and-exit option logic (#628) 2018-02-08 10:51:53 +02:00
Gopkg.lock Add destructive tests (#646) 2018-02-19 17:32:58 +02:00
Gopkg.toml Add destructive tests (#646) 2018-02-19 17:32:58 +02:00
LICENSE.md Create LICENSE.md 2016-09-21 10:00:29 +08:00
Makefile Add destructive tests (#646) 2018-02-19 17:32:58 +02:00
README.md Remove mentions of our fork of `go-ethereum` from docs. 2018-02-15 11:16:59 +01:00

README.md

Status bindings for go-ethereum

TravisCI Builds GoDoc Master Build Status Develop Build Status

Docs

Intro

status-go is an underlying part of Status - a browser, messenger, and gateway to a decentralized world.

It's written in Go and requires Go 1.8 or above.

It uses Makefile to do most common actions. See make help output for available commands.

status-go uses go-ethereum with some patches applied in it, located under vendor/ directory. See geth patches README for more info.

Build

There are two main modes status-go can be built:

  • standalone server
  • library to link for Android or iOS

Use following Makefile commands:

  • make statusgo (builds binary into build/bin/statusd)
  • make statusgo-android) (builds .aar file build/android-16/aar)
  • make statusgo-ios and make statusgo-ios-simulator (builds iOS related artifacts in build/os-9.3/framework)

Testing

To setup accounts passphrase you need to setup an environment variable: export ACCOUNT_PASSWORD="secret_pass_phrase".

Make sure the dependencies are installed first by running:

make lint-install
make mock-install

To test fully statusgo, use:

make ci

To test statusgo using a given network by name, use:

make ci networkid=rinkeby

To test statusgo using a given network by number ID, use:

make ci networkid=3

If you have problems running tests on public network we suggest reading e2e guide.

If you want to launch specific test, for instance RPCSendTransactions, use the following command:

go test -v ./geth/api/ -testify.m ^RPCSendTransaction$

Note -testify.m as testify/suite is used to group individual tests.

Licence

Mozilla Public License 2.0