1
0
mirror of https://github.com/ipfs/kubo.git synced 2025-06-29 01:12:24 +08:00

sharness: expanded on readme

This commit is contained in:
Juan Batiz-Benet
2015-01-04 22:22:45 -08:00
parent be4191d800
commit e5f24dc26b

View File

@ -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 If you really need some changes in sharness, please fork it from
[its cannonical repo](https://github.com/mlafeldt/sharness/) and [its cannonical repo](https://github.com/mlafeldt/sharness/) and
send pull requests there. 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
```