[erlang-questions] Failing Makefile build on EUnit test failures

Jeremy Raymond <>
Wed Dec 16 14:27:51 CET 2009


Hello - init:stop/1 is available on the version of Erlang I have. Thanks!

On Wed, Dec 16, 2009 at 7:21 AM, Romain Lenglet <
> wrote:

> Unfortunately, init:stop/1 is relatively new, and older versions of OTP
> have only init:stop/0. To be compatible with older versions of OTP, you have
> only two choices:
>
> - call halt/1, which does not flush the standard output (which is an
> important drawback in the case of EUnit, as the test's output is often
> essential for debugging and is often truncated when calling halt/1 just
> after a test);
>
> - call init:stop/0, which always exits with code 0 but flushes the standard
> output; in that case, you have to transmit the result of the test through
> other means, e.g. by writing a result code into a file with file:write(),
> etc. and handle it in the calling script or Makefile.
>
> I use the latter solution in the integration of EUnit into
> Autoconf/Autotest. You may want to use that solution:
> http://www.berabera.info/en/node/194
>
> BR,
> --
> Romain Lenglet
>
>
> Angel Alvarez wrote:
>
>> El Miércoles, 16 de Diciembre de 2009 02:06:35 Jeremy Raymond escribió:
>>
>>> Hello,
>>>
>>> I have a make file that runs my EUnit tests like this:
>>>
>>> eunit: ${EUNIT_OBJ}
>>>    erl -noshell -pa ebin -eval 'eunit:test(${TEST_MODULES}, [verbose])'
>>> -s
>>> init stop
>>>
>>> What I'd like to happen is have my build fail if any of the eunit tests
>>> fail
>>> however even if tests fail the build suceeds (the command to run the
>>> tests
>>> returns 0?). How can I make my build fail if the tests fail, and pass if
>>> the
>>> tests pass?
>>>
>>>
>>> Thanks,
>>>
>>> Jeremy
>>>
>>>
>> Also
>>
>> :~/Tmp/kt> erl -noshell -eval "erlang:halt(0)" && echo Ok
>> Ok
>>
>> :~/Tmp/kt> erl -noshell -eval "erlang:halt(1)" && echo Ok
>>
>>
>> And using init:stop you allow apps to shutdown nicely...
>>
>>
>> :~/Tmp/kt> erl -noshell -eval "init:stop(0)" && echo Ok
>> Ok
>>
>> :~/Tmp/kt> erl -noshell -eval "init:stop(1)" && echo Ok
>>
>>
>>
> ________________________________________________________________
> erlang-questions mailing list. See http://www.erlang.org/faq.html
> erlang-questions (at) erlang.org
>
>


More information about the erlang-questions mailing list