File 2245-bs_construct_SUITE-Correct-calculation-of-free-memor.patch of Package erlang

From 666de16fbea2e06b76e1850296ee42eda563a4c3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bj=C3=B6rn=20Gustavsson?= <bjorn@erlang.org>
Date: Wed, 24 May 2017 14:42:39 +0200
Subject: [PATCH] bs_construct_SUITE: Correct calculation of free memory

free_mem/0 returned the number of free Kb, but the caller
assumed that it was in Mb.

Also add another clause to further scale down the size of
the binaries created.
---
 erts/emulator/test/bs_construct_SUITE.erl | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/erts/emulator/test/bs_construct_SUITE.erl b/erts/emulator/test/bs_construct_SUITE.erl
index 95042ac80..ed03284a5 100644
--- a/erts/emulator/test/bs_construct_SUITE.erl
+++ b/erts/emulator/test/bs_construct_SUITE.erl
@@ -537,6 +537,8 @@ huge_binary(Config) when is_list(Config) ->
     ct:timetrap({seconds, 60}),
     16777216 = size(<<0:(id(1 bsl 26)),(-1):(id(1 bsl 26))>>),
     garbage_collect(),
+    FreeMem = free_mem(),
+    io:format("Free memory (Mb): ~p\n", [FreeMem]),
     {Shift,Return} = case free_mem() of
 			 undefined ->
 			     %% This test has to be inlined inside the case to
@@ -552,10 +554,14 @@ huge_binary(Config) when is_list(Config) ->
 			     garbage_collect(),
 			     id(<<0:((1 bsl 31)-1)>>),
 			     {31,"Limit huge binaries to 256 Mb"};
-			 _ ->
+			 Mb when Mb > 200 ->
 			     garbage_collect(),
 			     id(<<0:((1 bsl 30)-1)>>),
-			     {30,"Limit huge binary to 128 Mb"}
+			     {30,"Limit huge binary to 128 Mb"};
+			 _ ->
+			     garbage_collect(),
+			     id(<<0:((1 bsl 29)-1)>>),
+                             {29,"Limit huge binary to 64 Mb"}
 		     end,
     garbage_collect(),
     id(<<0:((1 bsl Shift)-1)>>),
@@ -567,13 +573,14 @@ huge_binary(Config) when is_list(Config) ->
 	Comment -> {comment, Comment}
     end.
 
+%% Return the amount of free memory in Mb.
 free_mem() ->
     {ok,Apps} = application:ensure_all_started(os_mon),
     Mem = memsup:get_system_memory_data(),
     [ok = application:stop(App)||App <- Apps],
     case proplists:get_value(free_memory,Mem) of
         undefined -> undefined;
-        Val -> Val div 1024
+        Val -> Val div (1024*1024)
     end.
 
 system_limit(Config) when is_list(Config) ->
-- 
2.13.0

openSUSE Build Service is sponsored by