Age | Commit message (Collapse) | Author |
|
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 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.
|
|
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/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
|
|
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.
|
|
|
|
|
|
|
|
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.
|
|
* egil/add-scalefactor-to-start_node:
test_server: Let start_node/3 utilize scalefactor
test_server: Refactor timetrap_scale_factor/0
|
|
* test_server_node:start_node/3 now uses timetrap_scale_factor for
timeouts (peer nodes)
|
|
|
|
Scaling timetraps depending on cover, debug-compiled emulator and so
on is built-in to the test_server. Therefore, {multiply_timetraps,Scale}
should not be set (it would multiply the timeout value twice). Only
{scale_timetraps,true} needs to be set, and it must be set
unconditionally as the feature tests in
test_server:timetrap_scale_factor() may not return the correct
scale factor until the test_server node and test cases have been
started (for example, there is no cover server running).
|
|
Sometime in cross environments the documentation will
create the lib folders, but there will be no ebin so
all undefined functions should then be ignored.
|
|
* bjorn/test_server/dialyzer-fixes:
test_server_ctrl: Don't use undocumented features of io:format()
Fix obsolete assumption for the return type of os:type/0
|
|
* dgud/ct/fix-trashed-logs/OTP-10369:
[ct] Shorten testcase names
Shorten testcase names
[ct] Block output into single io call
|
|
The Format string argument for io:format/3 is not documented
to accept an iolist, so we should not depend on it. Fix the
problem by using io:put_chars/2 instead.
|
|
os:type/0 could (a long, long time ago) return atoms such as
'vxworks' instead of a two-tuple.
|
|
* bjorn/ct-fix-silent-death/OTP-9769:
Teach test_server to report severe errors to common_test
test_server_ctrl: Present "cannot create log dir" errors more neatly
test_server_ctrl: Don't die in stop_extra_tools/1
|
|
The commands no longer work now that ts is a wrapper for
common_test (instead of for test_server), and no one seems to
have missed them.
|
|
The ts:index/0 command only works with test_server log directories.
The functionality to generate an overview of all tests run is now
provided by common_test itself.
|
|
|
|
The ts wrapper module invokes common_test by calling the
ct:run_test/1 function using "erl -eval Cmd". Since
ct:run_test/1 is intended to by called from the Erlang shell,
it returns error values rather than printing them. Therefore,
when an error occurs, users of ts may not see any error
indication.
Introduce the ts_run:ct_run_test/2 wrapper which invokes
ct:run_test/1 and prints out any error that occurs.
|
|
Add newlines to the same io function call,
so that concurrent io always starts at a new line.
|
|
If a severe error occurs in test_server (e.g. failing to write to
log files), test_server would terminate without commont_test knowing
about it. Since ct_run can now return an exit code, it is important
that common_test is aware of severe problem so that it can indicate
that an error has occurred.
|
|
|
|
If it is not possible for test_server_ctrl:start_log_file/0 to
create the log file directory or log files, then stop_extra_tools/1
(called from init_tester/10) is also likely to crash and hide the
original error reason. That will be confusing to the user.
Therefore, catch the call to stop_extra_tools/1.
|
|
Conflicts:
lib/diameter/autoconf/vxworks/sed.general
xcomp/README.md
|
|
|
|
* maint:
Bumped version nr
ssl & public_key: Workaround that some certificates encode countryname as utf8 and close down gracefully if other ASN-1 errors occur.
Add more cross reference links to ct docs
Remove config option from common_test args
Update user config to use nested tuple keys
Allow mixed IPv4 and IPv6 addresses to sctp_bindx
Add checks for in6addr_any and in6addr_loopback
Fix SCTP multihoming
observer: fix app file (Noticed-by: Motiejus Jakstys)
Fix lib/src/test/ssh_basic_SUITE.erl to fix IPv6 option typos
Prevent index from being corrupted if a nonexistent item is deleted
Add tests showing that trying to delete non-existing object may corrupt the table index
Fix Table Viewer search crash on new|changed|deleted rows
Escape control characters in Table Viewer
Fix Table Viewer crash after a 'Found' -> 'Not found' search sequence
inet_drv.c: Set sockaddr lengths in inet_set_[f]address
Conflicts:
erts/preloaded/ebin/prim_inet.beam
|
|
* lukas/common_test/deep_get_config/OTP-9626:
Add more cross reference links to ct docs
Remove config option from common_test args
Update user config to use nested tuple keys
|
|
|
|
|
|
|
|
* origin/peppe/common_test/break_and_continue:
Fix error in documentation
Implement support for test case execution break/continue
Conflicts:
lib/common_test/src/ct.erl
lib/common_test/src/ct_run.erl
OTP-10127
OTP-10172
|
|
|
|
* origin/peppe/common_test/verbosity_level:
Fix doc build error
Implement verbosity levels and parameter for log printout importance
Conflicts:
lib/common_test/src/ct_logs.erl
lib/common_test/src/ct_run.erl
lib/common_test/src/ct_testspec.erl
lib/common_test/src/ct_util.hrl
lib/common_test/test/Makefile
OTP-9625
OTP-10067
|
|
This is needed because it is no longer ignored by common_test
|
|
|
|
|
|
* egil/r16/remove-vxworks-support/OTP-10146: (30 commits)
erts: Update doc to reflect VxWorks removal
erts: Remove VxWorks from documentation
Update preloaded erl_prim_loader and prim_file
snmp: Remove VxWorks
megaco: Remove VxWorks
diameter: Remove VxWorks
mnesia: Remove VxWorks
typer: Remove VxWorks
ssh: Remove VxWorks
inets: Remove VxWorks
hipe: Remove VxWorks
cosFileTransfer: Remove VxWorks
asn1: Remove VxWorks
orber: Remove VxWorks
os_mon: Remove VxWorks
runtime_tools: Remove VxWorks
test_server: Remove VxWorks references in doc
test_server: Remove VxWorks
stdlib: Remove VxWorks
kernel: Remove VxWorks from tests
...
Conflicts:
erts/emulator/test/Makefile
|
|
|
|
|
|
|
|
OTP-9896
Introduce java scripts in the web pages to enable sorting
of table elements.
|