1
Serge A. Zaitsev <zaitsev.serge@gmail.com>
parents:
diff
changeset
|
1 # Bricolage
|
Serge A. Zaitsev <zaitsev.serge@gmail.com>
parents:
diff
changeset
|
2
|
Serge A. Zaitsev <zaitsev.serge@gmail.com>
parents:
diff
changeset
|
3 Bricolage is an ultimately minimal testing library for UNIX Shell. It follows the idea of klud.js and gambiarra.lua
|
Serge A. Zaitsev <zaitsev.serge@gmail.com>
parents:
diff
changeset
|
4
|
Serge A. Zaitsev <zaitsev.serge@gmail.com>
parents:
diff
changeset
|
5 ## Usage
|
Serge A. Zaitsev <zaitsev.serge@gmail.com>
parents:
diff
changeset
|
6
|
Serge A. Zaitsev <zaitsev.serge@gmail.com>
parents:
diff
changeset
|
7 # include b.sh
|
Serge A. Zaitsev <zaitsev.serge@gmail.com>
parents:
diff
changeset
|
8 . b.sh
|
Serge A. Zaitsev <zaitsev.serge@gmail.com>
parents:
diff
changeset
|
9
|
Serge A. Zaitsev <zaitsev.serge@gmail.com>
parents:
diff
changeset
|
10 # optionally define pass/fail handlers
|
Serge A. Zaitsev <zaitsev.serge@gmail.com>
parents:
diff
changeset
|
11 pass() {
|
Serge A. Zaitsev <zaitsev.serge@gmail.com>
parents:
diff
changeset
|
12 echo "PASS $*"
|
Serge A. Zaitsev <zaitsev.serge@gmail.com>
parents:
diff
changeset
|
13 }
|
Serge A. Zaitsev <zaitsev.serge@gmail.com>
parents:
diff
changeset
|
14
|
Serge A. Zaitsev <zaitsev.serge@gmail.com>
parents:
diff
changeset
|
15 fail() {
|
Serge A. Zaitsev <zaitsev.serge@gmail.com>
parents:
diff
changeset
|
16 echo "FAIL $*"
|
Serge A. Zaitsev <zaitsev.serge@gmail.com>
parents:
diff
changeset
|
17 }
|
Serge A. Zaitsev <zaitsev.serge@gmail.com>
parents:
diff
changeset
|
18
|
Serge A. Zaitsev <zaitsev.serge@gmail.com>
parents:
diff
changeset
|
19 # write your test functions
|
Serge A. Zaitsev <zaitsev.serge@gmail.com>
parents:
diff
changeset
|
20 mytest() {
|
Serge A. Zaitsev <zaitsev.serge@gmail.com>
parents:
diff
changeset
|
21 # inside use test assertions
|
Serge A. Zaitsev <zaitsev.serge@gmail.com>
parents:
diff
changeset
|
22 ok 1 -eq 1
|
Serge A. Zaitsev <zaitsev.serge@gmail.com>
parents:
diff
changeset
|
23 ok $FOO = "somevalue"
|
Serge A. Zaitsev <zaitsev.serge@gmail.com>
parents:
diff
changeset
|
24 # mock/spy some commands
|
Serge A. Zaitsev <zaitsev.serge@gmail.com>
parents:
diff
changeset
|
25 spy ls
|
Serge A. Zaitsev <zaitsev.serge@gmail.com>
parents:
diff
changeset
|
26 # give fake command output
|
Serge A. Zaitsev <zaitsev.serge@gmail.com>
parents:
diff
changeset
|
27 echo "file.txt" > $T/spy.ls
|
Serge A. Zaitsev <zaitsev.serge@gmail.com>
parents:
diff
changeset
|
28 # use fake ls
|
Serge A. Zaitsev <zaitsev.serge@gmail.com>
parents:
diff
changeset
|
29 ls /some/dir
|
Serge A. Zaitsev <zaitsev.serge@gmail.com>
parents:
diff
changeset
|
30 # ensure that argument was passed correctly
|
Serge A. Zaitsev <zaitsev.serge@gmail.com>
parents:
diff
changeset
|
31 ok $(cat $T/spy.ls.args) = "/some/dir"
|
Serge A. Zaitsev <zaitsev.serge@gmail.com>
parents:
diff
changeset
|
32 # ensure that command return expected output
|
Serge A. Zaitsev <zaitsev.serge@gmail.com>
parents:
diff
changeset
|
33 ok $(cat $T/spy.ls.stdout) = "file.txt"
|
Serge A. Zaitsev <zaitsev.serge@gmail.com>
parents:
diff
changeset
|
34 }
|
Serge A. Zaitsev <zaitsev.serge@gmail.com>
parents:
diff
changeset
|
35
|
Serge A. Zaitsev <zaitsev.serge@gmail.com>
parents:
diff
changeset
|
36 # run your tests
|
Serge A. Zaitsev <zaitsev.serge@gmail.com>
parents:
diff
changeset
|
37 bricolage mytest
|
Serge A. Zaitsev <zaitsev.serge@gmail.com>
parents:
diff
changeset
|
38
|
Serge A. Zaitsev <zaitsev.serge@gmail.com>
parents:
diff
changeset
|
39 # cleanup
|
Serge A. Zaitsev <zaitsev.serge@gmail.com>
parents:
diff
changeset
|
40 rm -r $T
|
Serge A. Zaitsev <zaitsev.serge@gmail.com>
parents:
diff
changeset
|
41
|
Serge A. Zaitsev <zaitsev.serge@gmail.com>
parents:
diff
changeset
|
42 ## License
|
Serge A. Zaitsev <zaitsev.serge@gmail.com>
parents:
diff
changeset
|
43
|
Serge A. Zaitsev <zaitsev.serge@gmail.com>
parents:
diff
changeset
|
44 Distributed under MIT license
|