Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:Ledest:erlang:19
erlang
0134-application_master-Test-that-stop-callback...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0134-application_master-Test-that-stop-callback-is-called.patch of Package erlang
From 57fd443ea118afe1da2b1eac9a3d5340672136ca Mon Sep 17 00:00:00 2001 From: Rickard Green <rickard@erlang.org> Date: Mon, 9 Mar 2020 14:30:44 +0100 Subject: [PATCH 2/2] application_master: Test that stop callback is called also when application master dies --- lib/kernel/test/application_SUITE.erl | 23 ++++++++++++++++++++--- lib/kernel/test/ch_sup.erl | 8 +++++++- 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/lib/kernel/test/application_SUITE.erl b/lib/kernel/test/application_SUITE.erl index 1ab554db7c..916eba31a6 100644 --- a/lib/kernel/test/application_SUITE.erl +++ b/lib/kernel/test/application_SUITE.erl @@ -32,7 +32,7 @@ otp_5606/1, start_phases/1, get_key/1, get_env/1, permit_false_start_local/1, permit_false_start_dist/1, script_start/1, - nodedown_start/1, init2973/0, loop2973/0, loop5606/1]). + nodedown_start/1, init2973/0, loop2973/0, loop5606/1, otp_16504/1]). -export([config_change/1, persistent_env/1, distr_changed_tc1/1, distr_changed_tc2/1, @@ -62,7 +62,7 @@ groups() -> [{reported_bugs, [], [otp_1586, otp_2078, otp_2012, otp_2718, otp_2973, otp_3002, otp_3184, otp_4066, otp_4227, otp_5363, - otp_5606]}, + otp_5606, otp_16504]}, {distr_changed, [], [distr_changed_tc1, distr_changed_tc2]}]. @@ -1565,7 +1565,24 @@ loop5606(Pid) -> Res = application:start(app1), Pid ! {self(), Res} end. - + +otp_16504(Config) when is_list(Config) -> + {ok, Fd} = file:open("app1.app", [write]), + w_app1(Fd), + file:close(Fd), + register(test_application_stop_called, self()), + + ok = application:ensure_started(app1), + Master = application_controller:get_master(app1), + exit(Master, kill), + receive + {stop_called, _} -> + ok + after 3000 -> + ct:fail(stop_not_called) + end, + ok. + %% Tests get_env/* functions. get_env(Conf) when is_list(Conf) -> {ok, _} = application:get_env(kernel, error_logger), diff --git a/lib/kernel/test/ch_sup.erl b/lib/kernel/test/ch_sup.erl index 1d7f17fc95..f0ec2d1e72 100644 --- a/lib/kernel/test/ch_sup.erl +++ b/lib/kernel/test/ch_sup.erl @@ -32,7 +32,13 @@ start(_Type, {_AppN, Low, High}) -> lists:seq(Low, High)), {ok, P, []}. -stop(_) -> ok. +stop(State) -> + case whereis(test_application_stop_called) of + undefined -> + ok; + Pid -> + Pid ! {stop_called, State} + end. start_phase(_Phase, _Type, _Args) -> ok. -- 2.16.4
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor