mirror of
https://github.com/ipfs/kubo.git
synced 2025-06-28 17:03:58 +08:00
sharness: expanded on readme
This commit is contained in:
@ -24,3 +24,66 @@ Please do not change anything in the "lib/sharness" directory.
|
||||
If you really need some changes in sharness, please fork it from
|
||||
[its cannonical repo](https://github.com/mlafeldt/sharness/) and
|
||||
send pull requests there.
|
||||
|
||||
## Writing Tests
|
||||
|
||||
|
||||
### Diagnostics
|
||||
|
||||
Make your test case output helpful for when running sharness verbosely.
|
||||
This means cating certain files, or running diagnostic commands.
|
||||
For example:
|
||||
|
||||
```
|
||||
test_expect_success ".go-ipfs/ has been created" '
|
||||
test -d ".go-ipfs" &&
|
||||
test -f ".go-ipfs/config" &&
|
||||
test -d ".go-ipfs/datastore" ||
|
||||
fsh ls -al .go-ipfs
|
||||
'
|
||||
```
|
||||
|
||||
The `|| ...` is a diagnostic run when the preceding command fails.
|
||||
`bin/fsh` is a trivial script that echoes the args, runs the cmd,
|
||||
and then also fails, making sure the test case fails. (wouldnt want
|
||||
the diagnostic accidentally returning true and making it _seem_ like
|
||||
the test case succeeded!).
|
||||
|
||||
|
||||
### Testing commands on daemon or mounted
|
||||
|
||||
Use the provided functions in `lib/test-lib.sh` to run the daemon or mount:
|
||||
|
||||
To init, run daemon, and mount in one go:
|
||||
|
||||
```sh
|
||||
test_launch_ipfs_daemon_and_mount
|
||||
|
||||
test_expect_success "'ipfs add --help' succeeds" '
|
||||
ipfs add --help >actual
|
||||
'
|
||||
|
||||
# other tests here...
|
||||
|
||||
# dont forget to kill the daemon!!
|
||||
test_kill_ipfs_daemon
|
||||
```
|
||||
|
||||
To init, run daemon, and then mount separately:
|
||||
|
||||
```sh
|
||||
test_init_ipfs
|
||||
|
||||
# tests inited but not running here
|
||||
|
||||
test_launch_ipfs_daemon
|
||||
|
||||
# tests running but not mounted here
|
||||
|
||||
test_mount_ipfs
|
||||
|
||||
# tests mounted here
|
||||
|
||||
# dont forget to kill the daemon!!
|
||||
test_kill_ipfs_daemon
|
||||
```
|
||||
|
Reference in New Issue
Block a user