Age | Commit message (Collapse) | Author |
|
* siri/cover-tests: (21 commits)
[common_test] Extend timer for flushing error logger
[cover] Allow reconnection if node has been disconnected or down
[cover] Don't kill remote nodes when connection to main node is lost
[test_server] Add option {start_cover,false} to test_server:start_node
Use code:lib_dir instead of code:which to get application directory
[common_test] Add test for OTP-9956
Include all kernel modules in code coverage analysis
[common_test] Add test suite for code coverage support
[common_test, test_server] Don't flush cover if cover is not running
[common_test] Add option cover_stop
[test_server] Allow cross cover analysis when testing through common_test
[test_server] Start cover in test_server:wait_for_node
[test_server] Multiply timers with timetrap_scale_factor when starting nodes
Include all stdlib modules in code coverage analysis
[test_server] Include all test_server modules in code coverage analysis
Skip epp_SUITE:otp_8911 if cover is running
[common_test] Start cover on slave nodes if running cover tests
[common_test] Don't stop cover before stopping slave node
[test_server] Don't stop cover after test is finished
[cover] Add support for test_server
...
OTP-10427
|
|
Because of a forgotten "Fd", configuration information intended for
ct_master_log.html ended up being written to standard output.
|
|
OTP-10040
If a busy test case generated lots of error messages,
cth_log_redirect:post_end_per_testcase would crash with a timeout
while waiting for the error logger to finish handling all error
messages. The default timer is 5 seconds. This has now been extended
to 5 minutes.
|
|
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.
|
|
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.
|
|
OTP-10454
OTP-10434
Function register_users/2, register_agents/2 and register_usm_users/2,
and the corresponding unregister_*/1 functions were not
executable. These are corrected/rewritten.
Function update_usm_users/2 is removed, and an unregister function is
added instead. Update can now be done with unregister_usm_users and
then register_usm_users.
Functions unregister_*/2 are added, so specific users/agents/usm users
can be unregistered.
Function unload_mibs/1 is added.
Overriding configuration files did not work, since the files were
written in priv_dir instead of in the configuration dir
(priv_dir/conf). This has been corrected.
Minor updates to documentation.
|
|
* bjorn/common_test/dialyzer-fixes:
ct_master_logs: Don't use io:format/3 with an empty variable list
common_test: Don't use undocumented features of io:format()
|
|
* siri/common_test/undefined-snmp-funcs/OTP-10088:
[common_test] Moved ct_snmp_SUITE into data dir and run as other ct tests
[common_test] Updated (minimized) config for ct_snmp test after fixing bugs
[common_test] Use ct_snmp 'agent_vsns' config value in snmp app config
[common_test] Change NotifType to atom instead of string
[common_test] Remove calls to undefined functions from ct_snmp
[common_test] Add minor test suite for ct_snmp
Conflicts:
lib/common_test/test/Makefile
|
|
OTP-10432
Config parameter 'agent_vsns' in ct_snmp was ONLY used in call to
snmp_config:write_agent_snmp_files. There it is only used for deciding
if usm config shall be written (if v3 is included) or not.
The value of 'agent_vsns' was NOT added to the snmp application's
agent configuration, so the snmp application's own default value would
be used - this is [v1,v2,v3]. The result was that if v3 was not
included in 'agent_vsns', then usm.conf was not written, but when
starting the agent it would complain that this file did not exist
since snmp's default versions are all [v1,v2,v3].
This has been corrected - the 'agent_vsns' value is now inserted in
the snmp application agent configuration as {versions,AgentVsns}.
|
|
OTP-10432
In call to snmp_config:write_agent_snmp_files, the NotifType argument
was earlier a string. This has been changed to an atom since it failed
in snmp application and notify�conf was not created.
|
|
|
|
It is bad practice to use an arbitrary string as a format
string for io:format(), since it could contain a '~' character
which could trigger a badarg exception. Therefore, replace all
io:format/3 calls that looks like:
io:format(Fd, String, [])
with:
io:put_chars(Fd, String)
|
|
The Format string argument for io:format() is not documented
to accept an iolist, so we should not depend on it.
Also, it is bad practice to use an arbitrary string as a format
string for io:format(), since it could contain a '~' character
which could trigger a badarg exception.
Fix both problems at the same time by using io:put_chars() to
display the iolist.
|
|
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.
|
|
|
|
|
|
|
|
OTP-10050
OTP-10069
OTP-10072
OTP-10087
OTP-9865
OTP-10049
OTP-10089
OTP-10145
OTP-9896
OTP-10135
OTP-10067
OTP-9625
OTP-10127
OTP-10172
OTP-10248
OTP-9625
OTP-10086
|
|
* origin/peppe/common_test/break_cont_error:
Make sure the test can never hang when ct:break/1/2 is called
|
|
|
|
* siri/common_test/ct_netconfc/OTP-10025:
[common_test] Close log files when deleting ct_conn_log_h error handler
|
|
* origin/peppe/common_test/misc_test_failures:
Solve problem with registering parallel testcases
|
|
* origin/peppe/common_test/bad_func_spec:
Fix error in function specification
|
|
into maint
* origin/peppe/common_test/silent_connection_testspec:
Add silent_connections term to test specification
|
|
* 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
|
|
Due to a bad pattern matching in ct_conn_log_h:terminate/1, log files
were not closed when error handler was deleted. This has been
corrected.
|
|
* siri/common_test/ct_netconfc/OTP-10025:
[common_test] Handle all ssh_cm messages in ct_netconfc:handle_msg/2
|
|
|
|
|
|
|
|
maint
* origin/peppe/common_test/parallel_testcases_error:
Solve problems with verbosity levels and parallel test cases
|
|
|
|
|
|
* origin/peppe/common_test/silent_connection:
Fix deadlock problem in connection handling
Implement silent_connection for ssh
Conflicts:
lib/common_test/src/ct_gen_conn.erl
OTP-9625
|
|
* 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
|
|
|
|
ct:get_config and ct:require can now use nested tuples
to fetch data from user configuration. E.g.
ct:get_config({localhost,ip,v4}).
This introduces a backwards incompatability with how names
are associated with keys when using require/2. E.g.
ct:require(a_name,{localhost,ip}) will associate a_name with ip
instead of localhost.
|
|
* origin/peppe/common_test/testspec_updates:
Test new testspec functionality and correct bugs
Implement constants and new features for test specifications
Conflicts:
lib/common_test/src/ct_run.erl
lib/common_test/test/Makefile
OTP-10049
OTP-10089
OTP-10145
|
|
* origin/peppe/common_test/hook_init_order:
Call CT Hook init functions in the correct order
OTP-10135
|
|
* peppe/common_test/table_sorter:
Fix installation of javascript files on windows
Fix installation of javascript files
Make it possible to sort the HTML tables
Conflicts:
lib/common_test/src/ct_util.hrl
OTP-9896
|
|
* origin/peppe/common_test/exit_status:
Implement support for returning valid exit status from ct_run
OTP-9865
OTP-10087
|
|
* origin/peppe/common_test/ct_hooks_errors:
Fix IO printout crash caused by hook function
Fix timetrap error in pre-hooks
Conflicts:
lib/common_test/src/cth_surefire.erl
OTP-10050
OTP-10069
OTP-10072
|
|
|
|
OTP-10049
OTP-10089
|
|
OTP-10049
OTP-10089
|
|
Only {data,...} and {closed,...} was handled, which caused the test to
fail with with a function_clause crash in ct_netconfc when
{exit_status,...} was received. This has been corrected.
|
|
When opening a connection, the connection process would link itself to
ct_util_server before calling the init callback, e.g. in ct_netconfc,
ct_telnet etc. If the init callback failed, then ct_util_server would
get the 'EXIT'. ct_util looks up the pid in the connection table, but
since the connection is not yet registered it is not found. ct_util
does not know which process it is and will thus die - aborting the
complete test run.
This commit moves the link(CtUtilServer) after the init callback, so a
crash in the init callback will not be detected by ct_util_server -
the caller process, however, will get a 'DOWN' message due to
monitoring and ct_gen_conn:start will give an error return.
|
|
Earlier, it was possible to open connection (ct_gen_conn) with the
same (required) name twice, which could give unexpected results. Such
attempts will now return {error,{connection_exists,OtherClient}}.
|