Age | Commit message (Collapse) | Author |
|
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).
|
|
|
|
Before line numbers were included in exceptions (in R15), there were
parse transforms and macros that would keep the test_server_loc
process dictionary variable updated; therefore there is a mod_loc/1
function that will normalize the representation of locations.
Simplify the code as following:
* 'test_server_loc' should always contain a list with one or more
tuples. ({M,F} or {M,F,Line})
* At the beginning of each test case, set 'test_server_loc' to
[{Module,Func}] of the the currently executing test case.
* Stop updating 'test_server_loc', except when an exception occurs.
(It used to be updated when running 'init_per_testcase' and so on.)
* Remove the mod_loc/1 function.
|
|
Three pieces of information could be out of sync in testcase
supervisor process at the time when a timetrap occurred:
* test_server_loc (process dictionary) - may indicate that a
framework function is executing
* test_server_init_or_end_conf (process dictionary) - indicates whether
init_per_testcase or end_per_testcase is executing
* The current configuration (#st.config) - set using a synchronous
call
There could be in a crash in spawn_fw_call/7 because the current
configuration was not defined when it was expected to.
To avoid the problem, introduce set_tc_state/2 (and a corresponding
message) to allow setting both an indication what the testcase is
executing (e.g. init_per_testcase, framework call, and so on), and
the current configuration. Use only that information to handle
a timetrap timeout (and aborted testcase and the other reasons
for the testcase process to terminate). Completely remove
test_server_init_or_end_conf.
|
|
The Loc argument was use to determine the name of the currently
executing test case, in case that the M and F arguments did not
specify a test case.
Since a previous commit makes sure that the M and F arguments *are*
valied, we can eliminate the Loc argument.
|
|
The code is not actually shorter, but it avoids duplicating the code
for producing an error tuple when theres is no priv_dir tuple in
the config data.
|
|
Keeping all state as separate function arguments does not make it
easy to add more pieces of data to the state. Case in point is the
CurrConf argument where up to three separate items have been
shoehorned in.
Instead of the arguments, introduce a state record to hold all of the
different pieces of state (taking care to separate the former CurrConf
variable into separate fields in the record).
While at it, fix a bug. The name of the currently executing test
case (module and function) used to be stored in a tuple in the CurrConf
variable, and it would only be available after 'set_curr_conf' message
has been received. Depending on timing, it was possible in rare
circumstances for an EXIT signal to arrive before the 'set_curr_conf'
message. Avoid this problem by putting the current test case
name into the record from the beginning. That also means that we
can eliminate the workaround of getting the currently executing test case
from the stack trace using the get_mf/1.
|
|
* 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.
|
|
|
|
|
|
Some of the tests which tested shell output assumed that
when starting a shell using `erl` a shell with newshell
was used. This is not true for systems built with
--disable-termcap, so the on some embedded systems those
tests failed.
|
|
|
|
New prefix for command line utils
Disable morecore hook as it does not work with new cross chain
|
|
|
|
* 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
|