aboutsummaryrefslogtreecommitdiffstats
path: root/lib/stdlib/test
AgeCommit message (Collapse)Author
2017-02-13Merge branch 'bjorn/cuddle-with-tests'Björn Gustavsson
* bjorn/cuddle-with-tests: ets_tough_SUITE: Add the gen_server behavior ets_tough_SUITE: Remove functions that are never called ets_SUITE: Eliminate internal exports used for spawn/apply lists_SUITE: Run the droplast/1 test case random_{iolist,unicode_list}: Remove unused functions stdlib test: Eliminate export_all from re_SUITE and friends asn1_SUITE: Make sure that there are no unused functions Simplify running of asn1 app tests asn1_SUITE: Remove unused functions
2017-02-10ets_tough_SUITE: Add the gen_server behaviorBjörn Gustavsson
Add a declaration to make it clear for tools that this module uses the gen_server behavior. While at it, also remove the totally unnecessary 'export_all' option.
2017-02-10ets_tough_SUITE: Remove functions that are never calledBjörn Gustavsson
2017-02-10ets_SUITE: Eliminate internal exports used for spawn/applyBjörn Gustavsson
In the future we will run xref to make sure that all functions that are exported are also used. Having internal exports only used for spawning or applying will mess with that.
2017-02-10lists_SUITE: Run the droplast/1 test caseBjörn Gustavsson
The testcase was never actually run.
2017-02-10random_{iolist,unicode_list}: Remove unused functionsBjörn Gustavsson
2017-02-10stdlib test: Eliminate export_all from re_SUITE and friendsBjörn Gustavsson
There is no actual need to use export_all, since very few functions are actually called from the outside. While we are it, remove the unused functions in run_pcre_tests.erl.
2017-02-09Merge branch 'maint'Hans Bolinder
* maint: stdlib: Improve Erlang shell's tab-completion of long names
2017-02-09Merge pull request #1312 from richcarl/shell-smart-compileBjörn Gustavsson
Extend shell c(...) to find and recompile modules OTP-14190
2017-02-08stdlib: Improve Erlang shell's tab-completion of long namesHans Bolinder
2017-02-06Use magic refs for compiled match specsRickard Green
2017-02-06Add shell shortcut for recompiling existing modulesRichard Carlsson
This extends the shell function c/1 and c/2 so that if the argument is a module name instead of a file name, it automatically locates the .beam file and the corresponding source file, and then recompiles the module using the same compiler options (plus any options passed to c/2). If compilation fails, the old beam file is preserved. Also adds c(Mod, Opts, Filter), where the Filter argument allows you to remove old compiler options before the new options are added.
2017-02-04Add filelib:find_file/2/3 and filelib:find_source/1/2/3Richard Carlsson
This moves, extends and exports functionality that previously existed only internally in filename:find_src/1/2, adding the ability to automatically substitute file suffixes and use different rules for different suffixes.
2017-02-04Fix broken test for filename:find_src/2Richard Carlsson
2017-02-01Merge branch 'josevalim/atu8-chunk/PR-1078/OTP-14178'Björn Gustavsson
* josevalim/atu8-chunk/PR-1078/OTP-14178: Add new AtU8 beam chunk
2017-01-30Add new AtU8 beam chunkJosé Valim
The new chunk stores atoms encoded in UTF-8. beam_lib has also been modified to handle the new 'utf8_atoms' attribute while the 'atoms' attribute may be a missing chunk from now on. The binary_to_atom/2 BIF can now encode any utf8 binary with up to 255 characters. The list_to_atom/1 BIF can now accept codepoints higher than 255 with up to 255 characters (thanks to Björn Gustavsson).
2017-01-25Update test cases for erlang:hash/2 removalBjörn-Egil Dahlberg
2017-01-17Merge branch 'maint'Björn-Egil Dahlberg
2017-01-17Merge branch 'egil/cuddle-tests' into maintBjörn-Egil Dahlberg
* egil/cuddle-tests: stdlib: Increase timetrap for rand_SUITE common_test: Increase timetrap for cth_hooks_SUITE compiler: Increase timetrap timeouts for lc_SUITE
2017-01-13Merge branch 'hasse/stdlib/check_type_constraints/OTP-14070/PR-1214'Hans Bolinder
* hasse/stdlib/check_type_constraints/OTP-14070/PR-1214: stdilb: Check for bad type constraints in function types
2017-01-05Merge branch 'egil/stdlib/gen_event-start-2/OTP-14123'Björn-Egil Dahlberg
* egil/stdlib/gen_event-start-2/OTP-14123: stdlib: Document gen_event start options stdlib: Test gen_event options stdlib: Refactor gen_event_SUITE stdlib: Remove whitespace error in gen_event_SUITE stdlib: Add start options to gen_event stdlib: Remove whitespace errors in gen_event
2016-12-29stdlib: Test gen_event optionsBjörn-Egil Dahlberg
2016-12-29stdlib: Refactor gen_event_SUITEBjörn-Egil Dahlberg
2016-12-20stdlib: Remove whitespace error in gen_event_SUITEBjörn-Egil Dahlberg
2016-12-19Merge branch 'maint'Rickard Green
* maint: Remove faulty release note for these fixes New test cases testing stacktrace from apply on erlang:error() Fix stactrace for apply on error/[1,2], exit/1, or throw/1 Fix stack-trace generated by a traced process Conflicts: erts/emulator/beam/beam_emu.c erts/etc/unix/etp-commands.in
2016-12-19Merge branch 'rickard/stacktrace-bugs' into maintRickard Green
OTP-14055 * rickard/stacktrace-bugs: Remove faulty release note for these fixes New test cases testing stacktrace from apply on erlang:error() Fix stactrace for apply on error/[1,2], exit/1, or throw/1 Fix stack-trace generated by a traced process
2016-12-19Fix stactrace for apply on error/[1,2], exit/1, or throw/1Rickard Green
2016-12-19Add take/2 to all dictionary modulesBjörn Gustavsson
Similar to maps:take/2, add take/2 to the other dictionary modules in STDLIB: orddict:take(Key, Dict) -> {Val,NewDict} | 'error'. dict:take(Key, Dict) -> {Val,NewDict} | 'error'. gb_trees:take(Key, Dict) -> {Val,NewDict}. For gb_trees also add: gb_trees:take_any(Key, Dict) -> {Val,NewDict} | 'error'. gb_trees already has delete() and delete_any(), so we will follow that design pattern. Suggested by Boris Bochkaryov in https://github.com/erlang/otp/pull/1209.
2016-12-16Merge branch 'maint'Björn Gustavsson
* maint: Allow escripts with only two lines Add project-wide Emacs settings file
2016-12-13Allow escripts with only two linesJing Peng
The current implementation assumes that escripts all have at least three lines. But according to the escript documentation, comments on the second line and emulator flags on the third line are all optional. Thus escripts with only two lines -- shebang on the first line and code on the second line -- will not run. This commit fixes the problem by rearranging the escript header parsing logic, and recognize the escript body on the second line if the header only contains a line of shebang.
2016-12-08Printout client stacktrace when a gen_server crashesHåkan Mattsson
When a gen_server crashes it is in many cases helpful to know in which context its client made its call.
2016-12-02Merge branch 'richcarl/default-compiler-flags/PR-1226/OTP-14071'Björn Gustavsson
* richcarl/default-compiler-flags/PR-1226/OTP-14071: stdlib test suite: fix uses of export_all diameter tests: Eliminate use of -compile(export_all) asn1 test suite: Suppress warnings for -compile(export_all) Remove left-over uses of -compile(export_all) Make warn_export_all the default warn_obsolete_guard is already default
2016-12-01stdilb: Check for bad type constraints in function typesHans Bolinder
The parser recognizes the 'is_subtype(V, T)' syntax for constraints, and of course the new 'V :: T' syntax, but other variants result in an error message. Up to now, the parser and linter have let badly formed constraints through, and relied upon Dialyzer to emit warnings. is_subtype/2 cannot easily be taken out from the parser. Not only would we need find a way to emit a (linter) warning, but there also needs to be an option for suppressing the linter warning as compilation with +warnings_as_errors has to work. (Notice that the abstract format representation for 'V :: T' is the same as for 'is_subtype(V, T)'.) This correction was triggered by an email from Robert, and Kostis created pull request 1214 to provide a fix. However, Kostis' fix disallowed is_subtype() altogether, which breaks backward compatibility. As of Erlang/OTP 19.0 (ticket OTP-11879), the 'is_subtype(V, T)' is no longer documented.
2016-11-30Merge branch 'hasse/stdlib/remove_dets_v8/OTP-13830'Hans Bolinder
* hasse/stdlib/remove_dets_v8/OTP-13830: reltool: Remove module dets_v8 runtime_tools: Remove module dets_v8 stdlib: Remove support for Dets version 8 tables
2016-11-30stdlib: Remove support for Dets version 8 tablesHans Bolinder
When at it, types have been added to record fields.
2016-11-30stdlib test suite: fix uses of export_allRichard Carlsson
2016-11-29Make warn_export_all the defaultRichard Carlsson
2016-11-29Write node info before log message body, not afterRichard Carlsson
Make error_logger_tty_h insert node information for nonlocal messages before the message itself instead of after, both for readability and so as not to change the line termination property at the end of the message.
2016-11-18Merge branch 'maint'Björn Gustavsson
* maint: Run dialyzer as part of the travis script Correct tar_SUITE:unicode/1
2016-11-17Correct tar_SUITE:unicode/1Björn Gustavsson
Make sure that we always test the "+fnu" option on all systems. It seems that it was not tested in our daily builds, since they are run non-interactively. Make sure that we sort the list of names in do_unicode/1. Otherwise the test would only work in "+fnl" mode because the list would only contain one element.
2016-11-14Add jump functions to rand moduleKenji Rikitake
Jump functions returns the state after performing jump calculation to a rand module internal state, which is equivalent to perform a large number of calls of calculating new states for XorShift*/+ algorithms. This commit add jump functions for exsplus and exs1024 algorithms, and a wrapper function jump/1. The wrapper function will cause error with reason "not_implemented" if the jump function for the algorithm is not implemented. This commit adds following new functionalities: - Add new functions rand:jump/0 and rand:jump/1 - Add the member jump to type alg_handler(), a fun for performing the jump function - Add jump functions for exsplus, equivalent to 2^64 calls - Add jump functions for exs1024, equivalent to 2^512 calls - Revise seed_put/1, seed/1, seed/2 See <https://github.com/erlang/otp/pull/1235#discussion_r86950557> - Add dummy jump function for exs64 calling erlang:error(not_implemented) - Add jump function test cases as follows: * Add Common Test group reference_jump * Add tests for jump/0 to reference_jump_procdict/1 * Rename tests for jump/1 to reference_jump_state/1 * Rename gen_jump/1 to gen_jump_1/1 * Add Common Tests reference_jump_procdict and reference_jump_state to the group reference_jump - Add jump function documentation This commit also changes the Copyright year for Kenji Rikitake's code from 2015 to 2015-2016.
2016-11-11stdlib: Increase timetrap for rand_SUITEBjörn-Egil Dahlberg
* valgrind needs a lot of time
2016-11-08Merge branch 'maint'Raimo Niskanen
2016-11-08Merge branch 'raimo/gen_statem-improvements/OTP-13929' into maintRaimo Niskanen
* raimo/gen_statem-improvements/OTP-13929: Log terminate to sys debug Optimize event timeout Rework timeout handling Clarify the chapter 'Postponing Events' (ERL-284) Fix doc and type for state enter calls
2016-11-07Merge branch 'maint'Björn-Egil Dahlberg
2016-11-04stdlib: Increase timeouts in ets_SUITEBjörn-Egil Dahlberg
* valgrind needs lots of time
2016-11-04stdlib: Increase timeouts in rand_SUITEBjörn-Egil Dahlberg
* valgrind needs lots of time
2016-11-04stdlib: Increase timeouts in base64_SUITEBjörn-Egil Dahlberg
* valgrind needs lots of time
2016-10-31Propagate exceptions fully when using proc_libLoïc Hoguin
This makes proc_lib behaves like a normal process as far as the propagation of exceptions is concerned. Before this commit, the following difference could be observed: 6> spawn_link(fun() -> ssl:send(a,b) end). <0.43.0> 7> flush(). Shell got {'EXIT',<0.43.0>, {function_clause, [{ssl,send,[a,b],[{file,"..."},{line,275}]}]}} ok 8> proc_lib:spawn_link(fun() -> ssl:send(a,b) end). <0.46.0> 9> flush(). Shell got {'EXIT',<0.46.0>,function_clause} After this commit, we get the following instead: 3> flush(). Shell got {'EXIT',<0.61.0>, {function_clause, [{ssl,send,[a,b],[{file,"..."},{line,275}]}, {proc_lib,init_p,3,[{file,"..."},{line,232}]}]}} The stacktrace will show minor differences of course but the form is now the same as without proc_lib. The rationale behind this commit is that: * We now have a single form regardless of how the process was started * We can use the stacktrace to programmatically alter behavior (for example an HTTP server identifying problems in input decoding to send back a generic 400, or a 500 otherwise) * We can access the stacktrace to print it somewhere (for example an HTTP server could send it back to the client when a debug mode is enabled)
2016-10-26Rework timeout handlingRaimo Niskanen
Handling of timers and timeouts has been cleaned up and generalized. Semantic change regarding state timeout zero: Previously if one state caused a state timeout zero and managed to stay in the same state to insert additional timeout zero(s) in the next state callback invocation, then there would be only one timeout zero event. The mindset was that the machine was faster then the timeout zero. This has changed with the mindset that all state callback invocations should be independent, so now the machine will get one state timeout zero event per started state timeout zero. Note that just using zero timeouts is fairly esoteric...