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.
Files changed (192) hide show
  1. checksums.yaml +4 -4
  2. data/lib/eac_git/executables.rb +24 -4
  3. data/lib/eac_git/local.rb +5 -1
  4. data/lib/eac_git/local/dirty_files.rb +37 -0
  5. data/lib/eac_git/rspec.rb +17 -0
  6. data/lib/eac_git/version.rb +1 -1
  7. data/vendor/git-subrepo/Changes +110 -0
  8. data/vendor/git-subrepo/Intro.pod +509 -0
  9. data/vendor/git-subrepo/License +21 -0
  10. data/vendor/git-subrepo/Makefile +82 -0
  11. data/vendor/git-subrepo/Meta +28 -0
  12. data/vendor/git-subrepo/ReadMe.pod +698 -0
  13. data/vendor/git-subrepo/doc/comparison.swim +35 -0
  14. data/vendor/git-subrepo/doc/git-subrepo.swim +608 -0
  15. data/vendor/git-subrepo/doc/intro-to-subrepo.swim +387 -0
  16. data/vendor/git-subrepo/ext/bashplus/Changes +15 -0
  17. data/vendor/git-subrepo/ext/bashplus/License +21 -0
  18. data/vendor/git-subrepo/ext/bashplus/Makefile +45 -0
  19. data/vendor/git-subrepo/ext/bashplus/Meta +28 -0
  20. data/vendor/git-subrepo/ext/bashplus/ReadMe.pod +77 -0
  21. data/vendor/git-subrepo/ext/bashplus/bin/bash+ +43 -0
  22. data/vendor/git-subrepo/ext/bashplus/doc/bash+.swim +61 -0
  23. data/vendor/git-subrepo/ext/bashplus/lib/bash+.bash +92 -0
  24. data/vendor/git-subrepo/ext/bashplus/man/man1/bash+.1 +134 -0
  25. data/vendor/git-subrepo/ext/bashplus/man/man3/bash+.3 +134 -0
  26. data/vendor/git-subrepo/ext/bashplus/test/base.t +12 -0
  27. data/vendor/git-subrepo/ext/bashplus/test/fcopy.t +22 -0
  28. data/vendor/git-subrepo/ext/bashplus/test/lib/foo/bar.bash +3 -0
  29. data/vendor/git-subrepo/ext/bashplus/test/lib/foo/foo.bash +3 -0
  30. data/vendor/git-subrepo/ext/bashplus/test/source-bash+-std.t +18 -0
  31. data/vendor/git-subrepo/ext/bashplus/test/source-bash+.t +23 -0
  32. data/vendor/git-subrepo/ext/bashplus/test/test.bash +70 -0
  33. data/vendor/git-subrepo/ext/bashplus/test/use.t +19 -0
  34. data/vendor/git-subrepo/ext/test-more-bash/Changes +15 -0
  35. data/vendor/git-subrepo/ext/test-more-bash/License +21 -0
  36. data/vendor/git-subrepo/ext/test-more-bash/Makefile +20 -0
  37. data/vendor/git-subrepo/ext/test-more-bash/Meta +30 -0
  38. data/vendor/git-subrepo/ext/test-more-bash/ReadMe.pod +115 -0
  39. data/vendor/git-subrepo/ext/test-more-bash/doc/test-more.swim +89 -0
  40. data/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/Changes +15 -0
  41. data/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/License +21 -0
  42. data/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/Makefile +45 -0
  43. data/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/Meta +28 -0
  44. data/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/ReadMe.pod +77 -0
  45. data/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/bin/bash+ +43 -0
  46. data/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/doc/bash+.swim +61 -0
  47. data/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/lib/bash+.bash +92 -0
  48. data/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/man/man1/bash+.1 +134 -0
  49. data/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/man/man3/bash+.3 +134 -0
  50. data/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/test/base.t +12 -0
  51. data/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/test/fcopy.t +22 -0
  52. data/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/test/lib/foo/bar.bash +3 -0
  53. data/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/test/lib/foo/foo.bash +3 -0
  54. data/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/test/source-bash+-std.t +18 -0
  55. data/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/test/source-bash+.t +23 -0
  56. data/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/test/test.bash +70 -0
  57. data/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/test/use.t +19 -0
  58. data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/Changes +15 -0
  59. data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/License +21 -0
  60. data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/Makefile +37 -0
  61. data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/Meta +28 -0
  62. data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/ReadMe.pod +66 -0
  63. data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/doc/test-tap.swim +48 -0
  64. data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/lib/test/tap.bash +153 -0
  65. data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/man/man3/test-tap.3 +119 -0
  66. data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/bail_out.t +13 -0
  67. data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/done.t +10 -0
  68. data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/fail.t +20 -0
  69. data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/fail_fast.t +15 -0
  70. data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/helper.bash +9 -0
  71. data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/pass.t +9 -0
  72. data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/plan.t +10 -0
  73. data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/skip_all.t +20 -0
  74. data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/tap.t +13 -0
  75. data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/test/bail.t +14 -0
  76. data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/test/fail.t +7 -0
  77. data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/test/fail_fast.t +12 -0
  78. data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/test/skip-all-init.t +8 -0
  79. data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/test/skip-all-plan.t +9 -0
  80. data/vendor/git-subrepo/ext/test-more-bash/lib/test/more.bash +95 -0
  81. data/vendor/git-subrepo/ext/test-more-bash/man/man3/test-more.3 +173 -0
  82. data/vendor/git-subrepo/ext/test-more-bash/test/fail.t +20 -0
  83. data/vendor/git-subrepo/ext/test-more-bash/test/more.t +20 -0
  84. data/vendor/git-subrepo/ext/test-more-bash/test/pass.t +9 -0
  85. data/vendor/git-subrepo/ext/test-more-bash/test/setup +8 -0
  86. data/vendor/git-subrepo/ext/test-more-bash/test/skip_all.t +11 -0
  87. data/vendor/git-subrepo/ext/test-more-bash/test/test/fail1.t +12 -0
  88. data/vendor/git-subrepo/ext/test-more-bash/test/test/skip_all.t +10 -0
  89. data/vendor/git-subrepo/lib/git-subrepo +1903 -0
  90. data/vendor/git-subrepo/lib/git-subrepo.d/bash+.bash +1 -0
  91. data/vendor/git-subrepo/lib/git-subrepo.d/help-functions.bash +339 -0
  92. data/vendor/git-subrepo/man/man1/git-subrepo.1 +743 -0
  93. data/vendor/git-subrepo/note/0.4.0 +12 -0
  94. data/vendor/git-subrepo/note/AllGitCmds +148 -0
  95. data/vendor/git-subrepo/note/Cases +32 -0
  96. data/vendor/git-subrepo/note/Commands +33 -0
  97. data/vendor/git-subrepo/note/Dags +199 -0
  98. data/vendor/git-subrepo/note/Gists +7 -0
  99. data/vendor/git-subrepo/note/Links +25 -0
  100. data/vendor/git-subrepo/note/Plugins +10 -0
  101. data/vendor/git-subrepo/note/Spec +39 -0
  102. data/vendor/git-subrepo/note/Story1 +57 -0
  103. data/vendor/git-subrepo/note/ToDo +55 -0
  104. data/vendor/git-subrepo/note/design.swim +137 -0
  105. data/vendor/git-subrepo/note/design2.swim +85 -0
  106. data/vendor/git-subrepo/note/init-test +38 -0
  107. data/vendor/git-subrepo/note/pull-dance.txt +18 -0
  108. data/vendor/git-subrepo/note/recreate-rebase-conflict.sh +56 -0
  109. data/vendor/git-subrepo/note/subtree-rebase-fail-example/test.bash +29 -0
  110. data/vendor/git-subrepo/note/test-subrepo-push.sh +69 -0
  111. data/vendor/git-subrepo/note/test.sh +58 -0
  112. data/vendor/git-subrepo/pkg/bin/generate-completion.pl +210 -0
  113. data/vendor/git-subrepo/pkg/bin/generate-help-functions.pl +89 -0
  114. data/vendor/git-subrepo/share/completion.bash +42 -0
  115. data/vendor/git-subrepo/share/enable-completion.sh +50 -0
  116. data/vendor/git-subrepo/share/git-completion.bash +2738 -0
  117. data/vendor/git-subrepo/share/zsh-completion/_git-subrepo +81 -0
  118. data/vendor/git-subrepo/test/branch-all.t +41 -0
  119. data/vendor/git-subrepo/test/branch-rev-list-one-path.t +43 -0
  120. data/vendor/git-subrepo/test/branch-rev-list.t +47 -0
  121. data/vendor/git-subrepo/test/branch.t +52 -0
  122. data/vendor/git-subrepo/test/clean.t +43 -0
  123. data/vendor/git-subrepo/test/clone-annotated-tag.t +45 -0
  124. data/vendor/git-subrepo/test/clone.t +107 -0
  125. data/vendor/git-subrepo/test/compile.t +19 -0
  126. data/vendor/git-subrepo/test/config.t +58 -0
  127. data/vendor/git-subrepo/test/encode.t +91 -0
  128. data/vendor/git-subrepo/test/error.t +171 -0
  129. data/vendor/git-subrepo/test/fetch.t +43 -0
  130. data/vendor/git-subrepo/test/gitignore.t +61 -0
  131. data/vendor/git-subrepo/test/init.t +64 -0
  132. data/vendor/git-subrepo/test/issue29.t +98 -0
  133. data/vendor/git-subrepo/test/issue95.t +98 -0
  134. data/vendor/git-subrepo/test/issue96.t +96 -0
  135. data/vendor/git-subrepo/test/pull-all.t +38 -0
  136. data/vendor/git-subrepo/test/pull-merge.t +113 -0
  137. data/vendor/git-subrepo/test/pull-message.t +88 -0
  138. data/vendor/git-subrepo/test/pull-new-branch.t +58 -0
  139. data/vendor/git-subrepo/test/pull-ours.t +90 -0
  140. data/vendor/git-subrepo/test/pull-theirs.t +82 -0
  141. data/vendor/git-subrepo/test/pull-twice.t +44 -0
  142. data/vendor/git-subrepo/test/pull-worktree.t +40 -0
  143. data/vendor/git-subrepo/test/pull.t +99 -0
  144. data/vendor/git-subrepo/test/push-after-init.t +51 -0
  145. data/vendor/git-subrepo/test/push-force.t +56 -0
  146. data/vendor/git-subrepo/test/push-new-branch.t +61 -0
  147. data/vendor/git-subrepo/test/push-no-changes.t +29 -0
  148. data/vendor/git-subrepo/test/push-squash.t +56 -0
  149. data/vendor/git-subrepo/test/push.t +176 -0
  150. data/vendor/git-subrepo/test/reclone.t +45 -0
  151. data/vendor/git-subrepo/test/repo/bar/HEAD +1 -0
  152. data/vendor/git-subrepo/test/repo/bar/config +4 -0
  153. data/vendor/git-subrepo/test/repo/bar/objects/1f/0c4b264caed0126814a0ede851a1e0b4e16ae6 +0 -0
  154. data/vendor/git-subrepo/test/repo/bar/objects/87/46903fdb1b9c2101377880125917c2e05b4d69 +0 -0
  155. data/vendor/git-subrepo/test/repo/bar/objects/94/c86ffc745232d89f78c6f895e11e71272518db +0 -0
  156. data/vendor/git-subrepo/test/repo/bar/objects/c6/76c57b6576743fa56278527aa60ebd2e202a7c +0 -0
  157. data/vendor/git-subrepo/test/repo/bar/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391 +0 -0
  158. data/vendor/git-subrepo/test/repo/bar/objects/f6/2a8ff3feadf39b0a98f1a86ec6d1eb33858ee9 +0 -0
  159. data/vendor/git-subrepo/test/repo/bar/refs/heads/master +1 -0
  160. data/vendor/git-subrepo/test/repo/bar/refs/tags/A +1 -0
  161. data/vendor/git-subrepo/test/repo/foo/HEAD +1 -0
  162. data/vendor/git-subrepo/test/repo/foo/config +4 -0
  163. data/vendor/git-subrepo/test/repo/foo/objects/a0/f4cdaaf533a936296cdebbed8206c3b9ededa8 +0 -0
  164. data/vendor/git-subrepo/test/repo/foo/objects/e2/1291a1ad392a9d4c51dd9586804f1467b28afd +0 -0
  165. data/vendor/git-subrepo/test/repo/foo/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391 +0 -0
  166. data/vendor/git-subrepo/test/repo/foo/refs/heads/master +1 -0
  167. data/vendor/git-subrepo/test/repo/init/HEAD +1 -0
  168. data/vendor/git-subrepo/test/repo/init/config +5 -0
  169. data/vendor/git-subrepo/test/repo/init/objects/11/523f5dcf03b4c89b592dc8a3d0308f68da2386 +0 -0
  170. data/vendor/git-subrepo/test/repo/init/objects/14/2addf8ec5f37334e837440122c62f2c68a29ad +0 -0
  171. data/vendor/git-subrepo/test/repo/init/objects/32/5180321750a21cd7a4e7ecda319e557a4f6a09 +2 -0
  172. data/vendor/git-subrepo/test/repo/init/objects/3d/918c6901c02f43af5d31779dd5e1f9166aeb36 +0 -0
  173. data/vendor/git-subrepo/test/repo/init/objects/3e/4cb596066dce63ba4d047abddb677389b65e19 +0 -0
  174. data/vendor/git-subrepo/test/repo/init/objects/4b/6e53022e7a04f07887697e4f3d7c377fd9822b +0 -0
  175. data/vendor/git-subrepo/test/repo/init/objects/58/931fc1bd559b59c41ea738fc7ad04f9ad01bd3 +0 -0
  176. data/vendor/git-subrepo/test/repo/init/objects/5e/c0c28e1b806f25efdca18fcf7a74b49c3755bd +0 -0
  177. data/vendor/git-subrepo/test/repo/init/objects/75/fa6584e748f57eff06eebdc55e9ac21d4fcbf2 +1 -0
  178. data/vendor/git-subrepo/test/repo/init/objects/80/2d5edbd5e1cb7fca82b5bd38e7c8a0a496fb20 +0 -0
  179. data/vendor/git-subrepo/test/repo/init/objects/94/7b3d714c38791e95ad6f928b48c98bb8708acd +0 -0
  180. data/vendor/git-subrepo/test/repo/init/objects/95/e1f2df3f4d5f3d7a60588c25a7ca8a913d3c2a +1 -0
  181. data/vendor/git-subrepo/test/repo/init/objects/b1/5f4a7666baf40d949548ead946a3370e273479 +0 -0
  182. data/vendor/git-subrepo/test/repo/init/objects/c3/ee8978c4c5d84c3b7d00ba8e5906933d027882 +0 -0
  183. data/vendor/git-subrepo/test/repo/init/objects/c8/b0bffbc405ef3fad7354ff833fbec36d67ddfa +3 -0
  184. data/vendor/git-subrepo/test/repo/init/objects/dd/8bdb934ec848137f011fe423b185505c343626 +2 -0
  185. data/vendor/git-subrepo/test/repo/init/objects/e2/9be58c767cfeb27235c995d293a7d71aac0135 +2 -0
  186. data/vendor/git-subrepo/test/repo/init/objects/ee/1224401fc6aac595145fa727dcf6706ac8aec1 +1 -0
  187. data/vendor/git-subrepo/test/repo/init/objects/f1/cc1a657b2e805c400f5dcaaa76bd29c6178b1b +0 -0
  188. data/vendor/git-subrepo/test/repo/init/refs/heads/master +1 -0
  189. data/vendor/git-subrepo/test/setup +205 -0
  190. data/vendor/git-subrepo/test/status.t +68 -0
  191. data/vendor/git-subrepo/test/submodule.t +45 -0
  192. 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,10 @@
1
+ #!/usr/bin/env bash
2
+
3
+ source lib/test/tap.bash
4
+
5
+ Test::Tap:init
6
+
7
+ Test::Tap:pass one
8
+ Test::Tap:pass two
9
+
10
+ Test::Tap:done_testing
@@ -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,9 @@
1
+ test-helper:like() {
2
+ local got=$1 regex=$2 label=$3
3
+ if [[ "$got" =~ "$regex" ]]; then
4
+ Test::Tap:pass "$label"
5
+ else
6
+ Test::Tap:fail "$label"
7
+ Test::Tap:diag "Got: '$got'"
8
+ fi
9
+ }
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env bash
2
+
3
+ source lib/test/tap.bash
4
+
5
+ Test::Tap:init tests 3
6
+
7
+ Test::Tap:pass 'pass 1 - with label'
8
+ Test::Tap:pass
9
+ Test::Tap:pass 'pass 3 - 2 has no label'
@@ -0,0 +1,10 @@
1
+ #!/usr/bin/env bash
2
+
3
+ source lib/test/tap.bash
4
+
5
+ Test::Tap:init
6
+ Test::Tap:plan tests 3
7
+
8
+ for n in 1 2 3; do
9
+ Test::Tap:pass "Test #$n"
10
+ done
@@ -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