summaryrefslogtreecommitdiff
path: root/lib/kernel/test/esock_misc/esock_iow_lib.erl
diff options
context:
space:
mode:
Diffstat (limited to 'lib/kernel/test/esock_misc/esock_iow_lib.erl')
-rw-r--r--lib/kernel/test/esock_misc/esock_iow_lib.erl123
1 files changed, 123 insertions, 0 deletions
diff --git a/lib/kernel/test/esock_misc/esock_iow_lib.erl b/lib/kernel/test/esock_misc/esock_iow_lib.erl
new file mode 100644
index 0000000000..6fc1365dca
--- /dev/null
+++ b/lib/kernel/test/esock_misc/esock_iow_lib.erl
@@ -0,0 +1,123 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2020-2020. 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(esock_iow_lib).
+
+-export([
+ format_counters/1, format_counters/2, format_counters/3,
+ iprint/1, iprint/2,
+ eprint/1, eprint/2,
+ f/2,
+ fts/0, fts/1
+ ]).
+
+
+%% ---------------------------------------------------------------------
+
+format_counters(Counters) ->
+ format_counters(traffic, Counters).
+
+format_counters(Type, Counters) when (Type =:= listen) orelse (Type =:= traffic) ->
+ format_counters(" ", Type, Counters).
+
+format_counters(Prefix, traffic, Counters) ->
+ ReadByte = proplists:get_value(read_byte, Counters, -1),
+ ReadFails = proplists:get_value(read_fails, Counters, -1),
+ ReadPkg = proplists:get_value(read_pkg, Counters, -1),
+ ReadPkgMax = proplists:get_value(read_pkg_max, Counters, -1),
+ ReadTries = proplists:get_value(read_tries, Counters, -1),
+ ReadWaits = proplists:get_value(read_waits, Counters, -1),
+ WriteByte = proplists:get_value(write_byte, Counters, -1),
+ WriteFails = proplists:get_value(write_fails, Counters, -1),
+ WritePkg = proplists:get_value(write_pkg, Counters, -1),
+ WritePkgMax = proplists:get_value(write_pkg_max, Counters, -1),
+ WriteTries = proplists:get_value(write_tries, Counters, -1),
+ WriteWaits = proplists:get_value(write_waits, Counters, -1),
+ f("~n~sNumber Of Read Bytes: ~p"
+ "~n~sNumber Of Read Fails: ~p"
+ "~n~sNumber Of Read Packages: ~p"
+ "~n~sNumber Of Read Tries: ~p"
+ "~n~sNumber Of Read Waits: ~p"
+ "~n~sMax Read Package Size: ~p"
+ "~n~sNumber Of Write Bytes: ~p"
+ "~n~sNumber Of Write Fails: ~p"
+ "~n~sNumber Of Write Packages: ~p"
+ "~n~sNumber Of Write Tries: ~p"
+ "~n~sNumber Of Write Waits: ~p"
+ "~n~sMax Write Package Size: ~p",
+ [Prefix, ReadByte,
+ Prefix, ReadFails,
+ Prefix, ReadPkg,
+ Prefix, ReadTries,
+ Prefix, ReadWaits,
+ Prefix, ReadPkgMax,
+ Prefix, WriteByte,
+ Prefix, WriteFails,
+ Prefix, WritePkg,
+ Prefix, WriteTries,
+ Prefix, WriteWaits,
+ Prefix, WritePkgMax]);
+
+format_counters(Prefix, listen, Counters) ->
+ AccSuccess = proplists:get_value(acc_success, Counters, -1),
+ AccFails = proplists:get_value(acc_fails, Counters, -1),
+ AccTries = proplists:get_value(acc_tries, Counters, -1),
+ AccWaits = proplists:get_value(acc_waits, Counters, -1),
+ f("~n~sNumber Of Successful Accepts: ~p"
+ "~n~sNumber Of Failed Accepts: ~p"
+ "~n~sNumber Of Accept Attempts: ~p"
+ "~n~sNumber Of Accept Waits: ~p",
+ [Prefix, AccSuccess,
+ Prefix, AccFails,
+ Prefix, AccTries,
+ Prefix, AccWaits]).
+
+%% ---------------------------------------------------------------------
+
+iprint(F) ->
+ iprint(F, []).
+
+iprint(F, A) ->
+ print("INFO", F, A).
+
+eprint(F) ->
+ iprint(F, []).
+
+eprint(F, A) ->
+ print("ERROR", F, A).
+
+print(Pre, F, A) ->
+ io:format("*** ~s *** ~s ~n" ++ F ++ "~n~n", [Pre, fts() | A]).
+
+
+f(F, A) ->
+ lists:flatten(io_lib:format(F, A)).
+
+
+ts() ->
+ os:timestamp().
+
+fts() ->
+ fts(ts()).
+
+fts({_N1, _N2, N3} = TS) ->
+ {_Date, Time} = calendar:now_to_local_time(TS),
+ {Hour,Min,Sec} = Time,
+ f("~.2.0w:~.2.0w:~.2.0w.4~w", [Hour, Min, Sec, round(N3/1000)]).