Age | Commit message (Collapse) | Author |
|
This also imply testing of processes as distribution controllers
using the erlang:dist_ctrl_* BIFs.
|
|
A hanging node from this suite can fail later tests, so terminate all
nodes() after each test case.
|
|
to be no-op and return true
as it always has before OTP-21.0.
|
|
This replaces all uses of lib:progname/0 in tests.
|
|
Communication between Erlang processes has conceptually always been
performed through asynchronous signaling. The runtime system
implementation has however previously preformed most operation
synchronously. In a system with only one true thread of execution, this
is not problematic (often the opposite). In a system with multiple threads
of execution (as current runtime system implementation with SMP support)
it becomes problematic. This since it often involves locking of structures
when updating them which in turn cause resource contention. Utilizing
true asynchronous communication often avoids these resource contention
issues.
The case that triggered this change was contention on the link lock due
to frequent updates of the monitor trees during communication with a
frequently used server. The signal order delivery guarantees of the
language makes it hard to change the implementation of only some signals
to use true asynchronous signaling. Therefore the implementations
of (almost) all signals have been changed.
Currently the following signals have been implemented as true
asynchronous signals:
- Message signals
- Exit signals
- Monitor signals
- Demonitor signals
- Monitor triggered signals (DOWN, CHANGE, etc)
- Link signals
- Unlink signals
- Group leader signals
All of the above already defined as asynchronous signals in the
language. The implementation of messages signals was quite
asynchronous to begin with, but had quite strict delivery constraints
due to the ordering guarantees of signals between a pair of processes.
The previously used message queue partitioned into two halves has been
replaced by a more general signal queue partitioned into three parts
that service all kinds of signals. More details regarding the signal
queue can be found in comments in the erl_proc_sig_queue.h file.
The monitor and link implementations have also been completely replaced
in order to fit the new asynchronous signaling implementation as good
as possible. More details regarding the new monitor and link
implementations can be found in the erl_monitor_link.h file.
|
|
|
|
|
|
Some bash versions segfault when a unicode argument is given
so we ignore cores created by nodes spawned by this testcase.
|
|
Because this test suite did not cleanup after itself,
the error_logger_warn_SUITE:file_utc failed to start its node
that it needed for the test.
|
|
|
|
Verify that unicode isn't used in a node name and logi an info
message if it is. Filter the head part of the name a bit harder
to work with epmd.
|
|
|
|
* rickard/time-unit/OTP-13831:
Replace usage of deprecated time units
|
|
|
|
to test net_kernel:setopts and getopts.
|
|
* zandra/erl_distribution_SUITE-cuddle:
update monitor_nodes_otp_6481_test-we only guarantee message order
increase timeout since the old one risked flapping test
remove no_msg timeout, since its not needed and cause flapping
|
|
Messages can be lost, but the order is guaranteed. This change
weakens the test, but does it according to our guarantees.
|
|
|
|
|
|
|
|
While we are it, also re-ident the files.
|
|
Remove out-commented code. Make sure that comments that are not
at the end of a line starts with two '%' characters and not just
one. That will become important later when we'll remove all
?line macros and ask Emacs to re-indent the files.
|
|
|
|
Those clause are obsolete and never used by common_test.
|
|
Replace with io:format/2 or ct:pal/3.
|
|
|
|
|
|
As a first step to removing the test_server application as
as its own separate application, change the inclusion of
test_server.hrl to an inclusion of ct.hrl and remove the
inclusion of test_server_line.hrl.
|
|
|
|
|
|
Use erlang:unique_integer([positive]) when generating unique node
names.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
A bug introduced in kernel-2.13.5.3 has been fixed. If running
net_kernel:set_net_ticktime/1 twice within the TransitionPerod the
second call caused the net_kernel process to crash with a badmatch.
|
|
* bg/cleanup-tests:
file_SUITE: eliminate a warning for an unused variable
kernel tests: modernize guard tests
unicode_SUITE: replace deprecated concat_binary/1 with list_to_binary/1
stdlib tests: modernize guard tests
Test suites: fix creation of Emakefiles
|
|
|
|
|