|
ts:run() runs make:all/1 to facilitate interactive development
of a test suite - when you have changed your test suite, just
run ts:run() and it will rebuild the test suite for you.
Some test suites, such as for the public_key application,
are meant to be built once and for all by "make release_tests".
Re-building it later with make:all/1 will fail because
it references an internal .hrl file in the source directory
for public_key.
Running make:all/1 for the public_key test suite would not
cause any harm in most circumstances, because make:all/1 would
consider the *.beam files to be up-to-date and therefore not
actually try to re-build anything.
In 2c6d9b57ce4557a431bcf02565c3634a0ed7ca61, however, the
public_key test suite started to include "test_server.hrl"
using -include_lib() instead of -include(). That means that
"test_server.hrl" will be included from the Erlang/OTP
system being tested, and if that system has been built
*after* the test suite was built, the *.beam files in the
test suite will be out-of-date and make:all/1 will try to
re-build them (and fail).
To avoid this problem, modify ts:run() as follows:
* If the test suite has an Emakefile (such as the emulator test
suite), it is clearly meant to be (re-)built by make:all/1,
so we run make:all/1.
* If there is no Emakefile and no .beam files (such as in the
erl_interface test suite), it also seems clear that the
test suite is meant to be built by make:all/1. To make sure
that the test suite will also be *re-built*, create an
Emakefile that will re-build all *.erl files in the
directory for the test suite.
* If there is no Emakefile and there are *.beam files (such
as for the public_key test suite), we assume that the test
suite are not meant to re-built. However, there may be
generated *_SUITE_make.erl files (if there are *_SUITE_data
directories containg Makefile.src files, as in the xmerl
application). If there are any *_SUITE_make.erl files,
generate an Emakefile for compiling only those files
and run make:all/1. Otherwise, don't run make:all/1.
|