From e5f24dc26b8469be623a8f6105f54f4171b19c3a Mon Sep 17 00:00:00 2001 From: Juan Batiz-Benet Date: Sun, 4 Jan 2015 22:22:45 -0800 Subject: [PATCH] sharness: expanded on readme --- test/README.md | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/test/README.md b/test/README.md index abf238223..8f793da45 100644 --- a/test/README.md +++ b/test/README.md @@ -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 +```