aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/test
AgeCommit message (Collapse)Author
2012-02-07Merge branch 'dgud/sched-work-time/OTP-9858' into maintPatrik Nyblom
* dgud/sched-work-time/OTP-9858: emulator: Document and test scheduler_wall_time Implement statistics(scheduler_wall_time)
2012-02-06emulator: Document and test scheduler_wall_timeDan Gudmundsson
2012-01-26trace_port_SUITE: Skip test cases if 'lists' is native-compiledBjörn Gustavsson
2012-01-26call_trace_SUITE: Skip test cases if libraries are native-compiledBjörn Gustavsson
Skip test cases that trace lists or filename if those modules are native-compiled. While we are at it, also eliminate two compilation warnings.
2012-01-11Merge branch 'sverk/nif_SUITE-skip-threading' into maintSverker Eriksson
* sverk/nif_SUITE-skip-threading: erts: Add missing cleanup to nif_SUITE:threading erts: Skip nif_SUITE:threading if not supported
2012-01-03test: system_profile profiler pid is not profiledBjörn-Egil Dahlberg
2012-01-03Remove line macros in system_profile_SUITEBjörn-Egil Dahlberg
2011-12-27Include wakeup pipe in /dev/poll poll-set also on non-SMPRickard Green
I/O events could potentially be delayed for ever when enabling kernel-poll on a non-SMP runtime system executing on Solaris. When also combined with async-threads the runtime system hung before completing the boot phase. This bug was introduced in erts-5.9/OTP-R15B.
2011-12-19erts: Add missing cleanup to nif_SUITE:threadingSverker Eriksson
2011-12-19erts: Skip nif_SUITE:threading if not supportedSverker Eriksson
2011-12-09Update copyright yearsBjörn-Egil Dahlberg
2011-12-09Merge branch 'raimo/64-bit-driver-api/OTP-9795'Björn Gustavsson
* raimo/64-bit-driver-api/OTP-9795: (22 commits) driver_SUITE.erl: Fix sys info drivers emulator test drivers: Conform to updated driver API runtime_tools's drivers: Conform to updated driver API ws's xwe_driver.c: Conform to updated driver API megaco's flex scanner: Conform to updated driver API seq_trace_SUITE_data/echo_drv.c: Conform to updated driver API erl_interface tests: Conform port_call_drv.c updated driver API erl_drv_thread_SUITE_data/testcase_driver.c: Conform to updated driver API float_SUITE_data/fp_drv.c: Conform to updated driver API port_SUITE_data/*_drv.c: Conform to updated driver API port_bif_SUITE_data/control_drv.c: Conform to updated driver API send_term_SUITE_data/send_term_drv.c: Conform to updated driver API system_profile_SUITE_data/echo_drv.c: Conform to updated driver API trace_port_SUITE_data/echo_drv.c: Conform to updated driver API Remove support for old drivers without ERL_DRV_EXTENDED_MARKER built-in drivers: Add ERL_DRV_EXTENDED_MARKER and version numbers Bump driver version to 2.0 erl_driver.h: Enlarge type on return value from call erl_driver.h: Enlarge types on driver callbacks output, control and call erl_driver.h: Enlarge types in driver output functions ... Conflicts: erts/emulator/test/driver_SUITE_data/monitor_drv.c erts/emulator/test/driver_SUITE_data/timer_drv.c
2011-12-09driver_SUITE.erl: Fix sys info driversRaimo Niskanen
2011-12-09emulator test drivers: Conform to updated driver APIRaimo Niskanen
2011-12-09erl_drv_thread_SUITE_data/testcase_driver.c: Conform to updated driver APIBjörn Gustavsson
2011-12-09float_SUITE_data/fp_drv.c: Conform to updated driver APIBjörn Gustavsson
While at it, include <string.h> to eliminate warnings.
2011-12-09port_SUITE_data/*_drv.c: Conform to updated driver APIBjörn Gustavsson
While at it, eliminate compilation warnings. Eliminate the control callback if it is not used.
2011-12-09port_bif_SUITE_data/control_drv.c: Conform to updated driver APIBjörn Gustavsson
Also include <string.h> to include a prototype for memcpy().
2011-12-09send_term_SUITE_data/send_term_drv.c: Conform to updated driver APIBjörn Gustavsson
2011-12-09system_profile_SUITE_data/echo_drv.c: Conform to updated driver APIBjörn Gustavsson
While at it, also eliminate all compiler warnings. Also remove the control callback since it is not actually used.
2011-12-09trace_port_SUITE_data/echo_drv.c: Conform to updated driver APIBjörn Gustavsson
While at it, also eliminate all compiler warnings.
2011-12-08Merge branch 'rickard/generic-thr-queue/OTP-9632'Rickard Green
* rickard/generic-thr-queue/OTP-9632: Give elements of lock-free queues some time to be deallocated Fix cleanup of elements in lock-free queues
2011-12-08Merge branch 'sverk/misc-valgrind-fixes'Sverker Eriksson
* sverk/misc-valgrind-fixes: erts: Suppress valgrind warning about syscall sendmsg erts: Fix memory leak in test drivers erts: Small fix in inet_drv.c:sctp_set_opts
2011-12-08Merge branch 'egil/file-info-opt-utc/OTP-7687'Björn-Egil Dahlberg
* egil/file-info-opt-utc/OTP-7687: (39 commits) Remove time_t specific test in prim_file_SUITE Update prim_file.beam and prim_zip.beam Add types for posixtime_to_universaltime and the reverse Set BASEYEAR to 1902 Set lower limit of years handled to 1601 Emulate localtime, gmtime and mktime to enable negative time_t Document file:*_file_info/2 Fix compiler warning in unix_efile.c Change name of bif universaltime_to_seconds/1 Change options to prim_file:*_file_info/* Remove dead code Catch errors from prim_file:*_file_info Testcase for utc <-> seconds conversion Fix negative time in seconds_to_universaltime/1 Remove OS taint from datetime conversion Add utc <-> seconds conversions bifs Let prim_file validate ctime in file_info Teach #file_info spec unix epochs for file times Add file_info_opt tests in prim_file_SUITE unix_efile: Zero is a valid number in utime ... Conflicts: erts/emulator/beam/erl_time_sup.c erts/emulator/sys/win32/erl_win_sys.h erts/emulator/sys/win32/sys_time.c
2011-12-08Change name of bif universaltime_to_seconds/1Björn-Egil Dahlberg
* erlang:universaltime_to_seconds/1 changed to erlang:universaltime_to_posixtime/1 * erlang:seconds_to_universaltime/1 changed to erlang:posixtime_to_universaltime/1 Let prim_file.erl reflect these changes.
2011-12-08Testcase for utc <-> seconds conversionBjörn-Egil Dahlberg
2011-12-07Give elements of lock-free queues some time to be deallocatedRickard Green
2011-12-07erts: Fix memory leak in test driversSverker Eriksson
2011-12-07Merge branch 'sverk/packet_size-http/OTP-9389'Sverker Eriksson
* sverk/packet_size-http/OTP-9389: erts: Remove truncation of http packet parsing and return error instead honor packet_size for http packet parsing to fix OTP-9389
2011-12-07Merge branch 'bjorn/erts/code-loading/OTP-9720'Björn Gustavsson
* bjorn/erts/code-loading/OTP-9720: BEAM loader: Fix bug that allowed loading of more than two versions Add code_SUITE:versions/1
2011-12-07Add code_SUITE:versions/1Björn Gustavsson
We did not have test case that ensures that the loader refuses to load a module if there already exists old code for the module.
2011-12-06Unlink test-proc instead of ensuring that it has died before stopping nodeRickard Green
Unlink the test-proc instead of monitoring it and waiting for it to terminate before stopping the node. This since an unlink is faster, simpler and in this case more stable.
2011-12-06Ensure test-proc is dead before stopping nodeRickard Green
2011-12-06Give slow machines more time to compute resultRickard Green
2011-12-06Allow more CPU time in waiting test-casesRickard Green
2011-12-06erts: Remove truncation of http packet parsing and return error insteadSverker Eriksson
This is a slight modification of previous commit by Steve Vinoski For backward compatibility of old users of decode_packet, I think it's enough to return error instead of keeping the old line truncation behaviour.
2011-12-05Skip thread_mseg_alloc_cache_clean() when no mseg_allocRickard Green
2011-12-05honor packet_size for http packet parsing to fix OTP-9389Steve Vinoski
Allow applications to use a packet_size setting on a socket to control acceptable HTTP header line length. This gives them the ability to accept HTTP headers larger than the default settings allow, but also lets them avoid DOS attacks by accepting header lines only up to whatever length they wish to allow. Without this change, if an HTTP request/response line or header arrives on a socket in http, http_bin, httph, or httph_bin parsing mode, and the request/response line or header is too long to fit into a default inet_drv buffer of 1460 bytes, an unexpected error occurs. These problems were described and discussed on erlang-questions in June 2011 in this thread: http://erlang.org/pipermail/erlang-questions/2011-June/059563.html In the original code, no buffer reallocation occurs to enlarge the buffer, even if packet_size or line_length are set in a way that should allow the HTTP data to be parsed properly. The only available workaround was to collect headers and parse them using erlang:decode_packet, but that approach has drawbacks such as having to collect all HTTP header data before it can be handed to decode_packet for correct parsing, and also requiring each and every Erlang web server developer/maintainer to add the workaround to his or her web server. Change the packet parser to honor the packet_size setting for HTTP parsing. If packet_size is set, and an HTTP request/response or header line exceeds the default 1460 byte TCP buffer limit, return an indication to tcp_remain that it should realloc the buffer to enlarge it to packet_size. Also fix the HTTP parsing code to properly honor line_length by truncating any HTTP request/response or header lines that exceed that setting. For backward compatibility, default behavior is unchanged; if an application wants to be able to accept long HTTP header lines, it must set packet_size to an appropriate value. Buffer reallocation occurs only when needed, so the original default buffer size in the code is still the default. Make the line mode parsing honor packet_size as well, for consistency. Add new regression tests to the emulator decode_packet suite and also to the kernel gen_tcp_misc suite. The documentation for packet_size in inet:setopts/2 is already sufficient. Many thanks to Sverker Eriksson for his guidance on how to best fix this bug and also for reviewing a number of patch attempts prior to this one.
2011-12-02sensitive_SUITE: Fix spuriously failing recv_trace/1Björn Gustavsson
Only three messages are guaranteed to be in message queue of the tracer process. The second {trace_delivered,_,_} message may or may not be there.
2011-12-02Iron out bugs in Win64 found in daily buildsPatrik Nyblom
Almost all uses of the 'long' datatype is removed from VM and tests Emulator test now runs w/o drivers crashing Nasty abs bug fixed in VM as well as type errors in allocator debug functions Still one allocator test that fails, domain knowledge is needed to fix that. Fix type inconsistency in beam_load causing crashes
2011-11-29big_SUITE: Eliminate use of tuple funBjörn Gustavsson
It seems that a tuple fun was used only because erl_eval:expr/3 did not support passing in a real fun at the time that the test case was originally written.
2011-11-24emulator tests: Test compatibility with R13, not R12Björn Gustavsson
2011-11-18Merge branch 'sverk/hipe-without-fpe/OTP-9724'Sverker Eriksson
* sverk/hipe-without-fpe/OTP-9724: otp_build: Disable FPE by default on Linux stdlib: Make sure qlc_SUITE:otp_6964 restores backtrace_depth erts: Add test for inf/NaN intermediate float results hipe,erts: Allow hipe without floating point exceptions hipe: Fix bug in hipe_rtl_lcm:calc_killed_expr_bb erts: Rename macros used by float instructions without FPE
2011-11-17erts: Add test for inf/NaN intermediate float resultsSverker Eriksson
Make sure that badarith is thrown even if end result is not inf/NaN
2011-11-17Allow refc binaries in literal poolsBjörn Gustavsson
To simplify the implementation of literal pools (constant pools) for the R12 release, a shortcut was taken regarding binaries -- all binaries would be stored as heap binaries regardless of size. To allow a module containing literals to be unloaded, literal terms are copied when sent to another process. That means that huge literal binaries will also be copied if they are sent to another process, which could be surprising. Another problem is that the arity field in the header for the heap object may not be wide enough to handle big binaries. Therefore, bite the bullet and allow refc binaries to be stored in literal pools. In short, the following need to be changed: * Each loaded module needs a MSO list, linking all refc binaries in the literal pool. * When check_process_code/2 copies literals to a process heap, it must link each referenced binary into the MSO list for the process and increment the reference counter for the binary. * purge_module/1 must decrement the reference counter for each refc binary in the literal pool.
2011-11-17code_SUITE clean-up: Remove experimental 'constant_pool' optionBjörn Gustavsson
2011-11-13Merge branch 'rickard/generic-thr-queue/OTP-9632'Rickard Green
* rickard/generic-thr-queue/OTP-9632: Use generic lock-free queue for async threads Use generic lock-free queue for misc aux work Implement generic lock-free queue
2011-11-13Merge branch 'rickard/alloc-opt/OTP-7775'Rickard Green
* rickard/alloc-opt/OTP-7775: Optimize memory allocation Conflicts: erts/aclocal.m4 erts/emulator/hipe/hipe_bif_list.m4 erts/preloaded/ebin/erl_prim_loader.beam erts/preloaded/ebin/erlang.beam erts/preloaded/ebin/init.beam erts/preloaded/ebin/otp_ring0.beam erts/preloaded/ebin/prim_file.beam erts/preloaded/ebin/prim_inet.beam erts/preloaded/ebin/prim_zip.beam erts/preloaded/ebin/zlib.beam
2011-11-13Use generic lock-free queue for async threadsRickard Green
Queues used for communication between async threads and scheduler threads have been replaced with lock-free queues. Drivers using the driver_async functionality are not automatically locked to the system anymore, and can be unloaded as any dynamically linked in driver. Scheduling of ready async jobs is now also interleaved in between other jobs. Previously all ready async jobs was performed at once.
2011-11-13Optimize memory allocationRickard Green
A number of memory allocation optimizations have been implemented. Most optimizations reduce contention caused by synchronization between threads during allocation and deallocation of memory. Most notably: * Synchronization of memory management in scheduler specific allocator instances has been rewritten to use lock-free synchronization. * Synchronization of memory management in scheduler specific pre-allocators has been rewritten to use lock-free synchronization. * The 'mseg_alloc' memory segment allocator now use scheduler specific instances instead of one instance. Apart from reducing contention this also ensures that memory allocators always create memory segments on the local NUMA node on a NUMA system.