auser-poolparty 0.2.16 → 0.2.20

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 (139) hide show
  1. data/Manifest.txt +72 -7
  2. data/PostInstall.txt +1 -1
  3. data/Rakefile +11 -0
  4. data/bin/cloud-provision +6 -10
  5. data/bin/server-build-messenger +20 -0
  6. data/bin/server-fire-cmd +0 -2
  7. data/bin/server-list-responding +24 -0
  8. data/bin/server-start-master +4 -9
  9. data/bin/server-start-node +7 -6
  10. data/lib/erlang/messenger/Emakefile +1 -0
  11. data/lib/erlang/messenger/Rakefile +29 -20
  12. data/lib/erlang/messenger/ebin/master_app.beam +0 -0
  13. data/lib/erlang/messenger/ebin/node_app.beam +0 -0
  14. data/lib/erlang/messenger/ebin/packager.app +19 -0
  15. data/lib/erlang/messenger/ebin/pm_client.beam +0 -0
  16. data/lib/erlang/messenger/ebin/pm_cluster.beam +0 -0
  17. data/lib/erlang/messenger/ebin/pm_event_handler.beam +0 -0
  18. data/lib/erlang/messenger/ebin/pm_master.beam +0 -0
  19. data/lib/erlang/messenger/ebin/pm_master_rel-0.1.rel +1 -7
  20. data/lib/erlang/messenger/ebin/pm_master_supervisor.beam +0 -0
  21. data/lib/erlang/messenger/ebin/pm_node.beam +0 -0
  22. data/lib/erlang/messenger/ebin/pm_node_rel-0.1.rel +1 -7
  23. data/lib/erlang/messenger/ebin/pm_node_supervisor.beam +0 -0
  24. data/lib/erlang/messenger/ebin/pm_packager.beam +0 -0
  25. data/lib/erlang/messenger/ebin/utils.beam +0 -0
  26. data/lib/erlang/messenger/lib/eunit/AUTHORS +2 -0
  27. data/lib/erlang/messenger/lib/eunit/CHANGELOG +14 -0
  28. data/lib/erlang/messenger/lib/eunit/COPYING +504 -0
  29. data/lib/erlang/messenger/lib/eunit/Makefile +28 -0
  30. data/lib/erlang/messenger/lib/eunit/NOTES +276 -0
  31. data/lib/erlang/messenger/lib/eunit/README +3 -0
  32. data/lib/erlang/messenger/lib/eunit/doc/edoc-info +3 -0
  33. data/lib/erlang/messenger/lib/eunit/doc/erlang.png +0 -0
  34. data/lib/erlang/messenger/lib/eunit/doc/eunit.html +172 -0
  35. data/lib/erlang/messenger/lib/eunit/doc/index.html +17 -0
  36. data/lib/erlang/messenger/lib/eunit/doc/modules-frame.html +12 -0
  37. data/lib/erlang/messenger/lib/eunit/doc/overview-summary.html +984 -0
  38. data/lib/erlang/messenger/lib/eunit/doc/overview.edoc +980 -0
  39. data/lib/erlang/messenger/lib/eunit/doc/packages-frame.html +11 -0
  40. data/lib/erlang/messenger/lib/eunit/doc/stylesheet.css +55 -0
  41. data/lib/erlang/messenger/lib/eunit/ebin/autoload.beam +0 -0
  42. data/lib/erlang/messenger/lib/eunit/ebin/code_monitor.beam +0 -0
  43. data/lib/erlang/messenger/lib/eunit/ebin/eunit.app +21 -0
  44. data/lib/erlang/messenger/lib/eunit/ebin/eunit.appup +1 -0
  45. data/lib/erlang/messenger/lib/eunit/ebin/eunit.beam +0 -0
  46. data/lib/erlang/messenger/lib/eunit/ebin/eunit_autoexport.beam +0 -0
  47. data/lib/erlang/messenger/lib/eunit/ebin/eunit_data.beam +0 -0
  48. data/lib/erlang/messenger/lib/eunit/ebin/eunit_lib.beam +0 -0
  49. data/lib/erlang/messenger/lib/eunit/ebin/eunit_proc.beam +0 -0
  50. data/lib/erlang/messenger/lib/eunit/ebin/eunit_serial.beam +0 -0
  51. data/lib/erlang/messenger/lib/eunit/ebin/eunit_server.beam +0 -0
  52. data/lib/erlang/messenger/lib/eunit/ebin/eunit_striptests.beam +0 -0
  53. data/lib/erlang/messenger/lib/eunit/ebin/eunit_test.beam +0 -0
  54. data/lib/erlang/messenger/lib/eunit/ebin/eunit_tests.beam +0 -0
  55. data/lib/erlang/messenger/lib/eunit/ebin/eunit_tty.beam +0 -0
  56. data/lib/erlang/messenger/lib/eunit/ebin/file_monitor.beam +0 -0
  57. data/lib/erlang/messenger/lib/eunit/examples/eunit_examples.erl +339 -0
  58. data/lib/erlang/messenger/lib/eunit/examples/fib.erl +19 -0
  59. data/lib/erlang/messenger/lib/eunit/examples/tests.txt +1 -0
  60. data/lib/erlang/messenger/lib/eunit/include/eunit.hrl +313 -0
  61. data/lib/erlang/messenger/lib/eunit/src/Makefile +46 -0
  62. data/lib/erlang/messenger/lib/eunit/src/autoload.erl +388 -0
  63. data/lib/erlang/messenger/lib/eunit/src/code_monitor.erl +243 -0
  64. data/lib/erlang/messenger/lib/eunit/src/eunit.app.src +21 -0
  65. data/lib/erlang/messenger/lib/eunit/src/eunit.appup.src +1 -0
  66. data/lib/erlang/messenger/lib/eunit/src/eunit.erl +196 -0
  67. data/lib/erlang/messenger/lib/eunit/src/eunit_autoexport.erl +102 -0
  68. data/lib/erlang/messenger/lib/eunit/src/eunit_data.erl +798 -0
  69. data/lib/erlang/messenger/lib/eunit/src/eunit_internal.hrl +48 -0
  70. data/lib/erlang/messenger/lib/eunit/src/eunit_lib.erl +682 -0
  71. data/lib/erlang/messenger/lib/eunit/src/eunit_proc.erl +552 -0
  72. data/lib/erlang/messenger/lib/eunit/src/eunit_serial.erl +157 -0
  73. data/lib/erlang/messenger/lib/eunit/src/eunit_server.erl +340 -0
  74. data/lib/erlang/messenger/lib/eunit/src/eunit_striptests.erl +64 -0
  75. data/lib/erlang/messenger/lib/eunit/src/eunit_test.erl +334 -0
  76. data/lib/erlang/messenger/lib/eunit/src/eunit_tests.erl +45 -0
  77. data/lib/erlang/messenger/lib/eunit/src/eunit_tty.erl +272 -0
  78. data/lib/erlang/messenger/lib/eunit/src/file_monitor.erl +409 -0
  79. data/lib/erlang/messenger/lib/eunit/sys.config +9 -0
  80. data/lib/erlang/messenger/lib/eunit/vsn.mk +1 -0
  81. data/lib/erlang/messenger/pm_master_rel-0.1.boot +0 -0
  82. data/lib/erlang/messenger/pm_master_rel-0.1.script +75 -2
  83. data/lib/erlang/messenger/pm_node_rel-0.1.boot +0 -0
  84. data/lib/erlang/messenger/pm_node_rel-0.1.script +75 -2
  85. data/lib/erlang/messenger/src/pm_client.erl +8 -3
  86. data/lib/erlang/messenger/src/pm_cluster.erl +32 -9
  87. data/lib/erlang/messenger/src/pm_master.erl +10 -11
  88. data/lib/erlang/messenger/src/pm_node.erl +2 -3
  89. data/lib/erlang/messenger/src/pm_packager.erl +73 -0
  90. data/lib/erlang/messenger/src/utils.erl +3 -10
  91. data/lib/poolparty/base_packages/heartbeat.rb +9 -9
  92. data/lib/poolparty/base_packages/poolparty.rb +16 -10
  93. data/lib/poolparty/config/allowed_commands.yml +1 -0
  94. data/lib/poolparty/core/object.rb +8 -0
  95. data/lib/poolparty/exceptions/UnacceptableCommand.rb +5 -0
  96. data/lib/poolparty/helpers/messenger.rb +29 -0
  97. data/lib/poolparty/helpers/provisioner_base.rb +7 -7
  98. data/lib/poolparty/helpers/provisioners/master.rb +3 -7
  99. data/lib/poolparty/helpers/provisioners/slave.rb +1 -0
  100. data/lib/poolparty/modules/cloud_resourcer.rb +7 -5
  101. data/lib/poolparty/modules/configurable.rb +1 -1
  102. data/lib/poolparty/modules/method_missing_sugar.rb +6 -1
  103. data/lib/poolparty/modules/pretty_printer.rb +1 -0
  104. data/lib/poolparty/modules/resourcing_dsl.rb +2 -1
  105. data/lib/poolparty/monitors/monitors/cpu_monitor.rb +1 -1
  106. data/lib/poolparty/net/remoter.rb +3 -1
  107. data/lib/poolparty/plugins/git.rb +3 -3
  108. data/lib/poolparty/pool/base.rb +7 -2
  109. data/lib/poolparty/pool/cloud.rb +3 -3
  110. data/lib/poolparty/pool/resource.rb +38 -24
  111. data/lib/poolparty/pool/resources/class_package.rb +2 -2
  112. data/lib/poolparty/pool/resources/conditional.rb +8 -4
  113. data/lib/poolparty/pool/resources/{gem.rb → gem_package.rb} +0 -0
  114. data/lib/poolparty/pool/resources/package.rb +8 -1
  115. data/lib/poolparty/version.rb +1 -1
  116. data/lib/poolparty.rb +1 -1
  117. data/poolparty.gemspec +476 -61
  118. data/spec/poolparty/core/object_spec.rb +20 -0
  119. data/spec/poolparty/helpers/messenger_spec.rb +14 -0
  120. data/spec/poolparty/helpers/provisioners/master_spec.rb +2 -2
  121. data/spec/poolparty/net/remoter_spec.rb +1 -1
  122. data/spec/poolparty/plugins/git_spec.rb +26 -19
  123. data/spec/poolparty/pool/base_spec.rb +20 -2
  124. data/spec/poolparty/pool/cloud_spec.rb +256 -249
  125. data/spec/poolparty/pool/custom_resource_spec.rb +6 -1
  126. data/spec/poolparty/pool/plugin_spec.rb +71 -65
  127. data/spec/poolparty/pool/resource_spec.rb +314 -237
  128. data/spec/poolparty/pool/resources/class_package_spec.rb +71 -66
  129. data/spec/poolparty/pool/resources/conditional_spec.rb +30 -26
  130. data/spec/poolparty/pool/resources/gem_spec.rb +18 -14
  131. data/spec/poolparty/pool/resources/variable_spec.rb +1 -1
  132. data/spec/poolparty/pool/script_spec.rb +46 -37
  133. data/spec/poolparty/spec_helper.rb +4 -0
  134. data/tasks/cloud.rake +0 -54
  135. data/tasks/development.rake +11 -14
  136. data/tasks/ec2.rake +10 -17
  137. data/tasks/instance.rake +0 -61
  138. data/website/index.html +1 -1
  139. metadata +83 -10
@@ -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: eunit.hrl 261 2008-10-12 11:33:16Z rcarlsson $
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,46 @@
1
+
2
+ include ../vsn.mk
3
+
4
+ EMULATOR=beam
5
+ EBIN=../ebin
6
+ INCLUDE=../include
7
+
8
+ APP_TARGET=$(EBIN)/eunit.app
9
+ APPUP_TARGET=$(EBIN)/eunit.appup
10
+
11
+ ERL_COMPILE_FLAGS += -I$(INCLUDE) +warn_unused_vars +nowarn_shadow_vars +warn_unused_import
12
+
13
+ SOURCES= \
14
+ eunit_autoexport.erl \
15
+ eunit_striptests.erl \
16
+ eunit.erl \
17
+ eunit_tests.erl \
18
+ eunit_server.erl \
19
+ eunit_proc.erl \
20
+ eunit_serial.erl \
21
+ eunit_test.erl \
22
+ eunit_lib.erl \
23
+ eunit_data.erl \
24
+ eunit_tty.erl \
25
+ code_monitor.erl \
26
+ file_monitor.erl \
27
+ autoload.erl
28
+
29
+ OBJECTS=$(SOURCES:%.erl=$(EBIN)/%.$(EMULATOR)) $(APP_TARGET) $(APPUP_TARGET)
30
+
31
+ all: $(OBJECTS)
32
+
33
+ $(OBJECTS): eunit_internal.hrl \
34
+ $(INCLUDE)/eunit.hrl
35
+
36
+ clean:
37
+ rm -f $(OBJECTS)
38
+
39
+ $(EBIN)/%.$(EMULATOR):%.erl
40
+ erlc -pa $(EBIN) -W $(ERL_COMPILE_FLAGS) -o$(EBIN) $<
41
+
42
+ $(APP_TARGET): eunit.app.src ../vsn.mk
43
+ sed -e 's;%VSN%;$(EUNIT_VSN);' $< > $@
44
+
45
+ $(APPUP_TARGET): eunit.appup.src ../vsn.mk
46
+ sed -e 's;%VSN%;$(EUNIT_VSN);' $< > $@