eac_git 0.1.0 → 0.3.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/eac_git/executables.rb +24 -4
- data/lib/eac_git/local.rb +5 -1
- data/lib/eac_git/local/dirty_files.rb +37 -0
- data/lib/eac_git/rspec.rb +17 -0
- data/lib/eac_git/version.rb +1 -1
- data/vendor/git-subrepo/Changes +110 -0
- data/vendor/git-subrepo/Intro.pod +509 -0
- data/vendor/git-subrepo/License +21 -0
- data/vendor/git-subrepo/Makefile +82 -0
- data/vendor/git-subrepo/Meta +28 -0
- data/vendor/git-subrepo/ReadMe.pod +698 -0
- data/vendor/git-subrepo/doc/comparison.swim +35 -0
- data/vendor/git-subrepo/doc/git-subrepo.swim +608 -0
- data/vendor/git-subrepo/doc/intro-to-subrepo.swim +387 -0
- data/vendor/git-subrepo/ext/bashplus/Changes +15 -0
- data/vendor/git-subrepo/ext/bashplus/License +21 -0
- data/vendor/git-subrepo/ext/bashplus/Makefile +45 -0
- data/vendor/git-subrepo/ext/bashplus/Meta +28 -0
- data/vendor/git-subrepo/ext/bashplus/ReadMe.pod +77 -0
- data/vendor/git-subrepo/ext/bashplus/bin/bash+ +43 -0
- data/vendor/git-subrepo/ext/bashplus/doc/bash+.swim +61 -0
- data/vendor/git-subrepo/ext/bashplus/lib/bash+.bash +92 -0
- data/vendor/git-subrepo/ext/bashplus/man/man1/bash+.1 +134 -0
- data/vendor/git-subrepo/ext/bashplus/man/man3/bash+.3 +134 -0
- data/vendor/git-subrepo/ext/bashplus/test/base.t +12 -0
- data/vendor/git-subrepo/ext/bashplus/test/fcopy.t +22 -0
- data/vendor/git-subrepo/ext/bashplus/test/lib/foo/bar.bash +3 -0
- data/vendor/git-subrepo/ext/bashplus/test/lib/foo/foo.bash +3 -0
- data/vendor/git-subrepo/ext/bashplus/test/source-bash+-std.t +18 -0
- data/vendor/git-subrepo/ext/bashplus/test/source-bash+.t +23 -0
- data/vendor/git-subrepo/ext/bashplus/test/test.bash +70 -0
- data/vendor/git-subrepo/ext/bashplus/test/use.t +19 -0
- data/vendor/git-subrepo/ext/test-more-bash/Changes +15 -0
- data/vendor/git-subrepo/ext/test-more-bash/License +21 -0
- data/vendor/git-subrepo/ext/test-more-bash/Makefile +20 -0
- data/vendor/git-subrepo/ext/test-more-bash/Meta +30 -0
- data/vendor/git-subrepo/ext/test-more-bash/ReadMe.pod +115 -0
- data/vendor/git-subrepo/ext/test-more-bash/doc/test-more.swim +89 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/Changes +15 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/License +21 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/Makefile +45 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/Meta +28 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/ReadMe.pod +77 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/bin/bash+ +43 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/doc/bash+.swim +61 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/lib/bash+.bash +92 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/man/man1/bash+.1 +134 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/man/man3/bash+.3 +134 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/test/base.t +12 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/test/fcopy.t +22 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/test/lib/foo/bar.bash +3 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/test/lib/foo/foo.bash +3 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/test/source-bash+-std.t +18 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/test/source-bash+.t +23 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/test/test.bash +70 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/test/use.t +19 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/Changes +15 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/License +21 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/Makefile +37 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/Meta +28 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/ReadMe.pod +66 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/doc/test-tap.swim +48 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/lib/test/tap.bash +153 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/man/man3/test-tap.3 +119 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/bail_out.t +13 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/done.t +10 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/fail.t +20 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/fail_fast.t +15 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/helper.bash +9 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/pass.t +9 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/plan.t +10 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/skip_all.t +20 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/tap.t +13 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/test/bail.t +14 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/test/fail.t +7 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/test/fail_fast.t +12 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/test/skip-all-init.t +8 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/test/skip-all-plan.t +9 -0
- data/vendor/git-subrepo/ext/test-more-bash/lib/test/more.bash +95 -0
- data/vendor/git-subrepo/ext/test-more-bash/man/man3/test-more.3 +173 -0
- data/vendor/git-subrepo/ext/test-more-bash/test/fail.t +20 -0
- data/vendor/git-subrepo/ext/test-more-bash/test/more.t +20 -0
- data/vendor/git-subrepo/ext/test-more-bash/test/pass.t +9 -0
- data/vendor/git-subrepo/ext/test-more-bash/test/setup +8 -0
- data/vendor/git-subrepo/ext/test-more-bash/test/skip_all.t +11 -0
- data/vendor/git-subrepo/ext/test-more-bash/test/test/fail1.t +12 -0
- data/vendor/git-subrepo/ext/test-more-bash/test/test/skip_all.t +10 -0
- data/vendor/git-subrepo/lib/git-subrepo +1903 -0
- data/vendor/git-subrepo/lib/git-subrepo.d/bash+.bash +1 -0
- data/vendor/git-subrepo/lib/git-subrepo.d/help-functions.bash +339 -0
- data/vendor/git-subrepo/man/man1/git-subrepo.1 +743 -0
- data/vendor/git-subrepo/note/0.4.0 +12 -0
- data/vendor/git-subrepo/note/AllGitCmds +148 -0
- data/vendor/git-subrepo/note/Cases +32 -0
- data/vendor/git-subrepo/note/Commands +33 -0
- data/vendor/git-subrepo/note/Dags +199 -0
- data/vendor/git-subrepo/note/Gists +7 -0
- data/vendor/git-subrepo/note/Links +25 -0
- data/vendor/git-subrepo/note/Plugins +10 -0
- data/vendor/git-subrepo/note/Spec +39 -0
- data/vendor/git-subrepo/note/Story1 +57 -0
- data/vendor/git-subrepo/note/ToDo +55 -0
- data/vendor/git-subrepo/note/design.swim +137 -0
- data/vendor/git-subrepo/note/design2.swim +85 -0
- data/vendor/git-subrepo/note/init-test +38 -0
- data/vendor/git-subrepo/note/pull-dance.txt +18 -0
- data/vendor/git-subrepo/note/recreate-rebase-conflict.sh +56 -0
- data/vendor/git-subrepo/note/subtree-rebase-fail-example/test.bash +29 -0
- data/vendor/git-subrepo/note/test-subrepo-push.sh +69 -0
- data/vendor/git-subrepo/note/test.sh +58 -0
- data/vendor/git-subrepo/pkg/bin/generate-completion.pl +210 -0
- data/vendor/git-subrepo/pkg/bin/generate-help-functions.pl +89 -0
- data/vendor/git-subrepo/share/completion.bash +42 -0
- data/vendor/git-subrepo/share/enable-completion.sh +50 -0
- data/vendor/git-subrepo/share/git-completion.bash +2738 -0
- data/vendor/git-subrepo/share/zsh-completion/_git-subrepo +81 -0
- data/vendor/git-subrepo/test/branch-all.t +41 -0
- data/vendor/git-subrepo/test/branch-rev-list-one-path.t +43 -0
- data/vendor/git-subrepo/test/branch-rev-list.t +47 -0
- data/vendor/git-subrepo/test/branch.t +52 -0
- data/vendor/git-subrepo/test/clean.t +43 -0
- data/vendor/git-subrepo/test/clone-annotated-tag.t +45 -0
- data/vendor/git-subrepo/test/clone.t +107 -0
- data/vendor/git-subrepo/test/compile.t +19 -0
- data/vendor/git-subrepo/test/config.t +58 -0
- data/vendor/git-subrepo/test/encode.t +91 -0
- data/vendor/git-subrepo/test/error.t +171 -0
- data/vendor/git-subrepo/test/fetch.t +43 -0
- data/vendor/git-subrepo/test/gitignore.t +61 -0
- data/vendor/git-subrepo/test/init.t +64 -0
- data/vendor/git-subrepo/test/issue29.t +98 -0
- data/vendor/git-subrepo/test/issue95.t +98 -0
- data/vendor/git-subrepo/test/issue96.t +96 -0
- data/vendor/git-subrepo/test/pull-all.t +38 -0
- data/vendor/git-subrepo/test/pull-merge.t +113 -0
- data/vendor/git-subrepo/test/pull-message.t +88 -0
- data/vendor/git-subrepo/test/pull-new-branch.t +58 -0
- data/vendor/git-subrepo/test/pull-ours.t +90 -0
- data/vendor/git-subrepo/test/pull-theirs.t +82 -0
- data/vendor/git-subrepo/test/pull-twice.t +44 -0
- data/vendor/git-subrepo/test/pull-worktree.t +40 -0
- data/vendor/git-subrepo/test/pull.t +99 -0
- data/vendor/git-subrepo/test/push-after-init.t +51 -0
- data/vendor/git-subrepo/test/push-force.t +56 -0
- data/vendor/git-subrepo/test/push-new-branch.t +61 -0
- data/vendor/git-subrepo/test/push-no-changes.t +29 -0
- data/vendor/git-subrepo/test/push-squash.t +56 -0
- data/vendor/git-subrepo/test/push.t +176 -0
- data/vendor/git-subrepo/test/reclone.t +45 -0
- data/vendor/git-subrepo/test/repo/bar/HEAD +1 -0
- data/vendor/git-subrepo/test/repo/bar/config +4 -0
- data/vendor/git-subrepo/test/repo/bar/objects/1f/0c4b264caed0126814a0ede851a1e0b4e16ae6 +0 -0
- data/vendor/git-subrepo/test/repo/bar/objects/87/46903fdb1b9c2101377880125917c2e05b4d69 +0 -0
- data/vendor/git-subrepo/test/repo/bar/objects/94/c86ffc745232d89f78c6f895e11e71272518db +0 -0
- data/vendor/git-subrepo/test/repo/bar/objects/c6/76c57b6576743fa56278527aa60ebd2e202a7c +0 -0
- data/vendor/git-subrepo/test/repo/bar/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391 +0 -0
- data/vendor/git-subrepo/test/repo/bar/objects/f6/2a8ff3feadf39b0a98f1a86ec6d1eb33858ee9 +0 -0
- data/vendor/git-subrepo/test/repo/bar/refs/heads/master +1 -0
- data/vendor/git-subrepo/test/repo/bar/refs/tags/A +1 -0
- data/vendor/git-subrepo/test/repo/foo/HEAD +1 -0
- data/vendor/git-subrepo/test/repo/foo/config +4 -0
- data/vendor/git-subrepo/test/repo/foo/objects/a0/f4cdaaf533a936296cdebbed8206c3b9ededa8 +0 -0
- data/vendor/git-subrepo/test/repo/foo/objects/e2/1291a1ad392a9d4c51dd9586804f1467b28afd +0 -0
- data/vendor/git-subrepo/test/repo/foo/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391 +0 -0
- data/vendor/git-subrepo/test/repo/foo/refs/heads/master +1 -0
- data/vendor/git-subrepo/test/repo/init/HEAD +1 -0
- data/vendor/git-subrepo/test/repo/init/config +5 -0
- data/vendor/git-subrepo/test/repo/init/objects/11/523f5dcf03b4c89b592dc8a3d0308f68da2386 +0 -0
- data/vendor/git-subrepo/test/repo/init/objects/14/2addf8ec5f37334e837440122c62f2c68a29ad +0 -0
- data/vendor/git-subrepo/test/repo/init/objects/32/5180321750a21cd7a4e7ecda319e557a4f6a09 +2 -0
- data/vendor/git-subrepo/test/repo/init/objects/3d/918c6901c02f43af5d31779dd5e1f9166aeb36 +0 -0
- data/vendor/git-subrepo/test/repo/init/objects/3e/4cb596066dce63ba4d047abddb677389b65e19 +0 -0
- data/vendor/git-subrepo/test/repo/init/objects/4b/6e53022e7a04f07887697e4f3d7c377fd9822b +0 -0
- data/vendor/git-subrepo/test/repo/init/objects/58/931fc1bd559b59c41ea738fc7ad04f9ad01bd3 +0 -0
- data/vendor/git-subrepo/test/repo/init/objects/5e/c0c28e1b806f25efdca18fcf7a74b49c3755bd +0 -0
- data/vendor/git-subrepo/test/repo/init/objects/75/fa6584e748f57eff06eebdc55e9ac21d4fcbf2 +1 -0
- data/vendor/git-subrepo/test/repo/init/objects/80/2d5edbd5e1cb7fca82b5bd38e7c8a0a496fb20 +0 -0
- data/vendor/git-subrepo/test/repo/init/objects/94/7b3d714c38791e95ad6f928b48c98bb8708acd +0 -0
- data/vendor/git-subrepo/test/repo/init/objects/95/e1f2df3f4d5f3d7a60588c25a7ca8a913d3c2a +1 -0
- data/vendor/git-subrepo/test/repo/init/objects/b1/5f4a7666baf40d949548ead946a3370e273479 +0 -0
- data/vendor/git-subrepo/test/repo/init/objects/c3/ee8978c4c5d84c3b7d00ba8e5906933d027882 +0 -0
- data/vendor/git-subrepo/test/repo/init/objects/c8/b0bffbc405ef3fad7354ff833fbec36d67ddfa +3 -0
- data/vendor/git-subrepo/test/repo/init/objects/dd/8bdb934ec848137f011fe423b185505c343626 +2 -0
- data/vendor/git-subrepo/test/repo/init/objects/e2/9be58c767cfeb27235c995d293a7d71aac0135 +2 -0
- data/vendor/git-subrepo/test/repo/init/objects/ee/1224401fc6aac595145fa727dcf6706ac8aec1 +1 -0
- data/vendor/git-subrepo/test/repo/init/objects/f1/cc1a657b2e805c400f5dcaaa76bd29c6178b1b +0 -0
- data/vendor/git-subrepo/test/repo/init/refs/heads/master +1 -0
- data/vendor/git-subrepo/test/setup +205 -0
- data/vendor/git-subrepo/test/status.t +68 -0
- data/vendor/git-subrepo/test/submodule.t +45 -0
- metadata +190 -4
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
Test::Tap
|
|
2
|
+
=========
|
|
3
|
+
|
|
4
|
+
TAP Test Base for Bash
|
|
5
|
+
|
|
6
|
+
<badge travis ingydotnet/test-tap-bash>
|
|
7
|
+
|
|
8
|
+
= Synopsis
|
|
9
|
+
|
|
10
|
+
source test/tap.bash
|
|
11
|
+
|
|
12
|
+
Test::Tap:plan tests 1
|
|
13
|
+
|
|
14
|
+
pass 'Everything is OK!'
|
|
15
|
+
|
|
16
|
+
= Description
|
|
17
|
+
|
|
18
|
+
This is a TAP testing base class for Bash. It has all the basic TAP functions,
|
|
19
|
+
and works properly from a TAP harness, like the `prove` utility.
|
|
20
|
+
|
|
21
|
+
test-tap-bash is used as the base for test-more-bash, which is what you want
|
|
22
|
+
if you are writing tests in bash.
|
|
23
|
+
|
|
24
|
+
See: https://github.com/ingydotnet/test-more-bash/
|
|
25
|
+
|
|
26
|
+
= Functions
|
|
27
|
+
|
|
28
|
+
- `Test::Tap:init`
|
|
29
|
+
|
|
30
|
+
Must be called first for every test file/process.
|
|
31
|
+
|
|
32
|
+
- `Test::Tap::plan`
|
|
33
|
+
|
|
34
|
+
Used to set the plan.
|
|
35
|
+
|
|
36
|
+
= TODO
|
|
37
|
+
|
|
38
|
+
* Finish this doc.
|
|
39
|
+
|
|
40
|
+
= Author
|
|
41
|
+
|
|
42
|
+
Written by Ingy döt Net <ingy@ingy.net>
|
|
43
|
+
|
|
44
|
+
= Copyright & License
|
|
45
|
+
|
|
46
|
+
Copyright 2013-2016. Ingy döt Net.
|
|
47
|
+
|
|
48
|
+
The MIT License (MIT).
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
# test/tap.bash - TAP Testing Foundation for Bash
|
|
2
|
+
#
|
|
3
|
+
# Copyright (c) 2013-2016. Ingy döt Net.
|
|
4
|
+
|
|
5
|
+
#------------------------------------------------------------------------------
|
|
6
|
+
Test::Tap:die() { echo "$@" >&2; trap EXIT; exit 1; }
|
|
7
|
+
#------------------------------------------------------------------------------
|
|
8
|
+
|
|
9
|
+
Test__Tap_VERSION=0.0.4
|
|
10
|
+
|
|
11
|
+
Test::Tap:init() {
|
|
12
|
+
[ -n "$BASH_SOURCE" ] ||
|
|
13
|
+
Test::Tap:die "Error: test-tap-bash must be run under Bash only"
|
|
14
|
+
Test__Tap_plan=0
|
|
15
|
+
Test__Tap_run=0
|
|
16
|
+
Test__Tap_failed=0
|
|
17
|
+
Test__Tap_pid=$BASHPID
|
|
18
|
+
|
|
19
|
+
if [ $# -gt 0 ]; then
|
|
20
|
+
[[ $# -eq 2 ]] ||
|
|
21
|
+
Test::Tap:die 'Usage: test/tap.bash tests <number>'
|
|
22
|
+
Test::Tap:plan "$@"
|
|
23
|
+
fi
|
|
24
|
+
|
|
25
|
+
trap Test::Tap:END EXIT
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
Test::Tap:plan() {
|
|
29
|
+
Test::Tap:_check-pid
|
|
30
|
+
[ $# -eq 2 ] ||
|
|
31
|
+
Test::Tap:die 'Usage: plan tests <number>'
|
|
32
|
+
if [ "$1" = tests ]; then
|
|
33
|
+
[[ "$2" =~ ^-?[0-9]+$ ]] ||
|
|
34
|
+
Test::Tap:die 'Plan must be a number'
|
|
35
|
+
[[ $2 -gt 0 ]] ||
|
|
36
|
+
Test::Tap:die 'Plan must greater then 0'
|
|
37
|
+
Test__Tap_plan=$2
|
|
38
|
+
printf "1..%d\n" $Test__Tap_plan
|
|
39
|
+
elif [ "$1" == skip_all ]; then
|
|
40
|
+
printf "1..0 # SKIP $2\n"
|
|
41
|
+
exit 0
|
|
42
|
+
else
|
|
43
|
+
Test::Tap:die 'Usage: plan tests <number>'
|
|
44
|
+
fi
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
Test::Tap:pass() {
|
|
48
|
+
Test::Tap:_check-pid
|
|
49
|
+
let Test__Tap_run=Test__Tap_run+1
|
|
50
|
+
local label="$1"
|
|
51
|
+
if [ -n "$label" ]; then
|
|
52
|
+
echo "ok $Test__Tap_run - $label"
|
|
53
|
+
else
|
|
54
|
+
echo "ok $Test__Tap_run"
|
|
55
|
+
fi
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
Test__Tap_CALL_STACK_LEVEL=1
|
|
59
|
+
Test::Tap:fail() {
|
|
60
|
+
Test::Tap:_check-pid
|
|
61
|
+
let Test__Tap_run=Test__Tap_run+1
|
|
62
|
+
local c=( $(caller $Test__Tap_CALL_STACK_LEVEL) )
|
|
63
|
+
local file=${c[2]}
|
|
64
|
+
local line=${c[0]}
|
|
65
|
+
local label="$1" callback="$2"
|
|
66
|
+
if [ -n "$label" ]; then
|
|
67
|
+
echo "not ok $Test__Tap_run - $label"
|
|
68
|
+
else
|
|
69
|
+
echo "not ok $Test__Tap_run"
|
|
70
|
+
fi
|
|
71
|
+
label=${label:+"'$label'\n# at $file line $line."}
|
|
72
|
+
label=${label:-"at $file line $line."}
|
|
73
|
+
echo -e "# Failed test $label" >&2
|
|
74
|
+
|
|
75
|
+
[ -n "$callback" ] && $callback
|
|
76
|
+
|
|
77
|
+
local rc=${TEST_TAP_BAIL_ON_FAIL:-0}
|
|
78
|
+
[[ $TEST_TAP_BAIL_ON_FAIL -eq 0 ]] || exit $rc
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
Test::Tap:done_testing() {
|
|
82
|
+
Test::Tap:_check-pid
|
|
83
|
+
Test__Tap_plan=$Test__Tap_run
|
|
84
|
+
echo 1..${1:-$Test__Tap_run}
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
Test::Tap:diag() {
|
|
88
|
+
Test::Tap:_check-pid
|
|
89
|
+
local msg="$@"
|
|
90
|
+
msg="# ${msg//$'\n'/$'\n'# }"
|
|
91
|
+
echo "$msg" >&2
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
Test::Tap:note() {
|
|
95
|
+
Test::Tap:_check-pid
|
|
96
|
+
local msg="$@"
|
|
97
|
+
msg="# ${msg//$'\n'/$'\n'# }"
|
|
98
|
+
echo "$msg"
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
Test::Tap:BAIL_OUT() {
|
|
102
|
+
Test::Tap:_check-pid
|
|
103
|
+
Test__Tap_bail_msg="$@"
|
|
104
|
+
: "${Test__Tap_bail_msg:=No reason given.}"
|
|
105
|
+
exit 255
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
Test::Tap:BAIL_ON_FAIL() {
|
|
109
|
+
Test::Tap:_check-pid
|
|
110
|
+
TEST_TAP_BAIL_ON_FAIL=1
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
Test::Tap:END() {
|
|
114
|
+
local rc=$?
|
|
115
|
+
Test::Tap:_check-pid
|
|
116
|
+
if [ $rc -ne 0 ]; then
|
|
117
|
+
if [ -n "$Test__Tap_bail_msg" -o -n "$TEST_TAP_BAIL_ON_FAIL" ]; then
|
|
118
|
+
local bail="${Test__Tap_bail_msg:-"Bailing out on status=$rc"}"
|
|
119
|
+
echo "Bail out! $bail"
|
|
120
|
+
exit $rc
|
|
121
|
+
fi
|
|
122
|
+
fi
|
|
123
|
+
|
|
124
|
+
for v in plan run failed; do eval local $v=\$Test__Tap_$v; done
|
|
125
|
+
if [ $plan -eq 0 ]; then
|
|
126
|
+
if [ $run -gt 0 ]; then
|
|
127
|
+
echo "# Tests were run but no plan was declared." >&2
|
|
128
|
+
fi
|
|
129
|
+
else
|
|
130
|
+
if [ $run -eq 0 ]; then
|
|
131
|
+
echo "# No tests run!" >&2
|
|
132
|
+
elif [ $run -ne $plan ]; then
|
|
133
|
+
local msg="# Looks like you planned $plan tests but ran $run."
|
|
134
|
+
[ $plan -eq 1 ] && msg=${msg/tests/test}
|
|
135
|
+
echo "$msg" >&2
|
|
136
|
+
fi
|
|
137
|
+
fi
|
|
138
|
+
local exit_code=0
|
|
139
|
+
if [ $Test__Tap_failed -gt 0 ]; then
|
|
140
|
+
exit_code=$Test__Tap_failed
|
|
141
|
+
[ $exit_code -gt 254 ] && exit_code=254
|
|
142
|
+
local msg="# Looks like you failed $failed tests of $run run."
|
|
143
|
+
[ $Test__Tap_failed -eq 1 ] && msg=${msg/tests/test}
|
|
144
|
+
echo "$msg" >&2
|
|
145
|
+
fi
|
|
146
|
+
exit $exit_code
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
Test::Tap:_check-pid() {
|
|
150
|
+
if [ ${BASHPID:-0} -ne ${Test__Tap_pid:-0} ]; then
|
|
151
|
+
die "Error: Called Test::Tap method from a subprocess" 3
|
|
152
|
+
fi
|
|
153
|
+
}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28)
|
|
2
|
+
.\"
|
|
3
|
+
.\" Standard preamble:
|
|
4
|
+
.\" ========================================================================
|
|
5
|
+
.de Sp \" Vertical space (when we can't use .PP)
|
|
6
|
+
.if t .sp .5v
|
|
7
|
+
.if n .sp
|
|
8
|
+
..
|
|
9
|
+
.de Vb \" Begin verbatim text
|
|
10
|
+
.ft CW
|
|
11
|
+
.nf
|
|
12
|
+
.ne \\$1
|
|
13
|
+
..
|
|
14
|
+
.de Ve \" End verbatim text
|
|
15
|
+
.ft R
|
|
16
|
+
.fi
|
|
17
|
+
..
|
|
18
|
+
.\" Set up some character translations and predefined strings. \*(-- will
|
|
19
|
+
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
|
|
20
|
+
.\" double quote, and \*(R" will give a right double quote. \*(C+ will
|
|
21
|
+
.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
|
|
22
|
+
.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
|
|
23
|
+
.\" nothing in troff, for use with C<>.
|
|
24
|
+
.tr \(*W-
|
|
25
|
+
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
|
|
26
|
+
.ie n \{\
|
|
27
|
+
. ds -- \(*W-
|
|
28
|
+
. ds PI pi
|
|
29
|
+
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
|
|
30
|
+
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
|
|
31
|
+
. ds L" ""
|
|
32
|
+
. ds R" ""
|
|
33
|
+
. ds C` ""
|
|
34
|
+
. ds C' ""
|
|
35
|
+
'br\}
|
|
36
|
+
.el\{\
|
|
37
|
+
. ds -- \|\(em\|
|
|
38
|
+
. ds PI \(*p
|
|
39
|
+
. ds L" ``
|
|
40
|
+
. ds R" ''
|
|
41
|
+
. ds C`
|
|
42
|
+
. ds C'
|
|
43
|
+
'br\}
|
|
44
|
+
.\"
|
|
45
|
+
.\" Escape single quotes in literal strings from groff's Unicode transform.
|
|
46
|
+
.ie \n(.g .ds Aq \(aq
|
|
47
|
+
.el .ds Aq '
|
|
48
|
+
.\"
|
|
49
|
+
.\" If the F register is turned on, we'll generate index entries on stderr for
|
|
50
|
+
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
|
|
51
|
+
.\" entries marked with X<> in POD. Of course, you'll have to process the
|
|
52
|
+
.\" output yourself in some meaningful fashion.
|
|
53
|
+
.\"
|
|
54
|
+
.\" Avoid warning from groff about undefined register 'F'.
|
|
55
|
+
.de IX
|
|
56
|
+
..
|
|
57
|
+
.nr rF 0
|
|
58
|
+
.if \n(.g .if rF .nr rF 1
|
|
59
|
+
.if (\n(rF:(\n(.g==0)) \{
|
|
60
|
+
. if \nF \{
|
|
61
|
+
. de IX
|
|
62
|
+
. tm Index:\\$1\t\\n%\t"\\$2"
|
|
63
|
+
..
|
|
64
|
+
. if !\nF==2 \{
|
|
65
|
+
. nr % 0
|
|
66
|
+
. nr F 2
|
|
67
|
+
. \}
|
|
68
|
+
. \}
|
|
69
|
+
.\}
|
|
70
|
+
.rr rF
|
|
71
|
+
.\" ========================================================================
|
|
72
|
+
.\"
|
|
73
|
+
.IX Title "Test::Tap 1"
|
|
74
|
+
.TH Test::Tap 1 "January 2016" "Generated by Swim v0.1.41" "\s-1TAP\s0 Test Base for Bash"
|
|
75
|
+
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
|
|
76
|
+
.\" way too many mistakes in technical documents.
|
|
77
|
+
.if n .ad l
|
|
78
|
+
.nh
|
|
79
|
+
.SH "Name"
|
|
80
|
+
.IX Header "Name"
|
|
81
|
+
Test::Tap \- \s-1TAP\s0 Test Base for Bash
|
|
82
|
+
.SH "Synopsis"
|
|
83
|
+
.IX Header "Synopsis"
|
|
84
|
+
.Vb 1
|
|
85
|
+
\& source test/tap.bash
|
|
86
|
+
\&
|
|
87
|
+
\& Test::Tap:plan tests 1
|
|
88
|
+
\&
|
|
89
|
+
\& pass \*(AqEverything is OK!\*(Aq
|
|
90
|
+
.Ve
|
|
91
|
+
.SH "Description"
|
|
92
|
+
.IX Header "Description"
|
|
93
|
+
This is a \s-1TAP\s0 testing base class for Bash. It has all the basic \s-1TAP\s0 functions, and works properly from a \s-1TAP\s0 harness, like the \f(CW\*(C`prove\*(C'\fR utility.
|
|
94
|
+
.PP
|
|
95
|
+
test-tap-bash is used as the base for test-more-bash, which is what you want if you are writing tests in bash.
|
|
96
|
+
.PP
|
|
97
|
+
See: <https://github.com/ingydotnet/test\-more\-bash/>
|
|
98
|
+
.SH "Functions"
|
|
99
|
+
.IX Header "Functions"
|
|
100
|
+
.ie n .IP """Test::Tap:init""" 4
|
|
101
|
+
.el .IP "\f(CWTest::Tap:init\fR" 4
|
|
102
|
+
.IX Item "Test::Tap:init"
|
|
103
|
+
Must be called first for every test file/process.
|
|
104
|
+
.ie n .IP """Test::Tap::plan""" 4
|
|
105
|
+
.el .IP "\f(CWTest::Tap::plan\fR" 4
|
|
106
|
+
.IX Item "Test::Tap::plan"
|
|
107
|
+
Used to set the plan.
|
|
108
|
+
.SH "TODO"
|
|
109
|
+
.IX Header "TODO"
|
|
110
|
+
.IP "\(bu" 4
|
|
111
|
+
Finish this doc.
|
|
112
|
+
.SH "Author"
|
|
113
|
+
.IX Header "Author"
|
|
114
|
+
Written by Ingy döt Net <ingy@ingy.net>
|
|
115
|
+
.SH "Copyright & License"
|
|
116
|
+
.IX Header "Copyright & License"
|
|
117
|
+
Copyright 2013\-2016. Ingy döt Net.
|
|
118
|
+
.PP
|
|
119
|
+
The \s-1MIT\s0 License (\s-1MIT\s0).
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
source test/helper.bash
|
|
4
|
+
source lib/test/tap.bash
|
|
5
|
+
|
|
6
|
+
Test::Tap:init tests 1
|
|
7
|
+
|
|
8
|
+
output=$(prove -v test/test/{b,f}ail.t 2>&1)
|
|
9
|
+
|
|
10
|
+
test-helper:like \
|
|
11
|
+
"$output" \
|
|
12
|
+
'Bailout called. Further testing stopped: Get me outta here' \
|
|
13
|
+
'Test::Tap:BAIL_OUT works'
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
source test/helper.bash
|
|
4
|
+
source lib/test/tap.bash
|
|
5
|
+
|
|
6
|
+
Test::Tap:init tests 2
|
|
7
|
+
|
|
8
|
+
output="$(prove -v test/test/fail.t 2>&1)"
|
|
9
|
+
|
|
10
|
+
# echo "# >>>${output//$'\n'/$'\n'# }<<<" >&2
|
|
11
|
+
|
|
12
|
+
test-helper:like \
|
|
13
|
+
"$output" \
|
|
14
|
+
'not ok 1 - I am a failure' \
|
|
15
|
+
'Test::Tap:fail works'
|
|
16
|
+
|
|
17
|
+
test-helper:like \
|
|
18
|
+
"$output" \
|
|
19
|
+
'Failed 1/1 subtests' \
|
|
20
|
+
'Proper summary'
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
source test/helper.bash
|
|
4
|
+
source lib/test/tap.bash
|
|
5
|
+
|
|
6
|
+
Test::Tap:init tests 1
|
|
7
|
+
|
|
8
|
+
output="$(prove -v test/test/fail_fast.t 2>&1)"
|
|
9
|
+
|
|
10
|
+
# echo ">>>$output<<<" >&2
|
|
11
|
+
|
|
12
|
+
test-helper:like \
|
|
13
|
+
"$output" \
|
|
14
|
+
'Further testing stopped: Bailing out on status=1' \
|
|
15
|
+
'Test::Tap:BAIL_OUT works'
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
source test/helper.bash
|
|
4
|
+
source lib/test/tap.bash
|
|
5
|
+
|
|
6
|
+
Test::Tap:init tests 4
|
|
7
|
+
|
|
8
|
+
for s in plan init; do
|
|
9
|
+
output=$(prove test/test/skip-all-$s.t)
|
|
10
|
+
|
|
11
|
+
test-helper:like \
|
|
12
|
+
"$output" \
|
|
13
|
+
"skipped: Test for skip_all from $s" \
|
|
14
|
+
"skip_all from $s: it works"
|
|
15
|
+
|
|
16
|
+
test-helper:like \
|
|
17
|
+
"$output" \
|
|
18
|
+
'Result: NOTESTS' \
|
|
19
|
+
"skip_all from $s: No tests run"
|
|
20
|
+
done
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
source lib/test/tap.bash
|
|
4
|
+
|
|
5
|
+
Test::Tap:init tests 4
|
|
6
|
+
|
|
7
|
+
Test::Tap:pass 'pass with label'
|
|
8
|
+
Test::Tap:pass
|
|
9
|
+
Test::Tap:pass 'previous test has no label'
|
|
10
|
+
msg="$(Test::Tap:fail 'faaaaailll' 2>/dev/null)"
|
|
11
|
+
if [[ "$msg" =~ not\ ok\ 4\ -\ faaaaailll ]]; then
|
|
12
|
+
Test::Tap:pass 'fail works'
|
|
13
|
+
fi
|