Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add new docs page for local testing #283

Merged
merged 1 commit into from
Nov 21, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 1 addition & 36 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,42 +28,7 @@ Please refer to [Deployment](docs/run.md) page for detailed steps to compile and

## Test

### Prerequisites

* Required python version: 3.8, 3.9, 3.10, higher version is not guaranteed (e.g. failed to install `pysha3`).
* Install dependencies under root folder: `pip3 install -r requirements.txt`

### Dependencies

Python test framework will launch blockchain fullnodes at local for storage node to interact with. There are 2 kinds of fullnodes supported:

* Conflux eSpace node (by default).
* BSC node (geth).

For Conflux eSpace node, the test framework will automatically compile the binary at runtime, and copy the binary to `tests/tmp` folder. For BSC node, the test framework will automatically download the latest version binary from [github](https://github.com/bnb-chain/bsc/releases) to `tests/tmp` folder.

Alternatively, you could also manually copy specific version binaries (conflux or geth) to the `tests/tmp` folder. Note, do **NOT** copy released conflux binary on github, since block height of some CIPs are hardcoded.

For testing, it's also dependent on the following repos:

* [0G Storage Contract](https://github.com/0glabs/0g-storage-contracts): It essentially provides two abi interfaces for 0G Storage Node to interact with the on-chain contracts.
* ZgsFlow: It contains apis to submit chunk data.
* PoraMine: It contains apis to submit PoRA answers.
* [0G Storage Client](https://github.com/0glabs/0g-storage-client): It is used to interact with certain 0G Storage Nodes to upload/download files.

### Run Tests

Go to the `tests` folder and run the following command to run all tests:

```
python test_all.py
```

or, run any single test, e.g.

```
python sync_test.py
```
Please refer to the [One Box Test](docs/onebox-test.md) page for local testing purpose.

## Contributing

Expand Down
38 changes: 38 additions & 0 deletions docs/onebox-test.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# One Box Test

0G storage node provides one box test framework for developers to verify system functionalities via RPC.

## Prerequisites

- Requires python version: 3.8, 3.9 or 3.10, higher version is not guaranteed (e.g. failed to install `pysha3`).
- Installs dependencies under root folder: `pip3 install -r requirements.txt`

## Install Blockchain Nodes

Python test framework will launch blockchain nodes at local machine for storage nodes to interact with. There are 3 kinds of blockchains available:

- 0G blockchain (by default).
- Conflux eSpace (for chain reorg test purpose).
- BSC node (geth).

The blockchain node binaries will be compiled or downloaded from github to `tests/tmp` folder automatically. Alternatively, developers could also manually copy binaries of specific version to the `tests/tmp` folder.

## Run Tests

Changes to the `tests` folder and run following command to run all tests:

```
python test_all.py
```

or, run any single test, e.g.

```
python example_test.py
```

*Note, please ensure blockchain nodes installed before running any single test, e.g. run all tests at first.*

## Add New Test

Please follow the `example_test.py` to add a new `xxx_test.py` file under `tests` folder.
Loading