Age | Commit message (Collapse) | Author |
|
Speed up supervisor:count_children/1 for simple_one_for_one
supervisors. This is achieved by avoiding looping through all the
child process and verifying that each one is alive.
For a supervisor with 100,000 'temporary' children the count-time will
drop from approx 25ms to about 0.005ms.
For a supervisor with 100,000 'permanent' or 'transient' children the
count-time will drop from approx 30ms to about 0.005ms.
This avoids having the supervisor block for an extended period while
the count takes place. Under normal circumstances the accuracy of the
result should also improve since the duration is too short for many
processes to die during the count.
|
|
|
|
|
|
The test case did not test the log files were created. And they
were not created, because filelib:ensure_dir/1 was used
incorrectly.
|
|
|
|
Include the ability to open a SASL error log file in append mode
at startup vs currently implemented "rewrite-always" mode.
|
|
|
|
release_handler_SUITE:otp_10463_upgrade_script_regexp reads
kernel.appup and tries to fetch upgrade instructions for upgrade from
current version to current version. The point of the test is to see
that release_handler can read an appup with regexps.
In some cases, however, kernel.appup does not support upgrade from
current to current version, since this is not necessary in real
life. Therefore this test is now updated to use a dummy application
(release_handler_SUITE_data/regexp_appup/app1) for this test.
|
|
The upgrade instruction 'remove_module' was added in OTP R7B (and
possibly in a patch in R5B or R6B, ticket OTP-3477), and translates to
the low level instruction 'remove', but adds the parameter DepMods
(modules on which Mod is dependent). The ticket says that
"remove_module should be added for symmetry with the add_module
instruction". remove_module was never documented or tested, and it was
never mentioned in a release note. It therefore seems to be low risk
in removing it.
The correct instruction to use when removing a module is
{delete_module,Mod}
which was added in OTP R10B and which is also documented and
tested. This translates to low level instructions 'remove' and 'purge'
i.e. the module is brutally purged after setting the current code to
old. This hardcoded brutal purge is the reason why PrePurge and
PostPurge parameters can not be given with the delete_module
instruction.
The parameter DepMods which was inclued in the remove_module
instruction does not exist for delete_module. From the documentation's
point of view, this is the same for add_module, and thus the two
instructions {add_module,Mod} and {delete_module,Mod} are now
symmetric. However, in the code there is a second instruction for
adding a module, {add_module,Mod,DepMods}, which is not documented. To
add symmetry even for this, {delete_module,Mod,DepMods} is now also
added. Documentation is added for all instructions.
|
|
|
|
The appup tests for kernel, stdlib and sasl tests that the appup file
allows upgrade from the previous and current major release to the
current release. If, in the current release, the application version
was not changed compared to the previous release, then we would still
test that the appup supported the upgrade (i.e. from current release
to current release). This is now changed, in order to avoid test
failures on patch releases where kernel, stdlib and sasl are not
changed.
|
|
* siri/master-cuddle-with-tests:
Update sasl/test/test_lib.hrl with recent versions of kernel and stdlib
Update crashdump_viewer_SUITE with new release numbers
|
|
In order to fake an earlier release to upgrade from, version numbers
are replaced in some .app files. This commit adds a backslash before
the dot in the pattern to replace, so the dot is not mistaken for a
wildcard.
|
|
|
|
Add test of update instructions from current major to current
minor. Earlier only previous major to current was tested.
|
|
On some test hosts a lot of applications are skipped from the erlang
installation in order to make test go faster.
systools_SUITE:app_start_type_relup uses a few applications which
therefore might not exist. This commit make sure the test is skipped
(instead of fail) if some of the needed applications are missing.
|
|
The slave node from release_handler_SUITE:upgrade_supervisor_fail
sometimes survives its test case. Or rather, it is unexpectedly
restarted. Every now and then, on a slow machine, this confuses the
next test case since test_server:start_node might return the old node
name instead of the new. This has been corrected by using
{error_action,reboot} in release_handler_SUITE:upgrade_supervisor_fail
- to make sure the slave node is really terminated on rollback.
|
|
Test cases 'release_handler_which_releases' and 'upgrade_supervisor'
did not terminate the nodes they started. This might be the cause of
failing test cases further down the suite. This has been corrected.
|
|
|
|
In release_handler_SUITE, print command with ~ts instead of ~tp in
case it contains unicode characters.
|
|
* dumbbell/function_clause-in-systools_make-format_error:
sasl: Fix crash in systools_make:format_error/1
OTP-11819
|
|
The crash occurred when systools:make_script/2 raises the
'duplicate_modules' error. Depending on the 'silent' option,
systools_make:format_error/1 is called to either format and display an
error message, or return a tuple containing the error properties.
When displaying a 'duplicate_modules' error message, format_error/1
receives a list of applications providing the same module(s):
[
{{Mod,App1,_}, {Mod,App2,_}},
...
]
However, before this fix, format_error/1 expected the following
structure, leading to a 'function_clause' exception:
[
{{Mod,_,App1,_,_}, {Mod,_,App2,_,_}},
...
]
The crash never occurred with the 'silent' option, because the error and
its properties are returned as is to the caller.
|
|
These tests start new nodes, and they frequently timed out on some
slow test hosts.
|
|
* siri/restart_app-type/OTP-11716:
[sasl] Use restart type from .rel when restarting apps during upgrade
|
|
* siri/appup_tests_17/OTP-11534:
Update sasl/test/test_lib.hrl with recent versions of kernel and stdlib
Update appups and appup tests for kernel, stdlib and sasl
|
|
Earlier the 'restart_application' upgrade instruction always cause the
application to be restarted as permanent. This could cause the system
to end up in an unexpected state after an upgrade. This is now
corrected.
|
|
|
|
Appups now only support one major release back, and the tests are
updated accordingly.
Support is also added in tests for giving previous releases in a ct
config file, e.g.
{otp_releases,[{r15,"/path/to/r15/bin/erl"},
{r16,"/path/to/r16/bin/erl"},
{'17',"/path/to/17/bin/erl"}]}.
|
|
Quoting on Windows is strange
|
|
* siri/appup_tests_17/OTP-11534:
Update sasl appup test to work for OTP release 17
Update stdlib appup test to work for OTP release 17
Update kernel appup test to work for OTP release 17
|
|
|
|
|
|
|
|
|
|
OTP-11529
|
|
Conflicts:
erts/etc/win32/Install.c
|
|
|
|
|
|
rb was only accepting physical filenames as log file.
This patch allow rb to accept now any io_device, valid registered name,
except standard_error which is replaced by standard_io.
Creation of two new exported functions : rb:log_list/0-1
that print in log file if existing, otherwise on standard_io.
Add new functions documentation and tests in rb_SUITE.
|
|
|
|
This is to avoid lingering files after test runs on windows, since the
cleanup script often does not succeed in removing files with unicode
characters.
|
|
* siri/install-otp-in-unicode-path:
[sasl] Remove priv dir after release_handler_SUITE
Update preloaded init.beam
Allow unicode characters for boot and config in init:make_permanent
[sasl] Clean priv_dir after systools_SUITE
[reltool] Use unicode characters in work dir for unicode test
[sasl] Use unicode characters in priv dir name also on windows
[reltool] Write erl.ini as UTF-8
[sasl] Update tests to run under unicode path
[sasl] Rewrite release_handler_SUITE:clean_priv_dir to work on unicode paths
[sasl] Update example/target_system.erl to handle unicode
[sasl] Write erl.ini as utf8, allowing unicode path for root dir and bin dir
|
|
* siri/spawn-and-space:
[sasl] In test, quote erlsrv executable in call to open_port/2
[test_server] Quote path to erl executable when starting slave nodes
Quote path to erl executable in slave to allow space in path
[sasl] Quote path to program run with open_port({spawn,...
[os_mon] Quote path to programs run with open_port({spawn,...
Conflicts:
lib/os_mon/src/nteventlog.erl
|
|
Since introducing unicode paths, the name of the priv_dir will include
"unicode characters" and on some platforms (e.g. Windows) these are
not so easily removed by the daily cleanup scripts. To avoid lingering
directories, the priv_dir is now completly removed by the suite itself
(unless there are failed testcases and logs must be saved).
|
|
Some files with icky names (unicode) can not be deleted with the
cleanup scripts after daily tests. Therefore it is better to clean up
directly from the erlang node after test is run.
|
|
|
|
In order to test that unicode paths can be used in release handling,
the release_handler_SUITE will use a priv_dir with unicode characters
if the file name translation mode is utf8 (not on windows).
|
|
This function used os:cmd("rm -rf " ++ File), and it failed when the
file path contained characters > 255. The function now uses
file:delete/1 and file:del_dir/1 instead.
|
|
This example module can now create and install a release in a
directory which contains unicode characters. The erlang node must be
started with the +fnu* switch for this work.
|
|
|