Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:Ledest:erlang:19
erlang
0794-stdlib-Add-some-basic-pool-testcases.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0794-stdlib-Add-some-basic-pool-testcases.patch of Package erlang
From 8791443069a7b7010284174ca8696bdcc0873cec Mon Sep 17 00:00:00 2001 From: Lukas Larsson <lukas@erlang.org> Date: Mon, 21 Oct 2019 12:34:21 +0200 Subject: [PATCH 2/2] stdlib: Add some basic pool testcases --- lib/stdlib/test/Makefile | 1 + lib/stdlib/test/pool_SUITE.erl | 95 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 96 insertions(+) create mode 100644 lib/stdlib/test/pool_SUITE.erl diff --git a/lib/stdlib/test/Makefile b/lib/stdlib/test/Makefile index aca1ae2f01..7f7a0834ba 100644 --- a/lib/stdlib/test/Makefile +++ b/lib/stdlib/test/Makefile @@ -53,6 +53,7 @@ MODULES= \ lists_SUITE \ log_mf_h_SUITE \ ms_transform_SUITE \ + pool_SUITE \ proc_lib_SUITE \ proplists_SUITE \ qlc_SUITE \ diff --git a/lib/stdlib/test/pool_SUITE.erl b/lib/stdlib/test/pool_SUITE.erl new file mode 100644 index 0000000000..ead4cd58ca --- /dev/null +++ b/lib/stdlib/test/pool_SUITE.erl @@ -0,0 +1,95 @@ +%% +%% %CopyrightBegin% +%% +%% Copyright Ericsson AB 1996-2018. All Rights Reserved. +%% +%% Licensed under the Apache License, Version 2.0 (the "License"); +%% you may not use this file except in compliance with the License. +%% You may obtain a copy of the License at +%% +%% http://www.apache.org/licenses/LICENSE-2.0 +%% +%% Unless required by applicable law or agreed to in writing, software +%% distributed under the License is distributed on an "AS IS" BASIS, +%% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +%% See the License for the specific language governing permissions and +%% limitations under the License. +%% +%% %CopyrightEnd% +%% +-module(pool_SUITE). + +-export([all/0, suite/0,groups/0,init_per_suite/1, end_per_suite/1, + init_per_group/2,end_per_group/2]). +-export([basic/1, link_race/1, echo/1]). + +suite() -> [{ct_hooks,[{ts_install_cth,[{nodenames, 1}]}]}]. + +all() -> + [basic, link_race]. + +groups() -> + []. + +init_per_suite(Config) -> + Config. + +end_per_suite(_Config) -> + ok. + +init_per_group(_GroupName, Config) -> + Config. + +end_per_group(_GroupName, Config) -> + Config. + +basic(Config) -> + + {ok, Node, PoolNode} = init_pool(pool_SUITE_basic, basic, Config), + + Node = rpc:call(Node, pool, get_node, []), + PoolNode = rpc:call(Node, pool, get_node, []), + + do_echo(Node), + do_echo(Node), + + test_server:stop_node(Node), + ok. + +link_race(Config) -> + + {ok, Node, PoolNode} = init_pool(pool_SUITE_basic, basic, Config), + + Node = rpc:call(Node, pool, get_node, []), + PoolNode = rpc:call(Node, pool, get_node, []), + + rpc:call(Node, pool, pspawn_link, [erlang, is_atom, [?MODULE]]), + + test_server:stop_node(Node), + ok. + +do_echo(Node) -> + EchoPid = rpc:call(Node, pool, pspawn, [?MODULE, echo, [self()]]), + Ref = EchoPid ! make_ref(), + receive Ref -> ok after 1000 -> ct:fail(receive M -> M after 0 -> timeout end) end. + +echo(Parent) -> + receive Msg -> + Parent ! Msg + end. + + +init_pool(Proxy, Name, Config) -> + PrivDir = proplists:get_value(priv_dir, Config), + [Slave] = proplists:get_value(nodenames, Config), + {ok, Node} = test_server:start_node(Proxy, slave, []), + {ok, Hostname} = inet:gethostname(), + file:write_file(filename:join(PrivDir,".hosts.erlang"),"'"++Hostname++"'.\n"), + ok = rpc:call(Node, file, set_cwd, [PrivDir]), + + [PoolNode] = rpc:call(Node, pool, start, [Name]), + + Nodes = rpc:call(Node, pool, get_nodes, []), + [rpc:call(N, code, add_patha, [filename:dirname(code:which(?MODULE))]) || N <- Nodes], + + {ok, Node, PoolNode}. -- 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