aboutsummaryrefslogtreecommitdiffstats
path: root/lib/stdlib/test
AgeCommit message (Collapse)Author
2015-06-12stdlib: Introduce precedence for operators in typesHans Bolinder
Add new functions erl_parse:type_inop_prec() and erl_parse:type_preop_prec(). Get rid of paren_type used for parentheses in types.
2015-06-10Merge branch 'rickard/timer-improvement/OTP-12650'Rickard Green
* rickard/timer-improvement/OTP-12650: Callback timer Disable accessor timer option Aux work flag descriptions Fix test cases
2015-06-09Fix test casesRickard Green
2015-06-03Break out assert macros from eunit to stdlib assert.hrlRichard Carlsson
Several people have requested that the assert macros in EUnit should be moved out to a separate header file. This patch puts them in stdlib/include/assert.hrl, which gets included by the eunit.hrl file. Thus, nothing changes for eunit users, but the asserts can now also be included separately.
2015-05-29Merge branch 'fishcakez/supervisor_ignore'Zandra Hird
* fishcakez/supervisor_ignore: Don't store child that returns ignore in simple supervisor OTP-12793
2015-05-28Merge branch 'richcarl/warnings-by-default/OTP-12781'Björn-Egil Dahlberg
* richcarl/warnings-by-default/OTP-12781: stdlib: Use warning channel in test qlc_SUITE:otp_6964/1 stdlib: Fix testcase for qlc_SUITE kernel: Fix code_SUITE with respect to new logger default Map error logger warnings to warning messages by default
2015-05-27stdlib: Use warning channel in test qlc_SUITE:otp_6964/1Björn-Egil Dahlberg
2015-05-27stdlib: Fix testcase for qlc_SUITEBjörn-Egil Dahlberg
2015-05-26Merge branch 'egil/opt-compile-time/OTP-12774'Björn-Egil Dahlberg
* egil/opt-compile-time/OTP-12774: stdlib: Relax erl_anno_SUITE:is_anno/1 test Update primary bootstrap compiler: Use Maps as type information compiler: Use Maps instead of dict in beam_jump compiler: Use cerl_sets instead of gb_sets in beam_type compiler: Use Maps instead of gb_trees in beam_dead compiler: Use cerl_sets instead of gb_sets in beam_jump compiler: Use cerl_sets instead of sets in v3_kernel compiler: Use cerl_sets instead of gb_sets in sys_core_fold compiler: Add cerl_sets module compiler: Scope uses gb_sets not gb_trees beam_dict: Use Maps to map function name indices beam_dict: Use Maps to map line indices beam_dict: Use Maps to map atom indices v3_codegen: Use Maps to map local functions v3_life: Refactor variable db compiler: Use lc instead of map/1 in v3_codegen stdlib: Optimize erl_anno:is_string/1 Conflicts: bootstrap/lib/kernel/ebin/inet_dns.beam bootstrap/lib/stdlib/ebin/erl_anno.beam bootstrap/lib/stdlib/ebin/erl_lint.beam
2015-05-26Merge branch 'egil/cuddle-tests'Björn-Egil Dahlberg
* egil/cuddle-tests: erts: Relax monitor_SUITE:mixer/1 erts: Refactor monitor_SUITE:mixer/1 stdlib: Minor change of unicode_SUITE stdlib: Relax iterations in binary_module_SUITE:random_ref_sr_comp/1 Remove ?line macro in binary_module_SUITE:random_ref_sr_comp/1 stdlib: Relax iterations in binary_module_SUITE:random_ref_comp/1 stdlib: Remove ?line macro in binary_module_SUITE:random_ref_comp/1 stdlib: Relax filesize of io_proto_SUITE:unicode_options_gen/1 stdlib: Relax rand_SUITE timeout debugger: Relax test map_SUITE:t_guard_receive_large/1 tools: Relax lcnt test time stdlib: ets_SUITE cuddling
2015-05-26Don't store child that returns ignore in simple supervisorJames Fish
If a child of a simple_one_for_one returns ignore from its start function no longer store the child for any restart type. It is not possible to restart or delete the child because the supervisor is a simple_one_for_one. Previously a simple_one_for_one would crash, potentially without shutting down all of its children, when it tried to shutdown a child with undefined pid. Previous only one undefined pid child was stored in a simple_one_for_one supervisor no matter how many times the child start function returned ignore.
2015-05-25stdlib: Minor change of unicode_SUITEBjörn-Egil Dahlberg
2015-05-25stdlib: Relax iterations in binary_module_SUITE:random_ref_sr_comp/1Björn-Egil Dahlberg
2015-05-25Remove ?line macro in binary_module_SUITE:random_ref_sr_comp/1Björn-Egil Dahlberg
2015-05-25stdlib: Relax iterations in binary_module_SUITE:random_ref_comp/1Björn-Egil Dahlberg
2015-05-25stdlib: Remove ?line macro in binary_module_SUITE:random_ref_comp/1Björn-Egil Dahlberg
2015-05-25stdlib: Relax filesize of io_proto_SUITE:unicode_options_gen/1Björn-Egil Dahlberg
2015-05-25stdlib: Relax rand_SUITE timeoutBjörn-Egil Dahlberg
2015-05-22Merge branch 'egil/fix-hipe_libs'Björn-Egil Dahlberg
* egil/fix-hipe_libs: stdlib: Relax maps test suite for HiPE
2015-05-22stdlib: Relax erl_anno_SUITE:is_anno/1 testBjörn-Egil Dahlberg
Due to the relaxation of erl_anno:is_string/1, the test false = erl_anno:is_anno([{location,1},{text,[a,b,c]}]), is no longer valid.
2015-05-21Merge branch 'sverk/ets-tab2file-syn/OTP-12737'Sverker Eriksson
* sverk/ets-tab2file-syn/OTP-12737: stdlib: Add 'sync' option to ets:tab2file/3
2015-05-20stdlib: ets_SUITE cuddlingBjörn-Egil Dahlberg
Time measurement of ets-lookups, too fast for windows.
2015-05-20stdlib: Relax maps test suite for HiPEBjörn-Egil Dahlberg
2015-05-19stdlib: Test maps:filter/2Björn-Egil Dahlberg
2015-05-18stdlib: Add gb_sets:iterator_fromHans Bolinder
2015-05-18stdlib: Add gb_trees:iterator_frombeaver
2015-05-13stdlib: Add 'sync' option to ets:tab2file/3Sverker Eriksson
to improve the chance of some real disk persistence before tab2file returns.
2015-05-11Merge branch 'egil/fix-maps-copy-shallow'Björn-Egil Dahlberg
* egil/fix-maps-copy-shallow: erts: Make hashmap_get halfword safe erts: Fix ETS db_has_variable check for large Maps stdlib: Strengthen ETS Maps tests erts: Fix copy shallow for large Maps stdlib: Strengthen ETS Maps tests erts: ETS ordered_set cannot use it's optimization with Maps stdlib: Strengthen ETS Maps tests stdlib: Refactor away ?line macro
2015-05-08Merge branch 'bjorn/stdlib/fix-filename-split/OTP-12716'Björn Gustavsson
* bjorn/stdlib/fix-filename-split/OTP-12716: Correct filename:split(<<"">>)
2015-05-08Merge branch 'dgud/stdlib/rand/OTP-12586'Dan Gudmundsson
* dgud/stdlib/rand/OTP-12586: stdlib: Document and add normal distributed random value function stdlib: Add new random functionality/module
2015-05-07stdlib: Strengthen ETS Maps testsBjörn-Egil Dahlberg
Ensure db_has_variable is tested for large Maps as well.
2015-05-07stdlib: Strengthen ETS Maps testsBjörn-Egil Dahlberg
Strengthen tests of large Maps in ETS.
2015-05-07stdlib: Strengthen ETS Maps testsBjörn-Egil Dahlberg
The additional tests in match_object focus on ordered sets.
2015-05-07stdlib: Refactor away ?line macroBjörn-Egil Dahlberg
2015-05-06Correct filename:split(<<"">>)Björn Gustavsson
filename:split("") returns [], while filename:split(<<"">>) returns [<<"/">>]. Since the support in the filename module for binary arguments is much more recent than support for strings, change filename:split(<<"">>) so that it returns []. Noticed-by: KOUCHANG
2015-04-30stdlib: Document and add normal distributed random value functionDan Gudmundsson
It is needed in various tests. It uses the Ziggurat algorithm, which is the fastest that I know.
2015-04-30stdlib: Silence some of qlc's warningsHans Bolinder
As long as the Erlang Compiler and qlc do not agree on the location of LC warnings, qlc's own warnings about patterns and filters that always fail have been silenced.
2015-04-30stdlib: Use module erl_annoHans Bolinder
2015-04-30stdlib: Add module erl_annoHans Bolinder
Introduce erl_anno, an abstraction of the second element of tokens and tuples in the abstract format. The convention that negative line numbers can be used for silencing compiler warnings will no longer work in OTP 19; instead the annotation 'generated' is to be used.
2015-04-29stdlib: Add new random functionality/moduleKenji Rikitake
The old random module contains an old algorithm which have flaws and the api requires the user to invoke seed and or checking if seed have been invoked, if a non constant seed is to be used. The api contains the following features: - The user can invoke rand:unform/[0|1] directly and get a non constant seeding. - The api is split in functional and non functional functions, i.e. usage of _s functions will not affect the process dictionary. - The api contains several algorithms with different characteristics and can be extended with new algorithms in the future. - Contains state of the art random number generators. - Default algorithm is taylor made for erlang to be fast on 64bits machines.
2015-04-22supervisor: Correct restart handlingBjörn Gustavsson
fbaa0bec replaced the use of now/0 with erlang:monotonic_time/1 but at the same time introduced a bug in inPeriod/3 so that it would always return 'true' (the subtraction Time - Now would always result in a non-positive number that would always be less than Period). The symptoms of the bug is that when a child has been restarted the maximum number of times allowed, the supervisor will terminate, regardless of how much time that elapses between the restarts. There was no test case that detected this problem. Add the missing test case to ensure that this bug stays killed. Reported-by: Rafał Studnicki
2015-04-16Merge branch 'bjorn/maps'Björn Gustavsson
* bjorn/maps: Document the new {badmap,Term} and {badkey,Key} exceptions Raise more descriptive error messages for failed map operations erl_term.h: Add is_not_map() macro Tigthen code for the i_get_map_elements/3 instruction Pre-compute hash values for the general get_map_elements instruction Teach the loader to pre-compute the hash value for single-key lookups Optimize use of i_get_map_element/4 beam_emu: Slightly optimize update_map_{assoc,exact} v3_codegen: Don't sort map keys in map creation/update beam_validator: No longer require strict literal term order Sort maps keys in the loader De-optimize the has_map_fields instructions erts/map_SUITE.erl: Add a test case that tests has_map_fields Fully evaluate is_map/1 for literals at load-time map_SUITE: Add tests of is_map/1 with literal maps Run a clone of map_SUITE without optimizations Remove the fail label operand of the new_map instruction Correct transformation of put_map_assoc to new_map Remove support for put_map_exact without a source map
2015-04-15Raise more descriptive error messages for failed map operationsBjörn Gustavsson
According to EEP-43 for maps, a 'badmap' exception should be generated when an attempt is made to update non-map term such as: <<>>#{a=>42} That was not implemented in the OTP 17. José Valim suggested that we should take the opportunity to improve the errors coming from map operations: http://erlang.org/pipermail/erlang-questions/2015-February/083588.html This commit implement better errors from map operations similar to his suggestion. When a map update operation (Map#{...}) or a BIF that expects a map is given a non-map term, the exception will be: {badmap,Term} This kind of exception is similar to the {badfun,Term} exception from operations that expect a fun. When a map operation requires a key that is not present in a map, the following exception will be raised: {badkey,Key} José Valim suggested that the exception should be {badkey,Key,Map}. We decided not to do that because the map could potentially be huge and cause problems if the error propagated through links to other processes. For BIFs, it could be argued that the exceptions could be simply 'badmap' and 'badkey', because the bad map and bad key can be found in the argument list for the BIF in the stack backtrace. However, for the map update operation (Map#{...}), the bad map or bad key will not be included in the stack backtrace, so that information must be included in the exception reason itself. For consistency, the BIFs should raise the same exceptions as update operation. If more than one key is missing, it is undefined which of keys that will be reported in the {badkey,Key} exception.
2015-04-13stdlib: Correct maps module exceptions upon errorsBjörn-Egil Dahlberg
Bad input to maps module function will now yield exceptions: * {badmap,NotMap} or, * badarg
2015-04-10Merge branch 'bjorn/stdlib/cuddle-with-tests'Björn Gustavsson
* bjorn/stdlib/cuddle-with-tests: Eliminate deprecated now/0 used as timestamp Eliminate use of now/0 for creating a unique filename Eliminate use of deprecated now/0 for measuring time Eliminate use of deprecated now/0 for random number generation Speed up timer_simple_SUITE:timer_perf/1 Speed up timer_SUITE Optimize gen_server_SUITE:hibernate/1 Optimize gen_event_SUITE:hibernate/1 Optimize gen_fsm_SUITE:hibernate/1 Optimize unicode_SUITE:ex_binaries_errors* test cases Optimize unicode_SUITE:binaries_errors/1 binary_module_SUITE: Remove unnecessary calls to the binref module Optimize binary_module:random_ref_comp/1 Optimize io_proto_SUITE:unicode_options_gen/1
2015-04-10Eliminate deprecated now/0 used as timestampBjörn Gustavsson
Rewrite the code to measure and print elapsed time instead of just printing timestamps for the start and stop of each operation.
2015-04-10Eliminate use of now/0 for creating a unique filenameBjörn Gustavsson
Use erlang:unique_integer/1 instead.
2015-04-10Eliminate use of deprecated now/0 for measuring timeBjörn Gustavsson
Use erlang:monotonic_time/1 instead of now/0.
2015-04-10Eliminate use of deprecated now/0 for random number generationBjörn Gustavsson
Use erlang:timestamp/0 instead now/0 when seeding the random number generator.
2015-04-10Speed up timer_simple_SUITE:timer_perf/1Björn Gustavsson
In big_test/1, there is 9 seconds sleep before spawning any timers. Why? Before the sleep nrev processes are started, but they are likely to finish running before the 9 seconds have elapsed. Since I see no reason at all for the sleep, I will remove it.