aboutsummaryrefslogtreecommitdiffstats
path: root/lib
AgeCommit message (Collapse)Author
2012-10-26Simplify managment of test_server_locBjörn Gustavsson
Before line numbers were included in exceptions (in R15), there were parse transforms and macros that would keep the test_server_loc process dictionary variable updated; therefore there is a mod_loc/1 function that will normalize the representation of locations. Simplify the code as following: * 'test_server_loc' should always contain a list with one or more tuples. ({M,F} or {M,F,Line}) * At the beginning of each test case, set 'test_server_loc' to [{Module,Func}] of the the currently executing test case. * Stop updating 'test_server_loc', except when an exception occurs. (It used to be updated when running 'init_per_testcase' and so on.) * Remove the mod_loc/1 function.
2012-10-26Keep the information about the current test case consistentBjörn Gustavsson
Three pieces of information could be out of sync in testcase supervisor process at the time when a timetrap occurred: * test_server_loc (process dictionary) - may indicate that a framework function is executing * test_server_init_or_end_conf (process dictionary) - indicates whether init_per_testcase or end_per_testcase is executing * The current configuration (#st.config) - set using a synchronous call There could be in a crash in spawn_fw_call/7 because the current configuration was not defined when it was expected to. To avoid the problem, introduce set_tc_state/2 (and a corresponding message) to allow setting both an indication what the testcase is executing (e.g. init_per_testcase, framework call, and so on), and the current configuration. Use only that information to handle a timetrap timeout (and aborted testcase and the other reasons for the testcase process to terminate). Completely remove test_server_init_or_end_conf.
2012-10-26test_server: Eliminate the Loc argument for do_end_tc_call()Björn Gustavsson
The Loc argument was use to determine the name of the currently executing test case, in case that the M and F arguments did not specify a test case. Since a previous commit makes sure that the M and F arguments *are* valied, we can eliminate the Loc argument.
2012-10-26Refactor the handling of the make_priv_dir messageBjörn Gustavsson
The code is not actually shorter, but it avoids duplicating the code for producing an error tuple when theres is no priv_dir tuple in the config data.
2012-10-26test_server: Refactor run_test_case_msgloop()Björn Gustavsson
Keeping all state as separate function arguments does not make it easy to add more pieces of data to the state. Case in point is the CurrConf argument where up to three separate items have been shoehorned in. Instead of the arguments, introduce a state record to hold all of the different pieces of state (taking care to separate the former CurrConf variable into separate fields in the record). While at it, fix a bug. The name of the currently executing test case (module and function) used to be stored in a tuple in the CurrConf variable, and it would only be available after 'set_curr_conf' message has been received. Depending on timing, it was possible in rare circumstances for an EXIT signal to arrive before the 'set_curr_conf' message. Avoid this problem by putting the current test case name into the record from the beginning. That also means that we can eliminate the workaround of getting the currently executing test case from the stack trace using the get_mf/1.
2012-10-26Merge branch 'bjorn/compiler/test-cases'Björn Gustavsson
* bjorn/compiler/test-cases: Correct typo in test suite name compiler: Run testcases in parallel
2012-10-26Merge branch 'bjorn/test_server/test-cases'Björn Gustavsson
* bjorn/test_server/test-cases: test_server tests: Be kind to Windows by using shorter pathnames
2012-10-26Merge branch 'bjorn/ct/separate-io-server/OTP-10101'Björn Gustavsson
* bjorn/ct/separate-io-server/OTP-10101: Test ct:capture/start/stop/get Introduce ct_group_leader_SUITE that does nasty things with group leaders Eliminate unexpected I/O to the minor log file Introduce test_server_io and test_server_gl Clean up initialization of parallel test cases Introduce is_io_buffered/0 to somewhat improve readability test_server_ctrl: Consistently use set_io_buffering/1
2012-10-25[test_server] Set data_dir correctly when suite is cover compiledSiri Hansen
If the test suite itself was included in code coverage analysis, then test_server_ctrl would not manage to set data_dir correctly for the test, since it relied on the result of code:which(Suite). This has been corrected.
2012-10-25test_server tests: Be kind to Windows by using shorter pathnamesBjörn Gustavsson
The pathnames gets too long for Windows if we use priv_dir as working directory for the test_server tests in the slave node. Use data_dir instead. Revert this commit when the run-time system can handle long pathnames on Windows.
2012-10-24Merge branch 'maint'Björn-Egil Dahlberg
Conflicts: erts/etc/common/heart.c
2012-10-24Merge branch 'egil/ensure-erl_crash.dump/OTP-10422' into maintBjörn-Egil Dahlberg
* egil/ensure-erl_crash.dump/OTP-10422: test: Relax timeouts for heart_SUITE erts: Fix crash dump write to port hack erts: Fix lock check assertion doc: Document ERL_CRASH_DUMP_SECONDS behaviour test: Add test for heart restart on crash test: Add test for heart restart on crash erts: Change ERL_CRASH_DUMP_SECONDS behaviour test: Refactor away ?line macros in heart_SUITE erts: Search for heart in ports that are alive heart: Refactor heart debugging erts, heart: Ensure erl_crash.dump is written
2012-10-23Test ct:capture/start/stop/getBjörn Gustavsson
2012-10-23Introduce ct_group_leader_SUITE that does nasty things with group leadersBjörn Gustavsson
2012-10-23Eliminate unexpected I/O to the minor log fileBjörn Gustavsson
2012-10-23Introduce test_server_io and test_server_glBjörn Gustavsson
2012-10-23test: Relax timeouts for heart_SUITEBjörn-Egil Dahlberg
Timeouts were set too narrow and timedout on slow machines
2012-10-23Clean up initialization of parallel test casesBjörn Gustavsson
2012-10-23Introduce is_io_buffered/0 to somewhat improve readabilityBjörn Gustavsson
Note that there are some more direct use of: get(test_server_common_io_handler) that cannot be replaced with a call to is_io_buffered/0.
2012-10-23test_server_ctrl: Consistently use set_io_buffering/1Björn Gustavsson
Since we will want to change the implementation of I/O buffering in a future commit, make sure that all updates of the buffering state is done by calling set_io_buffering/1.
2012-10-23Correct typo in test suite nameBjörn Gustavsson
It should be beam_except_SUITE, since it tests the beam_except module (introduced in 726f6e4c7afe8ce37b30eedbebe583e7b9bfc51b).
2012-10-23compiler: Run testcases in parallelBjörn Gustavsson
Run testcases in parallel will make the test suite run slightly faster. Another reason for this change is that we want more testing of parallel testcase support in common_test.
2012-10-22Merge branch 'ia/ssh/ctify-tests'Ingela Anderton Andin
* ia/ssh/ctify-tests: ssh: Modernized test suites to use only Common Test
2012-10-19ssh: Modernized test suites to use only Common TestIngela Anderton Andin
2012-10-18doc: Document ERL_CRASH_DUMP_SECONDS behaviourBjörn-Egil Dahlberg
* heart reboot behaviour * erl_crash.dump file write behaviour
2012-10-18test: Add test for heart restart on crashBjörn-Egil Dahlberg
* node_start_soon_after_crash tests that heart restarts beam upon a crash and only lets beam write its crash dump for a certain amount of time
2012-10-18Merge branch 'ar/odbc_nagel'Henrik Nord
* ar/odbc_nagel: Under Unix enable TCP_NODELAY to disable Nagel's socket algorithm OTP-10506
2012-10-18Merge branch 'nk/jinterface-fix_compressed_binary'Henrik Nord
* nk/jinterface-fix_compressed_binary: add (de)compress roundtrip tests with larger values fix reading compressed binary terms from Java OTP-10505
2012-10-18Merge branch 'at/binary-depth-printing'Henrik Nord
* at/binary-depth-printing: Fix printing the empty binary at depth 1 with ~W OTP-10504
2012-10-18Merge branch 'jf/fix_sctp_peeloff_active_true'Henrik Nord
* jf/fix_sctp_peeloff_active_true: Set new peeled off SCTP socket to nonblocking socket SCTP test case with socket active options once and true OTP-10491
2012-10-16test: Add test for heart restart on crashBjörn-Egil Dahlberg
* node_start_immediately_after_crash tests that heart restarts beam upon a crash and will not generate a crash dump
2012-10-15test: Refactor away ?line macros in heart_SUITEBjörn-Egil Dahlberg
2012-10-15erts, heart: Ensure erl_crash.dump is writtenBjörn-Egil Dahlberg
When a crash dump is about to be written and we have heartbeat enabled on a system. We need time to write it before heart explicitly kills the beam.
2012-10-15Merge branch 'tp/supervisor-pass-on-errors'Siri Hansen
* tp/supervisor-pass-on-errors: If supervisor:start_link fails to start child, add child id to error reason Fix documentation about how supervisor handles crash in child's start function Have supervisor send errors up the chain OTP-10490
2012-10-12Merge branch 'egil/add-scalefactor-to-start_node'Björn-Egil Dahlberg
* egil/add-scalefactor-to-start_node: test_server: Let start_node/3 utilize scalefactor test_server: Refactor timetrap_scale_factor/0
2012-10-11If supervisor:start_link fails to start child, add child id to error reasonSiri Hansen
2012-10-11filename: Eliminate Dialyzer warningBjörn Gustavsson
os:type/0 always returns a two-tuple.
2012-10-11common_test: Make ct_system_error_SUITE portable to WindowsBjörn Gustavsson
On Windows, the log files are not placed under priv_dir, so we will have to retrieve the path using ct_test_support (which works fine on all platforms).
2012-10-11Fix documentation about how supervisor handles crash in child's start functionSiri Hansen
2012-10-11Merge branch 'hb/kernel/spec_fix/OTP-10473'Hans Bolinder
* hb/kernel/spec_fix/OTP-10473: Fix the contract of erl_ddll:format_error/1
2012-10-10Change the type of some arguments in filename to file:name()Hans Bolinder
2012-10-10Merge branch 'bjorn/compiler/minor-optimization-polishing/OTP-10193'Björn Gustavsson
* bjorn/compiler/minor-optimization-polishing/OTP-10193: (25 commits) beam_bsm: Handle calls slightly better Break apart tail-recursive call instructions Represent the 'send' instruction as a call_ext/2 instruction Rewrite select_val and select_tuple_arity to a select instruction Rewrite binary creation instructions to bs_init instructions Rewrite bs_add, bs_utf*_size to BIF instructions in optimizations Rewrite bs_put* instructions to a generic bs_put instruction Refactor removal of unused labels Introduce the mandatory beam_a and beam_z passes compile: Fix bug in selection of passes beam_receive: Optimize receives using refs created by spawn_monitor/{1,3} compile: Give a friendler error message if a parse transform cannot be found beam_jump: Don't move a block which can be entered via a fallthrough beam_jump: Fix broken optimization v3_kernel: Fix match code for matched out segment size in multiple clauses Improve binary matching of literals v3_codegen: Combine adjacent bs_match_string instructions beam_bool: Recognize more safe optimizations beam_utils: Correct usage calculations for GC BIFs in blocks beam_utils:live_opt/1: Correct liveness calculation for 'try' ...
2012-10-10beam_bsm: Handle calls slightly betterBjörn Gustavsson
We were too conservative when handling a call when there were copies of the match context in both x and y registers. Don't give up if there is are copies of the match context in y registers, as long as those copies are killed by the code that follows the call.
2012-10-10Break apart tail-recursive call instructionsBjörn Gustavsson
Somewhat reduce the code bloat by eliminating special cases.
2012-10-10Represent the 'send' instruction as a call_ext/2 instructionBjörn Gustavsson
Somewhat reduce code bloat.
2012-10-10Rewrite select_val and select_tuple_arity to a select instructionBjörn Gustavsson
Eliminate some code bloat.
2012-10-10Merge branch 'siri/sasl/appup-regexp-fix/OTP-10463'Siri Hansen
* siri/sasl/appup-regexp-fix/OTP-10463: Fix release_handler:find_script so it can read regexp in appups
2012-10-09Rewrite binary creation instructions to bs_init instructionsBjörn Gustavsson
Rewrite the five binary creation instructions to a bs_init instruction, in order to somewhat reduce code bloat.
2012-10-09Rewrite bs_add, bs_utf*_size to BIF instructions in optimizationsBjörn Gustavsson
We can remove some code bloat by handling the special instructions as BIF instructions in the optimization passes. Also note that bs_utf*_size was not handled by beam_utils:check_liveness/3 (meaning the conservative answer instead of the correct answer would be returned).
2012-10-09Rewrite bs_put* instructions to a generic bs_put instructionBjörn Gustavsson
Seven bs_put_* instructions can be combined into one generic bs_put instruction to avoid some code bloat. That will also improve some optimizations (such as beam_trim) that did not handle all bs_put* variants.