aboutsummaryrefslogtreecommitdiffstats
path: root/lib/stdlib/test/gen_statem_SUITE.erl
AgeCommit message (Collapse)Author
2018-11-16Print sys:log in error reportRaimo Niskanen
2018-09-10Clean up and optimize code and docRaimo Niskanen
2018-04-12Fix timeout parsing and doc feedbackRaimo Niskanen
2018-03-22Merge branch 'maint'Raimo Niskanen
* maint: Updated OTP version Update release notes Update version numbers ssh: Fix bad spec for double_algs() in ssh.hrl Test event insert from init Fix init to allow all actions Conflicts: OTP_VERSION
2018-03-17Test event insert from initRaimo Niskanen
2018-02-06stdlib: Do not call erlang:get_stacktrace()Hans Bolinder
2018-01-16Remove test suite warningRaimo Niskanen
2017-05-02Rolled back loop_receive function. HibernateAfterTimeout timeout used even ↵Anton N Ryabkov
in case of active timers exists. Added unit tests for hibernate_after functionality combined with gen_statem timers.
2017-05-02"auto_hibernate_timeout" option renamed to "hibernate_after".Anton N Ryabkov
It was done because "hibernate_after" option already used in ssl for the same reason.
2017-05-02Added support of auto_hibernate_timeout option for gen_statem.Anton N Ryabkov
2017-04-28Merge branch 'raimo/gen_statem-dev'Raimo Niskanen
OTP-14531 Generic time-outs in gen_statem Conflicts: lib/stdlib/test/erl_internal_SUITE.erl
2017-04-21stdlib: Make gen_statem callbacks optionalZandra Norman
2017-04-21Implement {timeout,Name} timeoutsRaimo Niskanen
2017-04-20Implement erlang:start_timer optsRaimo Niskanen
2017-03-03Merge branch 'maint'Raimo Niskanen
2017-01-30Implement repeat_state and repeat_state_and_dataRaimo Niskanen
2017-01-23Correct type checking function for action {next_event,,}Raimo Niskanen
2016-11-08Merge branch 'maint'Raimo Niskanen
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...
2016-10-12Implement state timeoutsRaimo Niskanen
2016-09-30Change state entry events into state enter callsRaimo Niskanen
2016-09-16Implement state entry eventsRaimo Niskanen
2016-09-16Implement call/3 dirty_timeoutRaimo Niskanen
2016-08-17Clarify error valuesRaimo Niskanen
2016-07-27Rewrite gen_statem TCs for M:callback_mode/0Raimo Niskanen
2016-04-27Fix callback mode after code change not usedRaimo Niskanen
2016-04-21Modify code_change/4 to return CallbackModeRaimo Niskanen
Also move check of non-atom states in callback mode state_functions to where the state function is called. This gives homogenous diagnostics for state functions, code_change/4 and system_replace_state StateFun. Irregularities pointed out by James Fish.
2016-04-12Fix missing short forms for event timeoutRaimo Niskanen
2016-03-02Change code_change/4 to {ok,State,Data}Raimo Niskanen
2016-03-02Fixup sharpened test suiteRaimo Niskanen
2016-02-29Sharpen test suiteRaimo Niskanen
2016-02-29Remove the remove_event action and all alikeRaimo Niskanen
Removing events from the internal queues is not necessary with the choosen semantics of the event queue vs. hibernate. In an early implementation it was possible by combining hibernate with e.g. postpone to get an event in the queue that you would not see before processing the postponed event, and therefore should you decide to cancel a timer it was essential to be able to remove that unseen event from the queue. With the choosen semantics you will have to postpone or generate an event for it to be in the event queue, and if you e.g. postpone a timeout event and then cancel the timer it is your mistake. You have seen the event and should know better than to try to cancel the timer. So, the actions: remove_event, cancel_timer, demonitor and unlink are now removed. There have also been some cleanup of the timer handling code.
2016-02-26Test the order for multiple next_eventRaimo Niskanen
2016-02-26ct:ify test suiteRaimo Niskanen
2016-02-26Allow actions without containing listRaimo Niskanen
Type check atom state as early as possible
2016-02-26Implement 'keep_state_and_data' and 'stop'Raimo Niskanen
2016-02-25Remove {keep_state_and_data}Raimo Niskanen
Correct typo reported by Luïc Hoguin.
2016-02-24Ditch PrevStateRaimo Niskanen
StateName/4 -> StateName/3 handle_event/5 -> handle_event/4
2016-02-24Ditch State so StateName/5 -> StateName/4Raimo Niskanen
2016-02-23Add {stop_and_reply,Reason,Replies [,Data])Raimo Niskanen
Cleanup some error handling
2016-02-22Make callback_option() mandatoryRaimo Niskanen
2016-02-19Update terminology to data(), transition_op(), etcRaimo Niskanen
2016-02-19Add reply([Reply])Raimo Niskanen
2016-02-19Add {keep_state,...} and {keep_state_and_data,...}Raimo Niskanen
2016-02-18Write some convenience helpersRaimo Niskanen
2016-02-18Rename retry -> postponeRaimo Niskanen
2016-02-18Rename insert_event -> next_eventRaimo Niskanen
2016-02-18Implement option callback_modeRaimo Niskanen
2016-02-16Change to {next_state,...} and {stop,...} return formatRaimo Niskanen