Age | Commit message (Collapse) | Author |
|
OTP-10523
Earlier, if the connection to a remote cover node was lost, all cover
data was lost and the cover_server on the remote node would die. This
would cause problems if there were cover compiled modules that would
still be executed since they would attempt to write to the no longer
existing ets tables belonging to the cover_server.
This commit changes this behavior so that the cover_server on the
remote node will survive connection loss and continue collecting cover
data. If the connection is re-established then the main node will sync
with the remote node again and cover data will not be lost (unless the
node was down).
|
|
OTP-10523
Since the will probably be cover compiled modules left in the remote
node, we want to keep the cover_server and it's ets tables even if
connection to remote node is lost. This way it will not crash (due to
ets:insert in non existing table) if functions in cover compiled
modules are executed.
|
|
By default the test server will start cover on all nodes when the test
is run with code coverage analysis. To make sure cover is not started
on a new node, this option can be set.
This can be useful if the test itself starts cover or if the new node
for some reason can not run cover compiled code.
|
|
code_SUITE:ext_mod_dep used code:which(kernel) to get the path to the
kernel ebin directory. This failed when kernel was cover compiled,
since code:which then returns 'cover_compiled'. Using code:lib_dir
instead solved the problem.
|
|
OTP-9956
Test that the test suite itself can be cover compiled, and that
data_dir is still set correctly.
|
|
|
|
|
|
ct_slave, ct_test_support and test_server_test_lib always called
cover:flush/1 when stopping slave nodes. If cover was not running,
this would cause cover_server to be started and thus
test_server:is_cover/0 to return true afterwards. This has been
corrected.
|
|
By default, test_server will always stop cover (and thus load back the
non cover compiled original beam files) after a test with code
coverage analysis is completed. The new option allows the common_test
user to specify that cover shall not be stopped. This can be useful if
there are processes still running old code, i.e. processes that have
not done any fully qualified function call after the cover
compilation, since loading the original code then will kill those
processes. This is only recommended if the erlang node is to be
stopped after the test run, or if cover can be manually stopped.
|
|
The cross cover analysis functionality in test_server was broken since
OTP converted to running daily tests through common_test. This has
been corrected.
|
|
Without this change, there is no support in test_server for starting
cover on a node started with option {wait,false}.
|
|
In test_server_ctrl:start_node and wait_for_node, the timer in
controller_call was not multiplied by the timetrap_scale_factor. This
caused unexpected behaviour since the scale factor was used furhter
down the the code, and timeout would happen in unexpected order when
cover was running.
|
|
|
|
|
|
This is because this test case itself starts and stops cover.
|
|
Nodes started with ct_slave should automatically run cover when tests
are executed with cover analysis. Nodes must also be flushed for cover
data before stopped.
|
|
In order to avoid crash of processes that hold old code, cover is no
longer stopped before slave nodes are stopped. Instead cover:flush is
used which only fetches cover data from the slave.
This, along with similar changes in test_server allows all common_test
modules to be included in cover analysis.
|
|
This commit removes all calls to cover:stop from test_server. This is
to avoid crash in some processes due to old code.
The correction shall be further refined for general use. There will,
for instance, be an option to turn off cover:stop/0 after completed
test run, so the default behaviour is backwards compatible.
|
|
OTP-10523
* Added cover:flush(Nodes), which will fetch data from remote nodes
without stopping cover on those nodes.
* Added cover:get_main_node(), which returns the node name of the main
node. This is used by test_server to avoid {error,not_main_node}
when a slave starts another slave (e.g. in test_server's own tests).
|
|
|
|
* bjorn/compiler/test-cases:
Correct typo in test suite name
compiler: Run testcases in parallel
|
|
* bjorn/test_server/test-cases:
test_server tests: Be kind to Windows by using shorter pathnames
|
|
* bjorn/erts/beam_makeops:
beam_makeops: Turn on warnings and eliminate existing warnings
beam_makeops: Eliminate a deprecation warning
|
|
* bjorn/ct/separate-io-server/OTP-10101:
Test ct:capture/start/stop/get
Introduce ct_group_leader_SUITE that does nasty things with group leaders
Eliminate unexpected I/O to the minor log file
Introduce test_server_io and test_server_gl
Clean up initialization of parallel test cases
Introduce is_io_buffered/0 to somewhat improve readability
test_server_ctrl: Consistently use set_io_buffering/1
|
|
* siri/test_server/faulty-data_dir-when-cover/OTP-9956:
[test_server] Set data_dir correctly when suite is cover compiled
|
|
If the test suite itself was included in code coverage analysis, then
test_server_ctrl would not manage to set data_dir correctly for the
test, since it relied on the result of code:which(Suite). This has
been corrected.
|
|
The pathnames gets too long for Windows if we use priv_dir as working
directory for the test_server tests in the slave node. Use data_dir
instead. Revert this commit when the run-time system can handle long
pathnames on Windows.
|
|
Conflicts:
erts/etc/common/heart.c
|
|
* egil/ensure-erl_crash.dump/OTP-10422:
test: Relax timeouts for heart_SUITE
erts: Fix crash dump write to port hack
erts: Fix lock check assertion
doc: Document ERL_CRASH_DUMP_SECONDS behaviour
test: Add test for heart restart on crash
test: Add test for heart restart on crash
erts: Change ERL_CRASH_DUMP_SECONDS behaviour
test: Refactor away ?line macros in heart_SUITE
erts: Search for heart in ports that are alive
heart: Refactor heart debugging
erts, heart: Ensure erl_crash.dump is written
|
|
* sverk/valgrind-quoting:
Make cerl -valgrind work with quoted spaces in command line
|
|
|
|
|
|
|
|
|
|
Timeouts were set too narrow and timedout on slow machines
|
|
More future proof with R16
|
|
|
|
|
|
Note that there are some more direct use of:
get(test_server_common_io_handler)
that cannot be replaced with a call to is_io_buffered/0.
|
|
Since we will want to change the implementation of I/O buffering in
a future commit, make sure that all updates of the buffering state
is done by calling set_io_buffering/1.
|
|
It should be beam_except_SUITE, since it tests the beam_except
module (introduced in 726f6e4c7afe8ce37b30eedbebe583e7b9bfc51b).
|
|
Run testcases in parallel will make the test suite run slightly
faster. Another reason for this change is that we want more testing
of parallel testcase support in common_test.
|
|
|
|
* ia/ssh/ctify-tests:
ssh: Modernized test suites to use only Common Test
|
|
|
|
* heart reboot behaviour
* erl_crash.dump file write behaviour
|
|
* node_start_soon_after_crash tests that heart restarts
beam upon a crash and only lets beam write its crash
dump for a certain amount of time
|
|
* ar/odbc_nagel:
Under Unix enable TCP_NODELAY to disable Nagel's socket algorithm
OTP-10506
|
|
* nk/jinterface-fix_compressed_binary:
add (de)compress roundtrip tests with larger values
fix reading compressed binary terms from Java
OTP-10505
|
|
* at/binary-depth-printing:
Fix printing the empty binary at depth 1 with ~W
OTP-10504
|