aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2017-02-21[cth_surefire] Handle skips from test specSiri Hansen
When a test case is skipped from the test spec, there is no call to the common_test hook functions 'pre_init_per_testcase' and 'post_end_per_testcase'. This causes cth_surefire to erroneously mark the previous test case as skipped in the xml report. The actually skipped test case is not present in the xml report at all. This is now corrected. OTP-14129
2017-02-21kernel: Fix hanging os:cmd race conditionLukas Larsson
If the port terminates before Port ! close is issued, there will be no 'closed' reply, so the old code would hang. As it turns out there is no way to figure out if a closed reply is supposed to come as that reply is sent after all links and monitors are triggered. So we have to use the synchronous port_close to close the port.
2017-02-21PER decoding: Be less verbose for invalid ENUMERATEDBjörn Gustavsson
When an invalid value is encountered when trying to decode an ENUMERATED, the exception can be quite verbose. Here is an actual example from NBAP-PDU-Contents: _ -> exit({error,{asn1,{decode_enumerated,{V4@V3,[chCode1div1,chCode2div1,chCode2div2,chCode4div1,chCode4div2,chCode4div3,chCode4div4,chCode8div1,chCode8div2,chCode8div3,chCode8div4,chCode8div5,chCode8div6,chCode8div7,chCode8div8,chCode16div1,chCode16div2,chCode16div3,chCode16div4,chCode16div5,chCode16div6,chCode16div7,chCode16div8,chCode16div9,chCode16div10,chCode16div11,chCode16div12,chCode16div13,chCode16div14,chCode16div15,chCode16div16]}}}}) Listing the possible values for an ENUMERATED when decoding fails is not helpful and increases the code size (it would have made somewhat more sense to list the possible values if *encoding* failed).
2017-02-21stdlib: Improve pretty-printing of terms with mapsHans Bolinder
As of committing this branch maps:fold/3 calls maps:to_list/1, which means that the time and memory needed for printing maps is not always proportional to the size of the generated deep list of characters.
2017-02-21erts: Emasculate binaries that are scheduled in port_controlLukas Larsson
2017-02-21filename: Add safe_relative_path/1Björn Gustavsson
Add safe_relative_path/1 to guard against directory traversal attacks. It either returns a shorter path without any ".." or "." components, or 'unsafe' if an ".." component would climb up above the root of the relative path. Here are a few examples: safe_relative_path("a/b/..") => "a" safe_relative_path("a/..") => "" safe_relative_path("a/../..") => unsafe safe_relative_path("/absolute/path") => unsafe The returned path can be used directly or combined with an absolute path using filename:join/2.
2017-02-21Merge branch 'hasse/dialyzer/correct_tests'Hans Bolinder
* hasse/dialyzer/correct_tests: dialyzer: Correct test cases after removal of erlang:hash/2
2017-02-21dialyzer: Correct test cases after removal of erlang:hash/2Hans Bolinder
2017-02-20Fix ErlNifMonitor handlingSverker Eriksson
2017-02-20Remove faulty debug ASSERTSverker Eriksson
Why did I add that?
2017-02-20erts: Skip nif_SUITE:select on windowsSverker Eriksson
for now...
2017-02-20Fix enif_select for windowsSverker Eriksson
2017-02-20Fix whitebox monitor testsSverker Eriksson
2017-02-20Fix erl_nif docSverker Eriksson
2017-02-20Expand nif_SUITE:monitor_frenzy to verify dtor callsSverker Eriksson
2017-02-20Expand nif_SUITE:monitor_frenzy with binary_to_termSverker Eriksson
to provoke resource revival race.
2017-02-20erts: Avoid revival of dying resource by dec_termSverker Eriksson
2017-02-20Merge branch 'master' into sverker/enif_selectSverker Eriksson
Conflicts: erts/emulator/beam/erl_binary.h erts/emulator/beam/erl_monitors.c erts/emulator/beam/erl_nif.c erts/emulator/beam/global.h erts/emulator/test/nif_SUITE_data/nif_SUITE.c
2017-02-20erts: Add enif_compare_monitorsSverker Eriksson
# Conflicts: # erts/emulator/test/nif_SUITE_data/nif_SUITE.c
2017-02-20Merge branch 'rickard/magic-references-fixes'Sverker Eriksson
* rickard/magic-references-fixes: Fix driver monitor implementation Handle magic refs in db_cleanup_offheap_comp()
2017-02-20Fix driver monitor implementationRickard Green
2017-02-20Ensure prim_eval:'receive' wont clobber def_arg_reg[0]Rickard Green
def_arg_reg[0] is used for storage of timeout instruction when a 'receive after' is executed. When a process was scheduled out inside prim_eval:'receive'/0 due to a function call, def_arg_reg[0] was overwritten due to storage of live registers. prim_eval:'receive'/2 now calls arg_reg_alloc/0 which bumps all reductions and then calls arg_reg_alloc/7 which will cause an allocation of a new arg_reg array since def_arg_reg only can hold 6 values. This ensures that the timeout instruction in def_arg_reg[0] used for the timeout wont be overwritten.
2017-02-20[ct] Remove excessive skipped/failed tag in hook functionSiri Hansen
When skipping or failing in a configuration function, the configuration function itself would get {auto_skipped,Reason}, {skipped,Reason} or {failed,Reason} in the hook callbacks on_tc_skip or on_tc_fail. The other test cases that were skipped as a result of this would only get Reason in the hook callbacks. This is now corrected.
2017-02-20[ct] Send tc_start event on force_stop and failed sequenceSiri Hansen
If test cases were skipped because of option {force_stop,skip_rest} or because of a failed sequence, then no tc_start event would be sent, only only tc_done. This is now corrected.
2017-02-20[ct] Correctly handle process died in init and end_per_testcaseSiri Hansen
Documentation says that a test case is skipped if init_per_testcase fails. This is correct if init_per_testcase fails in a normal way, but if it gets an exit signal causing the process to die, then the case was earlier marked as failed with reason {skip,...}. This is now corrected, so the case is auto skipped. If end_per_testcase crashes, it does not change the result of a test case, it only adds a warning in the comment field. But if it gets an exit signal causing the process to die while running end_per_testcase, then the case was earlier marked as failed in addition to this warning. This is now corrected, so the result of the test case is not changed by an exit signal during end_per_testcase.
2017-02-20[ct] Fix faulty hook callbacks for skipped testsSiri Hansen
The following bugs are corrected: * Tests that were skipped before calling pre_init_per_* got faulty calls to the corresponding post_init_per_*. E.g. if a test was skipped because suite/0 returned a 'require' statement that was not fulfilled, then post_init_per_suite would be called, even though pre_init_per_suite and init_per_suite were not called. * Tests that were skipped before or in init_per_testcase got faulty calls to pre_end_per_testcase and post_end_per_testcase (end_per_testcase is not called in these situations). Test are added to make sure that the expected callbacks, and only those, are called when tests are skipped in different ways. Conflicts: lib/common_test/test/ct_hooks_SUITE.erl
2017-02-20Add dummy end_per_suite/1Siri Hansen
common_test requires that if init_per_suite/1 exists, then end_per_suite/1 must also exist. If end_per_suite/1 does not exist, then it will be marked in the log as failed with reason 'undef'. Some test suites are corrected to avoid this.
2017-02-20[ct] Fix hooks and fail when one of init/end_per_* does not exitSiri Hansen
The following bugs are corrected: - if init_per_suite is exported from a test suite, but not end_per_suite, then pre/post_end_per_suite will be called with Suite=ct_framework instead of the correct suite name. - if end_per_group is exported from a suite, but not init_per_group, then end_per_group is never called. According to the documentation, if implementing an init config function, you must also implement the end config function, so the two scenarios above are really not allowed. To make this more visible, common_test will now mark the non-exported config function as failed with reason 'undef' if the other function is exported. For example, if init_per_suite is exported, but not end_per_suite, then end_per_suite will be marked as failed with reason undef. (If none of them exist, then they will both be marked as passed since the default functions in ct_framework are called instead.) All hook functions are always called with the correct suite name, i.e. never with Suite=ct_framework. Conflicts: lib/common_test/test/ct_hooks_SUITE.erl
2017-02-20[ct] Add Suite argument to hook callback functionsSiri Hansen
An extra argument, Suite, is added as the first argument to each of the following hook callback functions: - pre_init_per_group - post_init_per_group - pre_end_per_group - post_end_per_group - pre_init_per_testcase - post_init_per_testcase - pre_end_per_testcase - post_end_per_testcase - on_tc_fail - on_tc_skip For backwards compatibility, if the new function is not exported from a hook callback module, common_test will fall back to the old interface and call the function without the Suite argument. The reason for adding the new argument is that if a test suite is skipped by a 'skip_suites' statement in the test specification, then there will be no call to pre/post_init_per_suite, and thus the hook has no other way of knowing which Suite is skipped when it gets the on_tc_skip callback. The other callbacks are updated for symmetry.
2017-02-20Merge branch 'maint'Hans Nilsson
2017-02-20Merge branch 'hans/ssh/iolist_on_unicode/ERL-364/OTP-14230' into maintHans Nilsson
2017-02-20Merge branch 'maint'Hans Nilsson
2017-02-20Merge branch 'hans/ssh/cuddle_tests' into maintHans Nilsson
2017-02-20Merge branch 'maint'Hans Nilsson
2017-02-20Merge branch 'hans/ssh/sftpd_fixes/OTP-14225' into maintHans Nilsson
2017-02-20kernel: Fail sticky_dir tc if module not stickyLukas Larsson
Running this test when for some reason stdlib has been unstickied could cause the emulator to die. So we check first to make sure that the expected files are sticky.
2017-02-20Documentation: fix link to erlang(3) man pageStephan Renatus
I don't see why this should point to process_flag/2. Let's make it not do that.
2017-02-19ErLLVM: Drop code printing assembly for LLVM < 3.9Magnus Lång
2017-02-19erts: Drop workarounds for ErLLVM w/ LLVM < 3.9Magnus Lång
2017-02-19ErLLVM: Demand LLVM 3.9 or greaterMagnus Lång
2017-02-17ssh: replace byte-only function with element-size agnosticHans Nilsson
An error report on ssh_cli pointed to a usage of erlang:iolist_size/1. It is replaced by a specialized function.
2017-02-17Update primary bootstrapBjörn Gustavsson
2017-02-17Merge branch 'bjorn/fix-make_preload'Björn Gustavsson
* bjorn/fix-make_preload: Teach make_preload to handle the new 'AtU8' chunk
2017-02-17Teach make_preload to handle the new 'AtU8' chunkBjörn Gustavsson
26b59dfe67 introduced the new 'AtU8' chunk to support Unicode atoms. make_preload strips the pre-loaded BEAM files so that they only contain essential chunks. It expects to find the old 'Atom' chunk. Teach make_preload to read the new 'AtU8' chunk instead of the old chunk. Also produce a nice error message if someone by mistake compiles the pre-loaded modules with an OTP 19 compiler.
2017-02-17ssh: increase timetrap in ssh_to_openssh_SUITE to not interrupt some slow ↵Hans Nilsson
machines
2017-02-17Merge branch 'ssh_sftpd_relative_path' into hans/ssh/sftpd_fixes/OTP-14225Hans Nilsson
Conflicts: lib/ssh/test/ssh_sftpd_SUITE.erl
2017-02-17Merge branch 'ssh_sftpd_cwd_with_root' into hans/ssh/sftpd_fixes/OTP-14225Hans Nilsson
Conflicts: lib/ssh/test/ssh_sftpd_SUITE.erl
2017-02-17Merge branch 'hans/ssh/try_sftp_access_outside_root' into ↵Hans Nilsson
hans/ssh/sftpd_fixes/OTP-14225
2017-02-17PER encoding: Emit comments about each attributeBjörn Gustavsson
To make it easier to find your way in the generated code, add a comment about each attribute in the generated code for SEQUENCE and SET.
2017-02-17PER: Slightly improve error reporting for encodingBjörn Gustavsson
Generate slightly better error reasons when encoding of INTEGER, ENUMERATED, or BOOLEAN fails.