aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/test
AgeCommit message (Collapse)Author
2017-07-13Merge branch 'maint'Sverker Eriksson
2017-07-13Merge branch 'sverker/big-bxor-bug/ERL-450/OTP-14514' into maintSverker Eriksson
* sverker/big-bxor-bug/ERL-450/OTP-14514: erts: Fix bug in bxor of a big negative number
2017-07-12erts: Fix bug in bxor of a big negative numberSverker Eriksson
Wrong result for (X bsl WS) bxor Y. where X is any negative integer Y is any integer that does not require more words than X WS is erlang:system_info(wordsize) or larger Fix: The subtraction of 1 (for 2-complement conversion) must be carried along all the way to the last words.
2017-07-10josevalim/jv-op-stacktrace-entry/PR-1478/OTP-14508Lukas Larsson
Add stacktrace entries to BIF calls from emulator
2017-07-07Add stacktrace entries to BIF calls from emulatorJosé Valim
The goal of this change is to improve debugging of emulator calls. For example, the following code rem(1, y) will error with atom `badarith` when y is 0 and the stacktrace has no entry for `erlang:rem/2`, making such cases very hard to debug. This patch makes it so the stacktrace includes `erlang:rem(1, 0)`. The following emulator BIFs have been changed: * band/2 * bnot/1 * bor/2 * bsl/2 * bsr/2 * bxor/2 * div/2 * element/2 * int_div/2 * rem/2 * sminus/2 * splus/2 * stimes/2
2017-07-06Merge branch 'john/erts/runtime-lcnt' into maintJohn Högberg
* john/erts/runtime-lcnt: Document rt_mask and add warnings about copy_save Add an emulator test suite for lock counting Break erts_debug:lock_counters/1 into separate BIFs Allow toggling lock counting at runtime Move lock flags to a common header Enable register_SUITE for lcnt builds Enable lcnt smoke test on all builds that have lcnt enabled Make lock counter info independent of the locks being counted OTP-14412 OTP-13170 OTP-14413
2017-07-06Add an emulator test suite for lock countingJohn Högberg
OTP-14413
2017-07-06Enable register_SUITE for lcnt buildsJohn Högberg
It was disabled for performance reasons, and the new implementation handles it just fine (roughly half as fast as without lcnt).
2017-06-29Merge branch 'sverker/erts/apply-badarg/ERL-432/OTP-14490' into maintSverker Eriksson
* sverker/erts/apply-badarg/ERL-432/OTP-14490: erts: Make apply throw 'badarg' if Args is not a list
2017-06-27erts: Make apply throw 'badarg' if Args is not a listSverker Eriksson
instead of a strange 'undef' exception.
2017-06-27Merge branch 'maint-19' into maintJohn Högberg
* maint-19: Updated OTP version Update release notes Update version numbers Fix statistics(wall_clock) and statistics(runtime) implementation fixup! erts: Cleanup dropped port tasks correctly erts: Add tests to detect port close race Add a testcase for OTP-13939/ERL-193 erts: Cleanup dropped port tasks correctly Mark socket disconnected on tcp_send_or_shutdown_error
2017-06-26Merge branch 'lukas/erts/fix_outputv_port_task_cleanup/ERL-428/OTP-14481' ↵Erlang/OTP
into maint-19 * lukas/erts/fix_outputv_port_task_cleanup/ERL-428/OTP-14481: fixup! erts: Cleanup dropped port tasks correctly erts: Add tests to detect port close race erts: Cleanup dropped port tasks correctly
2017-06-14erts: Add tests to detect port close raceLukas Larsson
2017-06-14Update copyright yearHans Nilsson
2017-06-13Eliminate warnings for unused variablesBjörn Gustavsson
2017-06-13Remove unused functions in test emulator test suitesBjörn Gustavsson
2017-06-13process_SUITE: Don't leave processes runningBjörn Gustavsson
2017-06-13trace_port_SUITE: Don't leave processes runningBjörn Gustavsson
2017-06-13tracer_SUITE: Don't leave processes runningBjörn Gustavsson
2017-06-13trace_nif_SUITE: Don't leave processes runningBjörn Gustavsson
2017-06-13trace_bif_SUITE: Don't leave processes runningBjörn Gustavsson
2017-06-13trace_SUITE: Don't leave processes runningBjörn Gustavsson
2017-06-13message_queue_data_SUITE: Don't leave processes runningBjörn Gustavsson
2017-06-13Add informational test case z_SUITE:leaked_processes/1Björn Gustavsson
Add z_SUITE:leaked_processes/1 to print the process information for all new processes created during execution of the emulator test suite. Test cases are not supposed leak processes, because that could disturb later test cases.
2017-06-12busy_port_SUITE: Ensure that all created procesesses are killedBjörn Gustavsson
2017-06-12busy_port_SUITE: Eliminate warnings for unused variablesBjörn Gustavsson
2017-06-12busy_port_SUITE: Eliminate 'export_all'Björn Gustavsson
2017-06-12after_SUITE: Don't leave a process runningBjörn Gustavsson
2017-06-09Merge pull request #1400 from tburghart/trb/erts/enif_whereisRickard Green
Add enif_whereis_pid() and enif_whereis_port() functions OTP-14453
2017-06-08Merge branch 'rickard/purge-hibernated-20'Rickard Green
* rickard/purge-hibernated-20: Update testcase to check that purge handle hibernated process correct Do not GC hibernated process from other processes Fix check_process_code() on hibernated process
2017-06-07Merge branch 'bjorn/cuddle-with-tests'Björn Gustavsson
* bjorn/cuddle-with-tests: Stabilize call_with_huge_message_queue/1 same_time_yielding/1: Avoid failing if there are many schedulers Remove obsolete old_scheduler_SUITE Robustify process_SUITE:spawn_opt_max_heap_size/1 Contain damage cause by spawn_opt_max_heap_size failing Make bulk_send_bigbig/1 purely informational distribution_SUITE: Refactor bulk_send_bigbig/1 receive_SUITE: Remove ?line macros Lengthen too short timetraps Fix process_SUITE:low_prio/1
2017-06-07Merge branch 'bjorn/erts/fix-sys-task-cleanup'Björn Gustavsson
* bjorn/erts/fix-sys-task-cleanup: Make sure that asynchronous replies are not lost
2017-06-07Merge branch 'rickard/purge-hibernated-19/ERIERL-24/OTP-14444' into maint-19Erlang/OTP
* rickard/purge-hibernated-19/ERIERL-24/OTP-14444: Update testcase to check that purge handle hibernated process correct Do not GC hibernated process from other processes Fix check_process_code() on hibernated process
2017-06-03Stabilize call_with_huge_message_queue/1Björn Gustavsson
Time measurements are always tricky, particulary on virtual hosts. On one particular virtual host, the measured times were often 0. Measuring the time for 100 calls instead of 10 calls helps, but 0 can still be returned, so we will also need to discard measurements that return 0 and try again.
2017-06-03same_time_yielding/1: Avoid failing if there are many schedulersBjörn Gustavsson
On a computer with 32 schedulers, there would be 9632 (301*32) 'timeout' message in the receive queue. Receiving them with a selective receive (matching on the timer ID) is quite slow. Change the test case to read out the queue in the order the messages are stored in the queue.
2017-06-03Remove obsolete old_scheduler_SUITEBjörn Gustavsson
old_scheduler_SUITE was written before the SMP emulator. It does not test anything that scheduler_SUITE does not test. Keeping it wastes time when running the emulator test suite, and does not help us find any bugs that scheduler_SUITE would find.
2017-06-03Robustify process_SUITE:spawn_opt_max_heap_size/1Björn Gustavsson
process_SUITE starts os_mon in init_per_suite/1. Therefore, there may be occasional alarm info messages received. Make sure that they are ignored and don't cause the test fail to fail. Also, get rid of the flush/0 function that discards all messages in the message queue. Instead, be more selective and only discard {error, ...} messages.
2017-06-03Contain damage cause by spawn_opt_max_heap_size failingBjörn Gustavsson
If process_SUITE:spawn_opt_max_heap_size/1 failed, the default value for the maximum heap size could have been changed. That would cause other test cases that spawned huge processes to fail. Contain the damage by always restoring the default value for max_heap_size in end_per_testcase/2.
2017-06-03Make bulk_send_bigbig/1 purely informationalBjörn Gustavsson
bulk_send_bigbig/1 sometimes fails even if there is nothing wrong. Stop testing the ratio, and just return information about the speed and number of monitor messages. The testcase will still serve as a smoke test of the +zdbbl option.
2017-06-03distribution_SUITE: Refactor bulk_send_bigbig/1Björn Gustavsson
Refactor bulk_send_bigbig/1 to make it somewhat easier to follow.
2017-06-03receive_SUITE: Remove ?line macrosBjörn Gustavsson
2017-06-03Lengthen too short timetrapsBjörn Gustavsson
c062dfc485a added timetraps to test suites that had no timetraps. Some of added timetraps are only 5 or 10 seconds, which is can be too short time on some slow computers. Change those times to one or two minutes.
2017-06-03Fix process_SUITE:low_prio/1Björn Gustavsson
It is expected that low-priority processes should be allowed to run about 1/8 of the time of normal-priority processes. The proportion calculated was usually considerably lower than 1/8. It seems that the main reason is the punishement in reductions when sending to a process that alreday has many messages in the message queue. I have verified that by running the emulator with the +snsp to turn off the send punishment. To avoid that punishment, let the server process run at high priority so that it can keep its message queue short. It seems that the proportion is now very close to 1/8. Therefore, we can tighten the margins for the proportion.
2017-06-02Merge branch 'john/erts/refactor-gcsuite'John Högberg
2017-06-01Merge branch 'rickard/purge-hibernated-19' into rickard/purge-hibernated-20Rickard Green
* rickard/purge-hibernated-19: Update testcase to check that purge handle hibernated process correct
2017-06-01Merge branch 'rickard/purge-hibernated' into rickard/purge-hibernated-19Rickard Green
* rickard/purge-hibernated: Update testcase to check that purge handle hibernated process correct Conflicts: erts/emulator/test/code_SUITE.erl
2017-06-01Update testcase to check that purge handle hibernated process correctRickard Green
2017-05-31Break out a lot of duplicated code in minor_major_gc_option_ZZZJohn Högberg
2017-05-31Make sure that asynchronous replies are not lostBjörn Gustavsson
(First attempt to fix in 23f132d9ab776a.) If an synchronous GC was requested by calling: erlang:garbage_collect(Pid, [{async,Ref}]) the reply message could in certain circumstances be lost. The problem is that cleanup_sys_tasks() is never called if there are dirty tasks, but no other active system tasks. Also shorten the long waiting times in the test case binary_SUITE:trapping/1 to make it much more likely that the GC have not already finished when the process is killed.
2017-05-31Fix a race condition that consistently affected lc+lcnt buildsJohn Högberg
The garbage_collect message could be received while waiting for trace messages, causing the test to crash erroneously.