aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/test
AgeCommit message (Collapse)Author
2016-06-10Merge branch 'kvakvs/erts/monitor_port/OTP-11384'Lukas Larsson
* kvakvs/erts/monitor_port/OTP-11384: erts: Add port monitors
2016-06-10erts: Add port monitorsDmytro Lytovchenko
* erlang:monitor/2 with port argument is added, erlang:demonitor, using port task API and avoiding locking; * port_info and process_info support for monitored ports (with named port monitors support); * Exit signals contain type 'process' or 'port'; * Propagation of port exit signals; * Self-cleaning when origin process dies with monitor on; * 8 test cases + testcase for port driver crashing; * Documentation for all of the above (monitor, demonitor, port_info and process_info) updated
2016-06-09Merge branch 'egil/lttng-change-domain'Björn-Egil Dahlberg
* egil/lttng-change-domain: runtime_tools: Change LTTng dyntrace domain erts: Change LTTng otp domain
2016-06-08Merge branch 'rickard/misc-ds'Rickard Green
* rickard/misc-ds: Replace enif_is_on_dirty_scheduler() with enif_thread_type() No GC on dirty IO schedulers
2016-06-08Replace enif_is_on_dirty_scheduler() with enif_thread_type()Rickard Green
2016-06-08erts: Change LTTng otp domainBjörn-Egil Dahlberg
From 'com_ericsson_otp' to 'org_erlang_otp'. This domain name is more suitable.
2016-06-08Merge branch 'zandra/test_server/unmatched_returns/OTP-13345'Zandra Hird
* zandra/test_server/unmatched_returns/OTP-13345: vts - Fix unmatched_return warnings test_server_sup - Fix unmatched_return warnings test_server_node - Fix unmatched_return warnings test_server_io - Fix unmtached_return warnings test_server_gl - Fix unmatched_return warnings test_server_ctrl - Fix unmatched_return warnings test_server - fix unmatched_return warnings remove unused purify functions
2016-06-07remove unused purify functionsZandra
2016-06-01Merge branch 'egil/lttng-cuddle-tests'Björn-Egil Dahlberg
* egil/lttng-cuddle-tests: erts: Cuddle with lttng_SUITE runtime_tools: Cuddle with t_receive tests
2016-05-31Merge branch 'rickard/dirty_nif_SUITE-win-fix'Rickard Green
* rickard/dirty_nif_SUITE-win-fix: Fix windows
2016-05-31Merge branch 'vinoski/dirty_process_main/OTP-13123'Rickard Green
* vinoski/dirty_process_main/OTP-13123: Add dirty_process_main function
2016-05-31Add dirty_process_main functionSteve Vinoski
Dirty schedulers only execute NIFs, so having them execute the full process_main function isn't necessary. Add dirty_process_main for dirty schedulers to execute instead. Add erts_pre_dirty_nif(), called when preparing to execute a dirty nif. Add more dirty NIF tests to verify that activities requiring the process main lock can succeed when the process is executing a dirty NIF.
2016-05-31erts: Cuddle with lttng_SUITEBjörn-Egil Dahlberg
2016-05-31Merge branch 'sverker/dialyzer/erlang-halt'Sverker Eriksson
2016-05-31Merge branch 'egil/erts/cuddle-tests'Björn-Egil Dahlberg
* egil/erts/cuddle-tests: stdlib: Fix small inconsistencies in ets_SUITE stdlib: Strengthen or relax test cases kernel: Don't test negative time values in file info erts: Fix free_mem calculation in bs_construct tests
2016-05-30Reintroduce erlang:halt/0/1 in erl_bif_types.erlSverker Eriksson
Removed in f9cb80861f169743 when changed impl from C to Erlang. But seems they are needed to keep dialyzer tests happy. Also improved bif_SUITE:shadow_comments to include all exported in module erlang, not just the "snifs". ...which detected that apply/2 was missing Shadowed comment as well.
2016-05-27Merge branch 'richcarl/erts/fix-init-stop/PR-911/OTP-13630/OTP-13631'Sverker Eriksson
2016-05-27Fix windowsRickard Green
2016-05-27Merge branch 'rickard/rm-mqd-mixed/OTP-13366'Rickard Green
* rickard/rm-mqd-mixed/OTP-13366: Remove the 'message_queue_data' option 'mixed'
2016-05-27Merge branch 'lukas/erts/tracing/tracer-move-extra-to-map/OTP-10267'Lukas Larsson
* lukas/erts/tracing/tracer-move-extra-to-map/OTP-10267: runtime_tools: Fix erl_tracer testcases runtime_tools: Fix documentation for dbg:p erts: Move tracer SecondTraceTerm to Opts map
2016-05-25Add tests for -start_epmd and -epmd_module optionsMagnus Henoch
For -start_epmd, check that the node starts properly and that we can ping it. For -epmd_module, start two nodes that can communicate only because we supply the correct port number through a command line argument.
2016-05-25Remove the 'message_queue_data' option 'mixed'Rickard Green
2016-05-25erts: Make erlang:halt/2 truncate string argSverker Eriksson
if too long.
2016-05-24Merge branch 'egil/erts/fix-purge_code-literals'Björn-Egil Dahlberg
* egil/erts/fix-purge_code-literals: erts: Refactor ERTS_MSG_COMBINED_HFRAG to heap fragment erts: Copy literals in messages on module purge erts: Add testcase for purge of literals
2016-05-24erts: Move tracer SecondTraceTerm to Opts mapLukas Larsson
The extra trace data has been moved to the opts map in order for the tracer to be able to distinguish inbetween extra trace data 'undefined' and no extra trace data. In the same commit all opts associations have been changed so that if the tracer should not use them, the key is left unassicated instead of being sent to undefined. This should be give a small performance gain and also makes the API easier to work with.
2016-05-20erts: Add testcase for purge of literalsBjörn-Egil Dahlberg
Specifically t_copy_literals_frags/1 tries to test literals in message heap fragments.
2016-05-20erts: Check for carrier capability specifically in testBjörn-Egil Dahlberg
2016-05-18Merge branch 'bjorn/erts/cuddle-with-tests'Björn Gustavsson
* bjorn/erts/cuddle-with-tests: time_SUITE: Make consistency/1 work in any timezone
2016-05-17Merge branch 'sverker/hipe-amd64-code-alloc/OTP-13359'Sverker Eriksson
This merge is actually only some left overs. The bulk work for hipe-amd64-code-alloc has already been merge (without ticket number) at 42a1166b47721cd444.
2016-05-17erts: Fix bug when tracing in non-smp non-scheduler threadLukas Larsson
2016-05-16erts: Fix free_mem calculation in bs_construct testsBjörn-Egil Dahlberg
* Previous free_mem calculation did not work on all platforms * Increase test timeout for bs_construct_SUITE:huge_binary/1
2016-05-13Merge branch 'egil/erts/nif-format_term/OTP-13580'Björn-Egil Dahlberg
* egil/erts/nif-format_term/OTP-13580: runtime_tools: Change erts_snprintf to enif_snprintf erts: Document enif_snprintf erts: Add tests for enif_snprintf erts: Add enif_snprintf Conflicts: erts/emulator/beam/erl_nif_api_funcs.h
2016-05-12time_SUITE: Make consistency/1 work in any timezoneBjörn Gustavsson
time_SUITE:consistency/1 would only work in CET, which was reasonable when the test suites were always run in Stockholm. Nowadays it is expected that you can run the test suite in any timezone. Therefore, only make sure that that difference between localtime/1 and universaltime/1 is "reasonable".
2016-05-11erts: Add tests for enif_snprintfBjörn-Egil Dahlberg
2016-05-11Merge branch 'lukas/trace-fix'Rickard Green
* lukas/trace-fix: erts: Only allow remove from trace_status callback
2016-05-11Merge branch 'rickard/ds-proc-exit/OTP-13123'Rickard Green
* rickard/ds-proc-exit/OTP-13123: Add dirty_heap_access test case Add dirty_call_while_terminated test case Move dirty nif test cases into dirty_nif_SUITE Add better support for communication with a process executing dirty NIF Remove conditional dirty schedulers API
2016-05-11erts: Only allow remove from trace_status callbackLukas Larsson
Make it so that it is only possible to remove a tracer via returning remove from an erl_tracer. This limition is put in place in order to avoid a lot of lock checking and taking in various places, especially in regards to trace events happening on dirty schedulers.
2016-05-11Add dirty_heap_access test caseRickard Green
2016-05-11Add dirty_call_while_terminated test caseRickard Green
2016-05-11Move dirty nif test cases into dirty_nif_SUITERickard Green
2016-05-11erts: Add max_heap_size remote gc testcaseLukas Larsson
2016-05-10erts: Skip alloc_SUITE:erts_mmap if ERL_ZFLAGSSverker Eriksson
contains flags for super carrier +MMsc*
2016-05-10erts: Implement max_heap_size process flagLukas Larsson
The max_heap_size process flag can be used to limit the growth of a process heap by killing it before it becomes too large to handle. It is possible to set the maximum using the `erl +hmax` option, `system_flag(max_heap_size, ...)`, `spawn_opt(Fun, [{max_heap_size, ...}])` and `process_flag(max_heap_size, ...)`. It is possible to configure the behaviour of the process when the maximum heap size is reached. The process may be sent an untrappable exit signal with reason kill and/or send an error_logger message with details on the process state. A new trace event called gc_max_heap_size is also triggered for the garbage_collection trace flag when the heap grows larger than the configured size. If kill and error_logger are disabled, it is still possible to see that the maximum has been reached by doing garbage collection tracing on the process. The heap size is defined as the sum of the heap memory that the process is currently using. This includes all generational heaps, the stack, any messages that are considered to be part of the heap and any extra memory the garbage collector may need during collection. In the current implementation this means that when a process is set using on_heap message queue data mode, the messages that are in the internal message queue are counted towards this value. For off_heap, only matched messages count towards the size of the heap. For mixed, it depends on race conditions within the VM whether a message is part of the heap or not. Below is an example run of the new behaviour: Eshell V8.0 (abort with ^G) 1> f(P),P = spawn_opt(fun() -> receive ok -> ok end end, [{max_heap_size, 512}]). <0.60.0> 2> erlang:trace(P, true, [garbage_collection, procs]). 1 3> [P ! lists:duplicate(M,M) || M <- lists:seq(1,15)],ok. ok 4> =ERROR REPORT==== 26-Apr-2016::16:25:10 === Process: <0.60.0> Context: maximum heap size reached Max heap size: 512 Total heap size: 723 Kill: true Error Logger: true GC Info: [{old_heap_block_size,0}, {heap_block_size,609}, {mbuf_size,145}, {recent_size,0}, {stack_size,9}, {old_heap_size,0}, {heap_size,211}, {bin_vheap_size,0}, {bin_vheap_block_size,46422}, {bin_old_vheap_size,0}, {bin_old_vheap_block_size,46422}] flush(). Shell got {trace,<0.60.0>,gc_start, [{old_heap_block_size,0}, {heap_block_size,233}, {mbuf_size,145}, {recent_size,0}, {stack_size,9}, {old_heap_size,0}, {heap_size,211}, {bin_vheap_size,0}, {bin_vheap_block_size,46422}, {bin_old_vheap_size,0}, {bin_old_vheap_block_size,46422}]} Shell got {trace,<0.60.0>,gc_max_heap_size, [{old_heap_block_size,0}, {heap_block_size,609}, {mbuf_size,145}, {recent_size,0}, {stack_size,9}, {old_heap_size,0}, {heap_size,211}, {bin_vheap_size,0}, {bin_vheap_block_size,46422}, {bin_old_vheap_size,0}, {bin_old_vheap_block_size,46422}]} Shell got {trace,<0.60.0>,exit,killed}
2016-05-09Merge branch 'sverker/system_info-erts_mmap/OTP-13560'Sverker Eriksson
2016-05-09Merge branch 'sverker/trace-send-receive-matchspec/OTP-13507'Sverker Eriksson
2016-05-04erts: Add send and 'receive' to trace_info/2Sverker Eriksson
to obtain match specs
2016-05-04erts: Change receive matchspec to [NodeOrOther, Pid, Msg]Sverker Eriksson
2016-05-04erts: Add Sender in 'receive' trace matchspecSverker Eriksson
All 'EXIT' and monitor messages are sent from 'system' Timeouts are "sent" from 'clock_service'
2016-05-04erts: Add matchspec restrictions for 'receive' traceSverker Eriksson
and non-call-trace. This is the easy way out to avoid difficult locking scenarios when accessing tracing flags on another process.
2016-05-04erts: Add matchspec to 'receive' traceSverker Eriksson