auser-poolparty 0.2.66 → 0.2.67

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 (159) hide show
  1. data/Manifest.txt +83 -41
  2. data/PostInstall.txt +2 -2
  3. data/README.txt +1 -2
  4. data/Rakefile +14 -1
  5. data/bin/cloud-start +11 -10
  6. data/bin/{pool-spec → pool-generate} +0 -0
  7. data/bin/pool-init +3 -3
  8. data/bin/pool-start +8 -7
  9. data/bin/server-update-hosts +1 -1
  10. data/lib/erlang/messenger/ebin/pm_client_rel-0.1.rel +1 -1
  11. data/lib/erlang/messenger/ebin/pm_master_rel-0.1.rel +1 -1
  12. data/lib/erlang/messenger/ebin/pm_node_rel-0.1.rel +1 -1
  13. data/lib/erlang/messenger/include/defines.hrl +7 -3
  14. data/lib/erlang/messenger/lib/eunit/.svn/all-wcprops +53 -0
  15. data/lib/erlang/messenger/lib/eunit/.svn/entries +140 -0
  16. data/lib/erlang/messenger/lib/eunit/.svn/format +1 -0
  17. data/lib/erlang/messenger/lib/eunit/.svn/prop-base/NOTES.svn-base +5 -0
  18. data/lib/erlang/messenger/lib/eunit/.svn/text-base/AUTHORS.svn-base +2 -0
  19. data/lib/erlang/messenger/lib/eunit/.svn/text-base/CHANGELOG.svn-base +14 -0
  20. data/lib/erlang/messenger/lib/eunit/.svn/text-base/COPYING.svn-base +504 -0
  21. data/lib/erlang/messenger/lib/eunit/.svn/text-base/NOTES.svn-base +276 -0
  22. data/lib/erlang/messenger/lib/eunit/.svn/text-base/README.svn-base +3 -0
  23. data/lib/erlang/messenger/lib/eunit/.svn/text-base/sys.config.svn-base +9 -0
  24. data/lib/erlang/messenger/lib/eunit/.svn/text-base/vsn.mk.svn-base +1 -0
  25. data/lib/erlang/messenger/lib/eunit/doc/.svn/all-wcprops +59 -0
  26. data/lib/erlang/messenger/lib/eunit/doc/.svn/entries +142 -0
  27. data/lib/erlang/messenger/lib/eunit/doc/.svn/format +1 -0
  28. data/lib/erlang/messenger/lib/eunit/doc/.svn/prop-base/erlang.png.svn-base +5 -0
  29. data/lib/erlang/messenger/lib/eunit/doc/.svn/prop-base/eunit.html.svn-base +5 -0
  30. data/lib/erlang/messenger/lib/eunit/doc/.svn/prop-base/index.html.svn-base +5 -0
  31. data/lib/erlang/messenger/lib/eunit/doc/.svn/prop-base/modules-frame.html.svn-base +5 -0
  32. data/lib/erlang/messenger/lib/eunit/doc/.svn/prop-base/overview-summary.html.svn-base +5 -0
  33. data/lib/erlang/messenger/lib/eunit/doc/.svn/prop-base/packages-frame.html.svn-base +5 -0
  34. data/lib/erlang/messenger/lib/eunit/doc/.svn/text-base/edoc-info.svn-base +3 -0
  35. data/lib/erlang/messenger/lib/eunit/doc/.svn/text-base/erlang.png.svn-base +0 -0
  36. data/lib/erlang/messenger/lib/eunit/doc/.svn/text-base/eunit.html.svn-base +172 -0
  37. data/lib/erlang/messenger/lib/eunit/doc/.svn/text-base/index.html.svn-base +17 -0
  38. data/lib/erlang/messenger/lib/eunit/doc/.svn/text-base/modules-frame.html.svn-base +12 -0
  39. data/lib/erlang/messenger/lib/eunit/doc/.svn/text-base/overview-summary.html.svn-base +984 -0
  40. data/lib/erlang/messenger/lib/eunit/doc/.svn/text-base/overview.edoc.svn-base +980 -0
  41. data/lib/erlang/messenger/lib/eunit/doc/.svn/text-base/packages-frame.html.svn-base +11 -0
  42. data/lib/erlang/messenger/lib/eunit/doc/.svn/text-base/stylesheet.css.svn-base +55 -0
  43. data/lib/erlang/messenger/lib/eunit/ebin/.svn/all-wcprops +5 -0
  44. data/lib/erlang/messenger/lib/eunit/ebin/.svn/dir-prop-base +8 -0
  45. data/lib/erlang/messenger/lib/eunit/ebin/.svn/entries +28 -0
  46. data/lib/erlang/messenger/lib/eunit/ebin/.svn/format +1 -0
  47. data/lib/erlang/messenger/lib/eunit/examples/.svn/all-wcprops +23 -0
  48. data/lib/erlang/messenger/lib/eunit/examples/.svn/entries +66 -0
  49. data/lib/erlang/messenger/lib/eunit/examples/.svn/format +1 -0
  50. data/lib/erlang/messenger/lib/eunit/examples/.svn/prop-base/eunit_examples.erl.svn-base +5 -0
  51. data/lib/erlang/messenger/lib/eunit/examples/.svn/prop-base/fib.erl.svn-base +5 -0
  52. data/lib/erlang/messenger/lib/eunit/examples/.svn/text-base/eunit_examples.erl.svn-base +339 -0
  53. data/lib/erlang/messenger/lib/eunit/examples/.svn/text-base/fib.erl.svn-base +19 -0
  54. data/lib/erlang/messenger/lib/eunit/examples/.svn/text-base/tests.txt.svn-base +1 -0
  55. data/lib/erlang/messenger/lib/eunit/include/.svn/all-wcprops +11 -0
  56. data/lib/erlang/messenger/lib/eunit/include/.svn/entries +41 -0
  57. data/lib/erlang/messenger/lib/eunit/include/.svn/format +1 -0
  58. data/lib/erlang/messenger/lib/eunit/include/.svn/prop-base/eunit.hrl.svn-base +5 -0
  59. data/lib/erlang/messenger/lib/eunit/include/.svn/text-base/eunit.hrl.svn-base +313 -0
  60. data/lib/erlang/messenger/lib/eunit/src/.svn/all-wcprops +113 -0
  61. data/lib/erlang/messenger/lib/eunit/src/.svn/entries +259 -0
  62. data/lib/erlang/messenger/lib/eunit/src/.svn/format +1 -0
  63. data/lib/erlang/messenger/lib/eunit/src/.svn/prop-base/autoload.erl.svn-base +5 -0
  64. data/lib/erlang/messenger/lib/eunit/src/.svn/prop-base/code_monitor.erl.svn-base +5 -0
  65. data/lib/erlang/messenger/lib/eunit/src/.svn/prop-base/eunit.erl.svn-base +5 -0
  66. data/lib/erlang/messenger/lib/eunit/src/.svn/prop-base/eunit_autoexport.erl.svn-base +5 -0
  67. data/lib/erlang/messenger/lib/eunit/src/.svn/prop-base/eunit_data.erl.svn-base +5 -0
  68. data/lib/erlang/messenger/lib/eunit/src/.svn/prop-base/eunit_internal.hrl.svn-base +5 -0
  69. data/lib/erlang/messenger/lib/eunit/src/.svn/prop-base/eunit_lib.erl.svn-base +5 -0
  70. data/lib/erlang/messenger/lib/eunit/src/.svn/prop-base/eunit_proc.erl.svn-base +5 -0
  71. data/lib/erlang/messenger/lib/eunit/src/.svn/prop-base/eunit_serial.erl.svn-base +5 -0
  72. data/lib/erlang/messenger/lib/eunit/src/.svn/prop-base/eunit_server.erl.svn-base +5 -0
  73. data/lib/erlang/messenger/lib/eunit/src/.svn/prop-base/eunit_striptests.erl.svn-base +5 -0
  74. data/lib/erlang/messenger/lib/eunit/src/.svn/prop-base/eunit_test.erl.svn-base +5 -0
  75. data/lib/erlang/messenger/lib/eunit/src/.svn/prop-base/eunit_tests.erl.svn-base +5 -0
  76. data/lib/erlang/messenger/lib/eunit/src/.svn/prop-base/eunit_tty.erl.svn-base +5 -0
  77. data/lib/erlang/messenger/lib/eunit/src/.svn/prop-base/file_monitor.erl.svn-base +5 -0
  78. data/lib/erlang/messenger/lib/eunit/src/.svn/text-base/autoload.erl.svn-base +388 -0
  79. data/lib/erlang/messenger/lib/eunit/src/.svn/text-base/code_monitor.erl.svn-base +243 -0
  80. data/lib/erlang/messenger/lib/eunit/src/.svn/text-base/eunit.app.src.svn-base +21 -0
  81. data/lib/erlang/messenger/lib/eunit/src/.svn/text-base/eunit.appup.src.svn-base +1 -0
  82. data/lib/erlang/messenger/lib/eunit/src/.svn/text-base/eunit.erl.svn-base +196 -0
  83. data/lib/erlang/messenger/lib/eunit/src/.svn/text-base/eunit_autoexport.erl.svn-base +102 -0
  84. data/lib/erlang/messenger/lib/eunit/src/.svn/text-base/eunit_data.erl.svn-base +798 -0
  85. data/lib/erlang/messenger/lib/eunit/src/.svn/text-base/eunit_internal.hrl.svn-base +48 -0
  86. data/lib/erlang/messenger/lib/eunit/src/.svn/text-base/eunit_lib.erl.svn-base +682 -0
  87. data/lib/erlang/messenger/lib/eunit/src/.svn/text-base/eunit_proc.erl.svn-base +552 -0
  88. data/lib/erlang/messenger/lib/eunit/src/.svn/text-base/eunit_serial.erl.svn-base +157 -0
  89. data/lib/erlang/messenger/lib/eunit/src/.svn/text-base/eunit_server.erl.svn-base +340 -0
  90. data/lib/erlang/messenger/lib/eunit/src/.svn/text-base/eunit_striptests.erl.svn-base +64 -0
  91. data/lib/erlang/messenger/lib/eunit/src/.svn/text-base/eunit_test.erl.svn-base +334 -0
  92. data/lib/erlang/messenger/lib/eunit/src/.svn/text-base/eunit_tests.erl.svn-base +45 -0
  93. data/lib/erlang/messenger/lib/eunit/src/.svn/text-base/eunit_tty.erl.svn-base +272 -0
  94. data/lib/erlang/messenger/lib/eunit/src/.svn/text-base/file_monitor.erl.svn-base +409 -0
  95. data/lib/erlang/messenger/pm_client_rel-0.1.boot +0 -0
  96. data/lib/erlang/messenger/pm_client_rel-0.1.script +77 -85
  97. data/lib/erlang/messenger/pm_master_rel-0.1.boot +0 -0
  98. data/lib/erlang/messenger/pm_master_rel-0.1.script +78 -85
  99. data/lib/erlang/messenger/pm_node_rel-0.1.boot +0 -0
  100. data/lib/erlang/messenger/pm_node_rel-0.1.script +77 -86
  101. data/lib/erlang/messenger/src/pm_node.erl +46 -9
  102. data/lib/erlang/messenger/src/utils.erl +7 -1
  103. data/lib/poolparty.rb +17 -23
  104. data/lib/poolparty/base_packages/poolparty.rb +1 -1
  105. data/lib/poolparty/core/string.rb +11 -2
  106. data/lib/poolparty/helpers/binary.rb +31 -0
  107. data/lib/poolparty/helpers/console.rb +25 -16
  108. data/lib/poolparty/helpers/nice_printer.rb +36 -0
  109. data/lib/poolparty/helpers/optioner.rb +8 -0
  110. data/lib/poolparty/helpers/provisioner_base.rb +7 -5
  111. data/lib/poolparty/helpers/provisioners/master.rb +1 -1
  112. data/lib/poolparty/helpers/provisioners/slave.rb +2 -1
  113. data/lib/poolparty/modules/cloud_resourcer.rb +1 -1
  114. data/lib/poolparty/modules/file_writer.rb +12 -1
  115. data/lib/poolparty/modules/resourcing_dsl.rb +2 -1
  116. data/lib/poolparty/monitors/base_monitor.rb +3 -0
  117. data/lib/poolparty/net/remoter.rb +13 -11
  118. data/lib/poolparty/pool/base.rb +25 -13
  119. data/lib/poolparty/pool/cloud.rb +32 -10
  120. data/lib/poolparty/pool/custom_resource.rb +16 -7
  121. data/lib/poolparty/pool/plugin_model.rb +2 -2
  122. data/lib/poolparty/pool/pool.rb +2 -2
  123. data/lib/poolparty/pool/resource.rb +25 -7
  124. data/lib/poolparty/pool/resources/class_package.rb +3 -2
  125. data/lib/poolparty/pool/resources/exec.rb +1 -1
  126. data/lib/poolparty/pool/resources/variable.rb +4 -0
  127. data/lib/poolparty/version.rb +1 -1
  128. data/poolparty.gemspec +13 -11
  129. data/spec/poolparty/core/hash_spec.rb +1 -1
  130. data/spec/poolparty/core/time_spec.rb +1 -1
  131. data/spec/poolparty/net/remote_spec.rb +1 -1
  132. data/spec/poolparty/pool/base_spec.rb +25 -20
  133. data/spec/poolparty/pool/cloud_spec.rb +50 -3
  134. data/spec/poolparty/pool/plugin_spec.rb +1 -0
  135. data/spec/poolparty/pool/resource_spec.rb +4 -3
  136. data/spec/poolparty/spec_helper.rb +3 -4
  137. data/tasks/deployment.rake +15 -3
  138. data/website/index.html +2 -2
  139. metadata +88 -46
  140. data/lib/erlang/messenger/Makefile +0 -15
  141. data/lib/erlang/messenger/lib/eunit/Makefile +0 -28
  142. data/lib/erlang/messenger/lib/eunit/ebin/autoload.beam +0 -0
  143. data/lib/erlang/messenger/lib/eunit/ebin/code_monitor.beam +0 -0
  144. data/lib/erlang/messenger/lib/eunit/ebin/eunit.beam +0 -0
  145. data/lib/erlang/messenger/lib/eunit/ebin/eunit_autoexport.beam +0 -0
  146. data/lib/erlang/messenger/lib/eunit/ebin/eunit_data.beam +0 -0
  147. data/lib/erlang/messenger/lib/eunit/ebin/eunit_lib.beam +0 -0
  148. data/lib/erlang/messenger/lib/eunit/ebin/eunit_proc.beam +0 -0
  149. data/lib/erlang/messenger/lib/eunit/ebin/eunit_serial.beam +0 -0
  150. data/lib/erlang/messenger/lib/eunit/ebin/eunit_server.beam +0 -0
  151. data/lib/erlang/messenger/lib/eunit/ebin/eunit_striptests.beam +0 -0
  152. data/lib/erlang/messenger/lib/eunit/ebin/eunit_test.beam +0 -0
  153. data/lib/erlang/messenger/lib/eunit/ebin/eunit_tests.beam +0 -0
  154. data/lib/erlang/messenger/lib/eunit/ebin/eunit_tty.beam +0 -0
  155. data/lib/erlang/messenger/lib/eunit/ebin/file_monitor.beam +0 -0
  156. data/lib/erlang/messenger/lib/eunit/src/Makefile +0 -46
  157. data/lib/poolparty/config/allowed_commands.yml +0 -1
  158. data/lib/poolparty/plugins/git.rb +0 -45
  159. data/spec/poolparty/plugins/git_spec.rb +0 -40
@@ -0,0 +1,19 @@
1
+
2
+ -module(fib).
3
+ -export([fib/1]).
4
+ -include_lib("eunit/include/eunit.hrl").
5
+
6
+ fib(0) -> 1;
7
+ fib(1) -> 1;
8
+ fib(N) when N > 1 -> fib(N-1) + fib(N-2).
9
+
10
+ fib_test_() ->
11
+ [?_assert(fib(0) == 1),
12
+ ?_assert(fib(1) == 1),
13
+ ?_assert(fib(2) == 2),
14
+ ?_assert(fib(3) == 3),
15
+ ?_assert(fib(4) == 5),
16
+ ?_assert(fib(5) == 8),
17
+ ?_assertException(error, function_clause, fib(-1)),
18
+ ?_assert(fib(31) == 2178309)
19
+ ].
@@ -0,0 +1,11 @@
1
+ K 25
2
+ svn:wc:ra_dav:version-url
3
+ V 42
4
+ /contribs/!svn/ver/261/trunk/eunit/include
5
+ END
6
+ eunit.hrl
7
+ K 25
8
+ svn:wc:ra_dav:version-url
9
+ V 52
10
+ /contribs/!svn/ver/261/trunk/eunit/include/eunit.hrl
11
+ END
@@ -0,0 +1,41 @@
1
+ 8
2
+
3
+ dir
4
+ 263
5
+ http://svn.process-one.net/contribs/trunk/eunit/include
6
+ http://svn.process-one.net/contribs
7
+
8
+
9
+
10
+ 2008-10-12T11:33:16.951475Z
11
+ 261
12
+ rcarlsson
13
+
14
+
15
+ svn:special svn:externals svn:needs-lock
16
+
17
+
18
+
19
+
20
+
21
+
22
+
23
+
24
+
25
+
26
+
27
+ 5c723cce-c907-0410-9aa2-ab8348fff7a4
28
+
29
+ eunit.hrl
30
+ file
31
+
32
+
33
+
34
+
35
+ 2008-10-18T23:25:35.000000Z
36
+ 73620ab0e04c97da6f1035e723ca1333
37
+ 2008-10-12T11:33:16.951475Z
38
+ 261
39
+ rcarlsson
40
+ has-props
41
+
@@ -0,0 +1,5 @@
1
+ K 12
2
+ svn:keywords
3
+ V 31
4
+ Date Author Id Revision HeadURL
5
+ END
@@ -0,0 +1,313 @@
1
+ %% This library is free software; you can redistribute it and/or modify
2
+ %% it under the terms of the GNU Lesser General Public License as
3
+ %% published by the Free Software Foundation; either version 2 of the
4
+ %% License, or (at your option) any later version.
5
+ %%
6
+ %% This library is distributed in the hope that it will be useful, but
7
+ %% WITHOUT ANY WARRANTY; without even the implied warranty of
8
+ %% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
9
+ %% Lesser General Public License for more details.
10
+ %%
11
+ %% You should have received a copy of the GNU Lesser General Public
12
+ %% License along with this library; if not, write to the Free Software
13
+ %% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
14
+ %% USA
15
+ %%
16
+ %% $Id$
17
+ %%
18
+ %% Copyright (C) 2004-2006 Micka�l R�mond, Richard Carlsson
19
+
20
+ %% Including this file turns on testing and defines TEST, unless NOTEST
21
+ %% is defined before the file is included. If both NOTEST and TEST are
22
+ %% already defined, then TEST takes precedence, and NOTEST will become
23
+ %% undefined.
24
+ %%
25
+ %% If including this file causes TEST to be defined, then NOASSERT will
26
+ %% be undefined, even if it was previously defined. If both ASSERT and
27
+ %% NOASSERT are defined before the file is included, then ASSERT takes
28
+ %% precedence, and NOASSERT will become undefined regardless of TEST.
29
+ %%
30
+ %% After including this file, EUNIT will be defined if and only if TEST
31
+ %% is defined.
32
+
33
+ -ifndef(EUNIT_HRL).
34
+ -define(EUNIT_HRL, true).
35
+
36
+ %% allow defining TEST to override NOTEST
37
+ -ifdef(TEST).
38
+ -undef(NOTEST).
39
+ -endif.
40
+
41
+ %% allow NODEBUG to imply NOASSERT, unless overridden below
42
+ -ifdef(NODEBUG).
43
+ -ifndef(NOASSERT).
44
+ -define(NOASSERT, true).
45
+ -endif.
46
+ -endif.
47
+
48
+ %% note that the main switch used within this file is NOTEST; however,
49
+ %% both TEST and EUNIT may be used to check whether testing is enabled
50
+ -ifndef(NOTEST).
51
+ -undef(NOASSERT). % testing requires that assertions are enabled
52
+ -ifndef(TEST).
53
+ -define(TEST, true).
54
+ -endif.
55
+ -ifndef(EUNIT).
56
+ -define(EUNIT, true).
57
+ -endif.
58
+ -else.
59
+ -undef(EUNIT).
60
+ -endif.
61
+
62
+ %% allow ASSERT to override NOASSERT (regardless of TEST/NOTEST)
63
+ -ifdef(ASSERT).
64
+ -undef(NOASSERT).
65
+ -endif.
66
+
67
+ %% Parse transforms for automatic exporting/stripping of test functions.
68
+ %% (Note that although automatic stripping is convenient, it will make
69
+ %% the code dependent on this header file and the eunit_striptests
70
+ %% module for compilation, even when testing is switched off! Using
71
+ %% -ifdef(EUNIT) around all test code makes the program more portable.)
72
+
73
+ -ifndef(EUNIT_NOAUTO).
74
+ -ifndef(NOTEST).
75
+ -compile({parse_transform, eunit_autoexport}).
76
+ -else.
77
+ -compile({parse_transform, eunit_striptests}).
78
+ -endif.
79
+ -endif.
80
+
81
+ %% All macros should be available even if testing is turned off, and
82
+ %% should preferably not require EUnit to be present at runtime.
83
+ %%
84
+ %% We must use fun-call wrappers ((fun () -> ... end)()) to avoid
85
+ %% exporting local variables, and furthermore we only use variable names
86
+ %% prefixed with "__", that hopefully will not be bound outside the fun.
87
+
88
+ %% A generic let-macro is particularly useful when writing test cases.
89
+ %% It is more compact than 'begin X = Y, Z end', and guarantees that
90
+ %% X gets a new, local binding.
91
+ %% (Note that lowercase 'let' is a reserved word.)
92
+ -ifndef(LET).
93
+ -define(LET(X,Y,Z), ((fun(X)->(Z)end)(Y))).
94
+ -endif.
95
+
96
+ %% It is important that testing code is short and readable.
97
+ %% An if-then-else macro can make some code much more compact.
98
+ %% Compare: case f(X) of true->g(X); false->h(X) end
99
+ %% and: ?IF(f(X), g(Y), h(Z))
100
+ -ifndef(IF).
101
+ -define(IF(B,T,F), (case (B) of true->(T); false->(F) end)).
102
+ -endif.
103
+
104
+ -ifdef(NOASSERT).
105
+ %% The plain assert macro should be defined to do nothing if this file
106
+ %% is included when debugging/testing is turned off.
107
+ -ifndef(assert).
108
+ -define(assert(BoolExpr),ok).
109
+ -endif.
110
+ -else.
111
+ %% The assert macro is written the way it is so as not to cause warnings
112
+ %% for clauses that cannot match, even if the expression is a constant.
113
+ -undef(assert).
114
+ -define(assert(BoolExpr),
115
+ ((fun () ->
116
+ case (BoolExpr) of
117
+ true -> ok;
118
+ __V -> .erlang:error({assertion_failed,
119
+ [{module, ?MODULE},
120
+ {line, ?LINE},
121
+ {expression, (??BoolExpr)},
122
+ {expected, true},
123
+ {value, case __V of false -> __V;
124
+ _ -> {not_a_boolean,__V}
125
+ end}]})
126
+ end
127
+ end)())).
128
+ -endif.
129
+ -define(assertNot(BoolExpr), ?assert(not (BoolExpr))).
130
+
131
+ -define(_test(Expr), {?LINE, fun () -> (Expr) end}).
132
+
133
+ -define(_assert(BoolExpr), ?_test(?assert(BoolExpr))).
134
+
135
+ -define(_assertNot(BoolExpr), ?_assert(not (BoolExpr))).
136
+
137
+ %% This is mostly a convenience which gives more detailed reports.
138
+ %% Note: Guard is a guarded pattern, and can not be used for value.
139
+ -ifdef(NOASSERT).
140
+ -define(assertMatch(Guard,Expr),ok).
141
+ -else.
142
+ -define(assertMatch(Guard, Expr),
143
+ ((fun () ->
144
+ case (Expr) of
145
+ Guard -> ok;
146
+ __V -> .erlang:error({assertMatch_failed,
147
+ [{module, ?MODULE},
148
+ {line, ?LINE},
149
+ {expression, (??Expr)},
150
+ {expected, (??Guard)},
151
+ {value, __V}]})
152
+ end
153
+ end)())).
154
+ -endif.
155
+ -define(_assertMatch(Guard, Expr), ?_test(?assertMatch(Guard, Expr))).
156
+
157
+ %% This is a convenience macro which gives more detailed reports when
158
+ %% the expected LHS value is not a pattern, but a computed value
159
+ -ifdef(NOASSERT).
160
+ -define(assertEqual(Expect,Expr),ok).
161
+ -else.
162
+ -define(assertEqual(Expect, Expr),
163
+ ((fun (__X) ->
164
+ case (Expr) of
165
+ __X -> ok;
166
+ __V -> .erlang:error({assertEqual_failed,
167
+ [{module, ?MODULE},
168
+ {line, ?LINE},
169
+ {expression, (??Expr)},
170
+ {expected, __X},
171
+ {value, __V}]})
172
+ end
173
+ end)(Expect))).
174
+ -endif.
175
+ -define(_assertEqual(Expect, Expr), ?_test(?assertEqual(Expect, Expr))).
176
+
177
+ %% Note: Class and Term are patterns, and can not be used for value.
178
+ -ifdef(NOASSERT).
179
+ -define(assertException(Class, Term, Expr),ok).
180
+ -else.
181
+ -define(assertException(Class, Term, Expr),
182
+ ((fun () ->
183
+ try (Expr) of
184
+ __V -> .erlang:error({assertException_failed,
185
+ [{module, ?MODULE},
186
+ {line, ?LINE},
187
+ {expression, (??Expr)},
188
+ {expected,
189
+ "{ "++(??Class)++" , "++(??Term)
190
+ ++" , [...] }"},
191
+ {unexpected_success, __V}]})
192
+ catch
193
+ Class:Term -> ok;
194
+ __C:__T ->
195
+ .erlang:error({assertException_failed,
196
+ [{module, ?MODULE},
197
+ {line, ?LINE},
198
+ {expression, (??Expr)},
199
+ {expected,
200
+ "{ "++(??Class)++" , "++(??Term)
201
+ ++" , [...] }"},
202
+ {unexpected_exception,
203
+ {__C, __T, erlang:get_stacktrace()}}]})
204
+ end
205
+ end)())).
206
+ -endif.
207
+
208
+ -define(assertError(Term, Expr), ?assertException(error, Term, Expr)).
209
+ -define(assertExit(Term, Expr), ?assertException(exit, Term, Expr)).
210
+ -define(assertThrow(Term, Expr), ?assertException(throw, Term, Expr)).
211
+
212
+ -define(_assertException(Class, Term, Expr),
213
+ ?_test(?assertException(Class, Term, Expr))).
214
+ -define(_assertError(Term, Expr), ?_assertException(error, Term, Expr)).
215
+ -define(_assertExit(Term, Expr), ?_assertException(exit, Term, Expr)).
216
+ -define(_assertThrow(Term, Expr), ?_assertException(throw, Term, Expr)).
217
+
218
+ %% Macros for running operating system commands. (Note that these
219
+ %% require EUnit to be present at runtime, or at least eunit_lib.)
220
+
221
+ %% these can be used for simply running commands in a controlled way
222
+ -define(_cmd_(Cmd), (.eunit_lib:command(Cmd))).
223
+ -define(cmdStatus(N, Cmd),
224
+ ((fun () ->
225
+ case ?_cmd_(Cmd) of
226
+ {(N), __Out} -> __Out;
227
+ {__N, _} -> .erlang:error({command_failed,
228
+ [{module, ?MODULE},
229
+ {line, ?LINE},
230
+ {command, (Cmd)},
231
+ {expected_status,(N)},
232
+ {status,__N}]})
233
+ end
234
+ end)())).
235
+ -define(_cmdStatus(N, Cmd), ?_test(?cmdStatus(N, Cmd))).
236
+ -define(cmd(Cmd), ?cmdStatus(0, Cmd)).
237
+ -define(_cmd(Cmd), ?_test(?cmd(Cmd))).
238
+
239
+ %% these are only used for testing; they always return 'ok' on success,
240
+ %% and have no effect if debugging/testing is turned off
241
+ -ifdef(NOASSERT).
242
+ -define(assertCmdStatus(N, Cmd),ok).
243
+ -else.
244
+ -define(assertCmdStatus(N, Cmd),
245
+ ((fun () ->
246
+ case ?_cmd_(Cmd) of
247
+ {(N), _} -> ok;
248
+ {__N, _} -> .erlang:error({assertCmd_failed,
249
+ [{module, ?MODULE},
250
+ {line, ?LINE},
251
+ {command, (Cmd)},
252
+ {expected_status,(N)},
253
+ {status,__N}]})
254
+ end
255
+ end)())).
256
+ -endif.
257
+ -define(assertCmd(Cmd), ?assertCmdStatus(0, Cmd)).
258
+
259
+ -ifdef(NOASSERT).
260
+ -define(assertCmdOutput(T, Cmd),ok).
261
+ -else.
262
+ -define(assertCmdOutput(T, Cmd),
263
+ ((fun () ->
264
+ case ?_cmd_(Cmd) of
265
+ {_, (T)} -> ok;
266
+ {_, __T} -> .erlang:error({assertCmdOutput_failed,
267
+ [{module, ?MODULE},
268
+ {line, ?LINE},
269
+ {command,(Cmd)},
270
+ {expected_output,(T)},
271
+ {output,__T}]})
272
+ end
273
+ end)())).
274
+ -endif.
275
+
276
+ -define(_assertCmdStatus(N, Cmd), ?_test(?assertCmdStatus(N, Cmd))).
277
+ -define(_assertCmd(Cmd), ?_test(?assertCmd(Cmd))).
278
+ -define(_assertCmdOutput(T, Cmd), ?_test(?assertCmdOutput(T, Cmd))).
279
+
280
+ %% Macros to simplify debugging (in particular, they work even when the
281
+ %% standard output is being redirected by EUnit while running tests)
282
+
283
+ -ifdef(NODEBUG).
284
+ -define(debugMsg(S), ok).
285
+ -define(debugHere, ok).
286
+ -define(debugFmt(S, As), ok).
287
+ -define(debugVal(E), (E)).
288
+ -define(debugTime(S,E), (E)).
289
+ -else.
290
+ -define(debugMsg(S),
291
+ (begin
292
+ io:fwrite(user, <<"~s:~w: ~s\n">>,
293
+ [?FILE, ?LINE, S]),
294
+ ok
295
+ end)).
296
+ -define(debugHere, (?debugMsg("<-"))).
297
+ -define(debugFmt(S, As), (?debugMsg(io_lib:format((S), (As))))).
298
+ -define(debugVal(E),
299
+ ((fun (__V) ->
300
+ ?debugFmt(<<"~s = ~P">>, [(??E), __V, 15]),
301
+ __V
302
+ end)(E))).
303
+ -define(debugTime(S,E),
304
+ ((fun () ->
305
+ {__T0, _} = statistics(wall_clock),
306
+ __V = (E),
307
+ {__T1, _} = statistics(wall_clock),
308
+ ?debugFmt(<<"~s: ~.3f s">>, [(S), (__T1-__T0)/1000]),
309
+ __V
310
+ end)())).
311
+ -endif.
312
+
313
+ -endif. % EUNIT_HRL
@@ -0,0 +1,113 @@
1
+ K 25
2
+ svn:wc:ra_dav:version-url
3
+ V 38
4
+ /contribs/!svn/ver/258/trunk/eunit/src
5
+ END
6
+ eunit_tests.erl
7
+ K 25
8
+ svn:wc:ra_dav:version-url
9
+ V 54
10
+ /contribs/!svn/ver/238/trunk/eunit/src/eunit_tests.erl
11
+ END
12
+ eunit_proc.erl
13
+ K 25
14
+ svn:wc:ra_dav:version-url
15
+ V 53
16
+ /contribs/!svn/ver/256/trunk/eunit/src/eunit_proc.erl
17
+ END
18
+ autoload.erl
19
+ K 25
20
+ svn:wc:ra_dav:version-url
21
+ V 51
22
+ /contribs/!svn/ver/238/trunk/eunit/src/autoload.erl
23
+ END
24
+ eunit.app.src
25
+ K 25
26
+ svn:wc:ra_dav:version-url
27
+ V 52
28
+ /contribs/!svn/ver/211/trunk/eunit/src/eunit.app.src
29
+ END
30
+ eunit_server.erl
31
+ K 25
32
+ svn:wc:ra_dav:version-url
33
+ V 55
34
+ /contribs/!svn/ver/238/trunk/eunit/src/eunit_server.erl
35
+ END
36
+ eunit_lib.erl
37
+ K 25
38
+ svn:wc:ra_dav:version-url
39
+ V 52
40
+ /contribs/!svn/ver/238/trunk/eunit/src/eunit_lib.erl
41
+ END
42
+ eunit_data.erl
43
+ K 25
44
+ svn:wc:ra_dav:version-url
45
+ V 53
46
+ /contribs/!svn/ver/253/trunk/eunit/src/eunit_data.erl
47
+ END
48
+ eunit.appup.src
49
+ K 25
50
+ svn:wc:ra_dav:version-url
51
+ V 54
52
+ /contribs/!svn/ver/211/trunk/eunit/src/eunit.appup.src
53
+ END
54
+ eunit_autoexport.erl
55
+ K 25
56
+ svn:wc:ra_dav:version-url
57
+ V 59
58
+ /contribs/!svn/ver/258/trunk/eunit/src/eunit_autoexport.erl
59
+ END
60
+ code_monitor.erl
61
+ K 25
62
+ svn:wc:ra_dav:version-url
63
+ V 55
64
+ /contribs/!svn/ver/238/trunk/eunit/src/code_monitor.erl
65
+ END
66
+ eunit_serial.erl
67
+ K 25
68
+ svn:wc:ra_dav:version-url
69
+ V 55
70
+ /contribs/!svn/ver/249/trunk/eunit/src/eunit_serial.erl
71
+ END
72
+ eunit_internal.hrl
73
+ K 25
74
+ svn:wc:ra_dav:version-url
75
+ V 57
76
+ /contribs/!svn/ver/238/trunk/eunit/src/eunit_internal.hrl
77
+ END
78
+ eunit_test.erl
79
+ K 25
80
+ svn:wc:ra_dav:version-url
81
+ V 53
82
+ /contribs/!svn/ver/238/trunk/eunit/src/eunit_test.erl
83
+ END
84
+ eunit.erl
85
+ K 25
86
+ svn:wc:ra_dav:version-url
87
+ V 48
88
+ /contribs/!svn/ver/249/trunk/eunit/src/eunit.erl
89
+ END
90
+ eunit_tty.erl
91
+ K 25
92
+ svn:wc:ra_dav:version-url
93
+ V 52
94
+ /contribs/!svn/ver/238/trunk/eunit/src/eunit_tty.erl
95
+ END
96
+ file_monitor.erl
97
+ K 25
98
+ svn:wc:ra_dav:version-url
99
+ V 55
100
+ /contribs/!svn/ver/250/trunk/eunit/src/file_monitor.erl
101
+ END
102
+ eunit_striptests.erl
103
+ K 25
104
+ svn:wc:ra_dav:version-url
105
+ V 59
106
+ /contribs/!svn/ver/238/trunk/eunit/src/eunit_striptests.erl
107
+ END
108
+ Makefile
109
+ K 25
110
+ svn:wc:ra_dav:version-url
111
+ V 47
112
+ /contribs/!svn/ver/245/trunk/eunit/src/Makefile
113
+ END