File 0816-erts-Fix-disable-of-MSACC.patch of Package erlang
From b1c1e3d2c2d0b9b44c25dc5e56a62b332b31843b Mon Sep 17 00:00:00 2001
From: Lukas Larsson <lukas@erlang.org>
Date: Mon, 20 Dec 2021 10:35:50 +0100
Subject: [PATCH 1/2] erts: Fix disable of MSACC
---
erts/emulator/beam/erl_msacc.c | 2 +-
erts/emulator/test/statistics_SUITE.erl | 11 +++++++++++
lib/runtime_tools/test/msacc_SUITE.erl | 13 ++++++++++++-
3 files changed, 24 insertions(+), 2 deletions(-)
diff --git a/erts/emulator/beam/erl_msacc.c b/erts/emulator/beam/erl_msacc.c
index 89fdaf77cd..db06688be7 100644
--- a/erts/emulator/beam/erl_msacc.c
+++ b/erts/emulator/beam/erl_msacc.c
@@ -42,7 +42,7 @@
#include "erl_msacc.h"
#include "erl_bif_table.h"
-#if ERTS_ENABLE_MSACC
+#ifdef ERTS_ENABLE_MSACC
static Eterm erts_msacc_gather_stats(ErtsMsAcc *msacc, ErtsHeapFactory *factory);
static void erts_msacc_reset(ErtsMsAcc *msacc);
diff --git a/erts/emulator/test/statistics_SUITE.erl b/erts/emulator/test/statistics_SUITE.erl
index 155ec28323..6aef3a29ed 100644
--- a/erts/emulator/test/statistics_SUITE.erl
+++ b/erts/emulator/test/statistics_SUITE.erl
@@ -23,6 +23,7 @@
%% Tests the statistics/1 bif.
-export([all/0, suite/0, groups/0,
+ init_per_testcase/2,
wall_clock_sanity/1,
wall_clock_zero_diff/1, wall_clock_update/1,
runtime_sanity/1,
@@ -61,6 +62,16 @@ groups() ->
[runtime_sanity, runtime_zero_diff, runtime_update, runtime_diff]},
{run_queue, [], [run_queue_one]}].
+init_per_testcase(msacc, Config) ->
+ try erlang:statistics(microstate_accounting) of
+ _ ->
+ Config
+ catch _:_ ->
+ {skip, "Microstate accouning not available"}
+ end;
+init_per_testcase(_, Config) ->
+ Config.
+
wall_clock_sanity(Config) when is_list(Config) ->
erlang:yield(),
{WallClock, _} = statistics(wall_clock),
diff --git a/lib/runtime_tools/test/msacc_SUITE.erl b/lib/runtime_tools/test/msacc_SUITE.erl
index 145a6d07fb..c9a48e466a 100644
--- a/lib/runtime_tools/test/msacc_SUITE.erl
+++ b/lib/runtime_tools/test/msacc_SUITE.erl
@@ -22,7 +22,7 @@
-include_lib("common_test/include/ct.hrl").
%% Test server callbacks
--export([suite/0, all/0]).
+-export([suite/0, all/0, init_per_suite/1, end_per_suite/1]).
%% Test cases
-export([
@@ -49,6 +49,17 @@ suite() -> [
{ct_hooks,[ts_install_cth]}
].
+init_per_suite(Config) ->
+ try erlang:statistics(microstate_accounting) of
+ _ ->
+ Config
+ catch _:_ ->
+ {skip, "Microstate accouning not available"}
+ end.
+
+end_per_suite(_Config) ->
+ ok.
+
%%--------------------------------------------------------------------
%% TEST CASES
%%--------------------------------------------------------------------
--
2.31.1