Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:Ledest:erlang:19
erlang
0681-Fix-the-test-case-cpu_sup_SUITE-util_value...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0681-Fix-the-test-case-cpu_sup_SUITE-util_values.patch of Package erlang
From 8ff68249905b367b4b7179aa4c600511bfec5b87 Mon Sep 17 00:00:00 2001 From: Kjell Winblad <kjellwinblad@gmail.com> Date: Wed, 29 May 2019 10:50:24 +0200 Subject: [PATCH] Fix the test case cpu_sup_SUITE:util_values The message signaling that the spinning processes had stopped was previously sent too early. --- lib/os_mon/test/cpu_sup_SUITE.erl | 47 ++++++++++++++++++++++++--------------- 1 file changed, 29 insertions(+), 18 deletions(-) diff --git a/lib/os_mon/test/cpu_sup_SUITE.erl b/lib/os_mon/test/cpu_sup_SUITE.erl index 3a8346ac44..7a8065c591 100644 --- a/lib/os_mon/test/cpu_sup_SUITE.erl +++ b/lib/os_mon/test/cpu_sup_SUITE.erl @@ -155,45 +155,56 @@ tiny_diff(A, B) -> -define(SPIN_TIME, 1000). +spinner(Parent) -> + receive + stop -> Parent ! stopped + after 0 -> spinner(Parent) + end. + %% Test utilization values util_values(Config) when is_list(Config) -> - + NrOfProcessors = + case erlang:system_info(logical_processors_available) of + unknown -> 2; + X -> X + end, Tester = self(), Ref = make_ref(), - Loop = fun (L) -> L(L) end, Spinner = fun () -> - NrOfProcesses = 100, - Loopers = [spawn_link(fun () -> Loop(Loop) end) - || _ <- lists:seq(1,NrOfProcesses)], + Spinner = self(), + NrOfProcesses = NrOfProcessors, + Loopers = + [spawn_link(fun () -> spinner(Spinner) end) + || _ <- lists:seq(1,NrOfProcesses)], receive after ?SPIN_TIME -> ok end, - [(fun () -> - unlink(Looper), - exit(Looper, kill), - Tester ! Ref - end)() - || Looper <- Loopers] - + [begin + Looper ! stop, + receive stopped -> ok end + end + || Looper <- Loopers], + Tester ! Ref end, + Spin = fun () -> + spawn_link(Spinner), + receive Ref -> ok end + end, cpu_sup:util(), receive after ?SPIN_TIME -> ok end, LowUtil0 = cpu_sup:util(), - NrOfProcessors = erlang:system_info(logical_processors_available), case LowUtil0 of - U when U > ((100.0 / NrOfProcessors) * 0.5) -> + U when U > ((100.0 / NrOfProcessors) * 0.33) -> %% We cannot run this test if the system is doing other %% work at the same time as the result will be unreliable {skip, io_lib:format("CPU utilization was too high (~f%)", [LowUtil0])}; _ -> cpu_sup:util(), - spawn_link(Spinner), - receive Ref -> ok end, + Spin(), HighUtil1 = cpu_sup:util(), receive after ?SPIN_TIME -> ok end, LowUtil1 = cpu_sup:util(), - spawn_link(Spinner), - receive Ref -> ok end, + Spin(), HighUtil2 = cpu_sup:util(), receive after ?SPIN_TIME -> ok end, -- 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