auser-poolparty 0.2.66 → 0.2.67

Sign up to get free protection for your applications and to get access to all the features.
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