aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjörn-Egil Dahlberg <[email protected]>2016-03-09 16:27:27 +0100
committerBjörn-Egil Dahlberg <[email protected]>2016-03-11 15:43:11 +0100
commit88ca325fa9fcc0b8953b389b96d1ed4666553ab6 (patch)
tree89a92e3712b597e87b2ba85fe1e5755a62c858b5
parent9b6b82abfaae479849902ba60c4c54a526840a03 (diff)
downloadotp-88ca325fa9fcc0b8953b389b96d1ed4666553ab6.tar.gz
otp-88ca325fa9fcc0b8953b389b96d1ed4666553ab6.tar.bz2
otp-88ca325fa9fcc0b8953b389b96d1ed4666553ab6.zip
Replace use of test_server:format/2 with io:format/2
-rw-r--r--erts/emulator/test/alloc_SUITE.erl2
-rw-r--r--erts/emulator/test/beam_SUITE.erl2
-rw-r--r--erts/emulator/test/distribution_SUITE.erl12
-rw-r--r--erts/emulator/test/driver_SUITE.erl26
-rw-r--r--erts/emulator/test/erl_drv_thread_SUITE.erl2
-rw-r--r--erts/emulator/test/erl_link_SUITE.erl4
-rw-r--r--erts/emulator/test/match_spec_SUITE.erl14
-rw-r--r--erts/emulator/test/mtx_SUITE.erl10
-rw-r--r--erts/emulator/test/nif_SUITE.erl2
-rw-r--r--erts/emulator/test/node_container_SUITE.erl26
-rw-r--r--erts/emulator/test/port_SUITE.erl58
-rw-r--r--erts/emulator/test/process_SUITE.erl24
-rw-r--r--erts/emulator/test/scheduler_SUITE.erl26
-rw-r--r--erts/emulator/test/smoke_test_SUITE.erl6
-rw-r--r--erts/emulator/test/statistics_SUITE.erl6
-rw-r--r--erts/emulator/test/system_info_SUITE.erl2
-rw-r--r--erts/emulator/test/time_SUITE.erl9
-rw-r--r--erts/emulator/test/timer_bif_SUITE.erl2
-rw-r--r--erts/emulator/test/trace_SUITE.erl8
-rw-r--r--erts/emulator/test/z_SUITE.erl10
20 files changed, 124 insertions, 127 deletions
diff --git a/erts/emulator/test/alloc_SUITE.erl b/erts/emulator/test/alloc_SUITE.erl
index 6ee2f98884..81b52525e3 100644
--- a/erts/emulator/test/alloc_SUITE.erl
+++ b/erts/emulator/test/alloc_SUITE.erl
@@ -315,7 +315,7 @@ repeat_while_loop(Fun, TRef, I) ->
flush_log() ->
receive
{print, Str} ->
- ?t:format("~s", [Str]),
+ io:format("~s", [Str]),
flush_log()
after 0 ->
ok
diff --git a/erts/emulator/test/beam_SUITE.erl b/erts/emulator/test/beam_SUITE.erl
index d3180a40cf..d2b234ae07 100644
--- a/erts/emulator/test/beam_SUITE.erl
+++ b/erts/emulator/test/beam_SUITE.erl
@@ -64,7 +64,7 @@ apply_last(Config) when is_list(Config) ->
ct:fail("applied/2 timed out.")
end,
Pid ! die,
- ?t:format("Size: ~p~n", [Size]),
+ io:format("Size: ~p~n", [Size]),
if
Size < 700 ->
ok;
diff --git a/erts/emulator/test/distribution_SUITE.erl b/erts/emulator/test/distribution_SUITE.erl
index fd47b6b235..1425276544 100644
--- a/erts/emulator/test/distribution_SUITE.erl
+++ b/erts/emulator/test/distribution_SUITE.erl
@@ -462,12 +462,12 @@ do_busy_test(Node, Fun) ->
receive after 100 -> ok end,
Pinfo = process_info(P, [status, current_function]),
unmake_busy(Busy),
- ?t:format("~p : ~p~n", [P, Pinfo]),
+ io:format("~p : ~p~n", [P, Pinfo]),
case Pinfo of
undefined ->
receive
{'DOWN', M, process, P, Reason} ->
- ?t:format("~p died with exit reason ~p~n", [P, Reason])
+ io:format("~p died with exit reason ~p~n", [P, Reason])
end,
ct:fail(premature_death);
_ ->
@@ -477,7 +477,7 @@ do_busy_test(Node, Fun) ->
{current_function, {erlang, bif_return_trap, _}}] = Pinfo,
receive
{'DOWN', M, process, P, Reason} ->
- ?t:format("~p died with exit reason ~p~n", [P, Reason]),
+ io:format("~p died with exit reason ~p~n", [P, Reason]),
normal = Reason
end
end.
@@ -2071,7 +2071,7 @@ node_monitor(Master) ->
Master ! {nodeup, node(), Node}
end,
Nodes0),
- ?t:format("~p ~p: ~p~n", [node(), erlang:system_time(micro_seconds), Nodes0]),
+ io:format("~p ~p: ~p~n", [node(), erlang:system_time(micro_seconds), Nodes0]),
node_monitor_loop(Master);
false ->
net_kernel:monitor_nodes(false, Opts),
@@ -2092,7 +2092,7 @@ node_monitor_loop(Master) ->
receive
{nodeup, Node, _InfoList} = Msg ->
Master ! {nodeup, node(), Node},
- ?t:format("~p ~p: ~p~n", [node(), erlang:system_time(micro_seconds), Msg]),
+ io:format("~p ~p: ~p~n", [node(), erlang:system_time(micro_seconds), Msg]),
node_monitor_loop(Master);
{nodedown, Node, InfoList} = Msg ->
Reason = case lists:keysearch(nodedown_reason, 1, InfoList) of
@@ -2100,7 +2100,7 @@ node_monitor_loop(Master) ->
_ -> undefined
end,
Master ! {nodedown, node(), Node, Reason},
- ?t:format("~p ~p: ~p~n", [node(), erlang:system_time(micro_seconds), Msg]),
+ io:format("~p ~p: ~p~n", [node(), erlang:system_time(micro_seconds), Msg]),
node_monitor_loop(Master)
end.
diff --git a/erts/emulator/test/driver_SUITE.erl b/erts/emulator/test/driver_SUITE.erl
index b00ceaed50..3da99b4090 100644
--- a/erts/emulator/test/driver_SUITE.erl
+++ b/erts/emulator/test/driver_SUITE.erl
@@ -763,10 +763,10 @@ io_ready_exit(Config) when is_list(Config) ->
{'EXIT', Port, Reason} ->
?line case Reason of
ready_output_driver_failure ->
- ?t:format("Exited in output_ready()~n"),
+ io:format("Exited in output_ready()~n"),
?line ok;
ready_input_driver_failure ->
- ?t:format("Exited in input_ready()~n"),
+ io:format("Exited in input_ready()~n"),
?line ok;
Error -> ?line ct:fail(Error)
end
@@ -908,7 +908,7 @@ chkio_test_init(Config) when is_list(Config) ->
?line ChkIo = get_stable_check_io_info(),
?line case catch lists:keysearch(name, 1, ChkIo) of
{value, {name, erts_poll}} ->
- ?line ?t:format("Before test: ~p~n", [ChkIo]),
+ ?line io:format("Before test: ~p~n", [ChkIo]),
?line Path = ?config(data_dir, Config),
?line erl_ddll:start(),
?line ok = load_driver(Path, 'chkio_drv'),
@@ -925,7 +925,7 @@ chkio_test_fini({chkio_test_result, Res, Before}) ->
?line ok = erl_ddll:unload_driver('chkio_drv'),
?line ok = erl_ddll:stop(),
?line After = get_stable_check_io_info(),
- ?line ?t:format("After test: ~p~n", [After]),
+ ?line io:format("After test: ~p~n", [After]),
?line verify_chkio_state(Before, After),
?line Res.
@@ -972,12 +972,12 @@ chkio_test({erts_poll_info, Before},
?line During = erlang:system_info(check_io),
?line erlang:display(During),
?line 0 = element(1, erts_debug:get_internal_state(check_io_debug)),
- ?line ?t:format("During test: ~p~n", [During]),
+ ?line io:format("During test: ~p~n", [During]),
?line chk_chkio_port(Port),
?line case erlang:port_control(Port, ?CHKIO_STOP, "") of
Res when is_list(Res) ->
?line chk_chkio_port(Port),
- ?line ?t:format("~s", [Res]),
+ ?line io:format("~s", [Res]),
?line close_chkio_port(Port),
?line Res,
?line case Res of
@@ -1119,8 +1119,8 @@ driver_system_info_test(Config, Name) ->
?line ok.
check_driver_system_info_result(Result) ->
- ?line ?t:format("All names: ~p~n", [?EXPECTED_SYSTEM_INFO_NAMES]),
- ?line ?t:format("Result: ~p~n", [Result]),
+ ?line io:format("All names: ~p~n", [?EXPECTED_SYSTEM_INFO_NAMES]),
+ ?line io:format("Result: ~p~n", [Result]),
?line {[], Ns, DDVSN} = chk_sis(lists:map(fun (Str) ->
string:tokens(Str, "=")
end,
@@ -1828,9 +1828,9 @@ thread_mseg_alloc_cache_clean(Config) when is_list(Config) ->
?line ok = load_driver(Path, DrvName),
?line Port = open_port({spawn, DrvName}, []),
?line CCI = 1000,
- ?line ?t:format("CCI = ~p~n", [CCI]),
+ ?line io:format("CCI = ~p~n", [CCI]),
?line CCC = mseg_alloc_ccc(),
- ?line ?t:format("CCC = ~p~n", [CCC]),
+ ?line io:format("CCC = ~p~n", [CCC]),
?line thread_mseg_alloc_cache_clean_test(Port,
10,
CCI,
@@ -1903,7 +1903,7 @@ thread_mseg_alloc_cache_clean_test(Port, N, CCI, Size) ->
?line "ok" = erlang:port_control(Port, 0, integer_to_list(Size)),
?line receive after CCI+500 -> ok end,
?line CCC = mseg_alloc_ccc(),
- ?line ?t:format("CCC = ~p~n", [CCC]),
+ ?line io:format("CCC = ~p~n", [CCC]),
?line true = CCC > OCCC,
?line thread_mseg_alloc_cache_clean_test(Port, N-1, CCI, Size).
@@ -2086,7 +2086,7 @@ thr_msg_blast(Config) when is_list(Config) ->
false ->
case erlang:system_info(lock_checking) of
true ->
- ?t:format("~p:~p: Ignore bad sched count due to "
+ io:format("~p:~p: Ignore bad sched count due to "
"lock checking~n",
[?MODULE,?LINE]);
false ->
@@ -2338,7 +2338,7 @@ count_pp_sched_stop(Ps) ->
PNs = lists:map(fun (P) -> {P, 0} end, Ps),
receive {trace_delivered, all, Td} -> ok end,
Res = count_proc_sched(Ps, PNs),
- ?t:format("Scheduling counts: ~p~n", [Res]),
+ io:format("Scheduling counts: ~p~n", [Res]),
erlang:display({scheduling_counts, Res}),
Res.
diff --git a/erts/emulator/test/erl_drv_thread_SUITE.erl b/erts/emulator/test/erl_drv_thread_SUITE.erl
index 3497760515..b0ac1c703c 100644
--- a/erts/emulator/test/erl_drv_thread_SUITE.erl
+++ b/erts/emulator/test/erl_drv_thread_SUITE.erl
@@ -103,7 +103,7 @@ run_drv_case(Config, CaseName, Command, TimeTrap) ->
receive_drv_result(Port, CaseName) ->
?line receive
{print, Port, CaseName, Str} ->
- ?line ?t:format("~s", [Str]),
+ ?line io:format("~s", [Str]),
?line receive_drv_result(Port, CaseName);
{'EXIT', Port, Error} ->
?line ct:fail(Error);
diff --git a/erts/emulator/test/erl_link_SUITE.erl b/erts/emulator/test/erl_link_SUITE.erl
index 62ae83f9e2..2a59ca8e99 100644
--- a/erts/emulator/test/erl_link_SUITE.erl
+++ b/erts/emulator/test/erl_link_SUITE.erl
@@ -507,7 +507,7 @@ otp_7946(Config) when is_list(Config) ->
end),
?line receive
{'DOWN', LMon, process, Linker, Reason} ->
- ?line ?t:format("Reason=~p~n", [Reason]),
+ ?line io:format("Reason=~p~n", [Reason]),
?line Reason = noconnection
end.
@@ -603,7 +603,7 @@ suspend_on_busy_test(Node, Doing, Fun) ->
receive after 100 -> ok end,
Info = process_info(Tester, [status, current_function]),
unmake_busy(Busy),
- ?t:format("~p doing ~s: ~p~n", [Tester, Doing, Info]),
+ io:format("~p doing ~s: ~p~n", [Tester, Doing, Info]),
Tester ! {Done, Info}
end),
receive DoIt -> ok end,
diff --git a/erts/emulator/test/match_spec_SUITE.erl b/erts/emulator/test/match_spec_SUITE.erl
index 1e8bba99af..0e45ebf953 100644
--- a/erts/emulator/test/match_spec_SUITE.erl
+++ b/erts/emulator/test/match_spec_SUITE.erl
@@ -989,13 +989,13 @@ collect(P, TMs) ->
collect([]) ->
receive
M ->
- ?t:format("Got unexpected: ~p~n", [M]),
+ io:format("Got unexpected: ~p~n", [M]),
flush({got_unexpected,M})
after 17 ->
ok
end;
collect([TM | TMs]) ->
- ?t:format( "Expecting: ~p~n", [TM]),
+ io:format( "Expecting: ~p~n", [TM]),
receive
M0 ->
M = case element(1, M0) of
@@ -1008,20 +1008,20 @@ collect([TM | TMs]) ->
true ->
case (catch TM(M)) of
true ->
- ?t:format("Got: ~p~n", [M]),
+ io:format("Got: ~p~n", [M]),
collect(TMs);
_ ->
- ?t:format("Got unexpected: ~p~n", [M]),
+ io:format("Got unexpected: ~p~n", [M]),
flush({got_unexpected,M})
end;
false ->
case M of
TM ->
- ?t:format("Got: ~p~n", [M]),
+ io:format("Got: ~p~n", [M]),
collect(TMs);
_ ->
- ?t:format("Got unexpected: ~p~n", [M]),
+ io:format("Got unexpected: ~p~n", [M]),
flush({got_unexpected,M})
end
end
@@ -1030,7 +1030,7 @@ collect([TM | TMs]) ->
flush(Reason) ->
receive
M ->
- ?t:format("In queue: ~p~n", [M]),
+ io:format("In queue: ~p~n", [M]),
flush(Reason)
after 17 ->
ct:fail(Reason)
diff --git a/erts/emulator/test/mtx_SUITE.erl b/erts/emulator/test/mtx_SUITE.erl
index c7c043d8e7..9f0c3bdad0 100644
--- a/erts/emulator/test/mtx_SUITE.erl
+++ b/erts/emulator/test/mtx_SUITE.erl
@@ -115,7 +115,7 @@ long_rwlock(Config) when is_list(Config) ->
{_, RunTime} = statistics(runtime),
%% A very short run time is expected, since
%% threads in the test mostly wait
- ?t:format("RunTime=~p~n", [RunTime]),
+ io:format("RunTime=~p~n", [RunTime]),
?line true = RunTime < 400,
?line RunTimeStr = "Run-time during test was "++integer_to_list(RunTime)++" ms.",
case LLRes of
@@ -209,7 +209,7 @@ hammer_sched_rwlock_test(FreqRead, LockCheck, Blocking, WaitLocked, WaitUnlocked
false -> WaitLocked*250
end))
div handicap()),
- ?t:format("NoLockOps=~p~n", [NoLockOps]),
+ io:format("NoLockOps=~p~n", [NoLockOps]),
Sleep = case Blocking of
true -> NoLockOps;
false -> NoLockOps div 10
@@ -274,7 +274,7 @@ hammer_sched_rwlock_test(FreqRead, LockCheck, Blocking, WaitLocked, WaitUnlocked
{false, _} -> ok;
_ ->
{_, RunTime} = statistics(runtime),
- ?t:format("RunTime=~p~n", [RunTime]),
+ io:format("RunTime=~p~n", [RunTime]),
?line true = RunTime < 700,
{comment,
"Run-time during test was "
@@ -332,9 +332,9 @@ hammer_ets_rwlock(Config) when is_list(Config) ->
3 -> {2000, 50};
_ -> {200, 50}
end,
- ?t:format("Procs=~p~nOps=~p~n", [Procs, Ops]),
+ io:format("Procs=~p~nOps=~p~n", [Procs, Ops]),
lists:foreach(fun (XOpts) ->
- ?t:format("Running with extra opts: ~p", [XOpts]),
+ io:format("Running with extra opts: ~p", [XOpts]),
hammer_ets_rwlock_test(XOpts, true, 2, Ops,
Procs, false)
end,
diff --git a/erts/emulator/test/nif_SUITE.erl b/erts/emulator/test/nif_SUITE.erl
index 05c393e65f..ff54006643 100644
--- a/erts/emulator/test/nif_SUITE.erl
+++ b/erts/emulator/test/nif_SUITE.erl
@@ -309,7 +309,7 @@ eq_cmp(A,B) ->
eq_cmp_do({A,B},{A,B}).
eq_cmp_do(A,B) ->
- %%?t:format("compare ~p and ~p\n",[A,B]),
+ %%io:format("compare ~p and ~p\n",[A,B]),
Eq = (A =:= B),
?line Eq = is_identical(A,B),
?line Cmp = if
diff --git a/erts/emulator/test/node_container_SUITE.erl b/erts/emulator/test/node_container_SUITE.erl
index 3bf1e207de..b95a59f2da 100644
--- a/erts/emulator/test/node_container_SUITE.erl
+++ b/erts/emulator/test/node_container_SUITE.erl
@@ -411,12 +411,12 @@ node_table_gc(Config) when is_list(Config) ->
erts_debug:set_internal_state(available_internal_state, true),
erts_debug:set_internal_state(node_tab_delayed_delete, 0),
?line PreKnown = nodes(known),
- ?line ?t:format("PreKnown = ~p~n", [PreKnown]),
+ ?line io:format("PreKnown = ~p~n", [PreKnown]),
?line make_node_garbage(0, 200000, 1000, []),
?line PostKnown = nodes(known),
?line PostAreas = erlang:system_info(allocated_areas),
- ?line ?t:format("PostKnown = ~p~n", [PostKnown]),
- ?line ?t:format("PostAreas = ~p~n", [PostAreas]),
+ ?line io:format("PostKnown = ~p~n", [PostKnown]),
+ ?line io:format("PostAreas = ~p~n", [PostAreas]),
?line true = length(PostKnown) =< length(PreKnown),
?line nc_refc_check(node()),
erts_debug:set_internal_state(node_tab_delayed_delete, -1), %% restore original value
@@ -761,17 +761,17 @@ set_next_id(port, N) ->
pp_wrap(What) ->
?line N = set_high_pp_next(What),
?line Cre = N + 100,
- ?line ?t:format("no creations = ~p~n", [Cre]),
+ ?line io:format("no creations = ~p~n", [Cre]),
?line PreCre = get_next_id(What),
- ?line ?t:format("pre creations = ~p~n", [PreCre]),
+ ?line io:format("pre creations = ~p~n", [PreCre]),
?line true = is_integer(PreCre),
?line do_pp_creations(What, Cre),
?line PostCre = get_next_id(What),
- ?line ?t:format("post creations = ~p~n", [PostCre]),
+ ?line io:format("post creations = ~p~n", [PostCre]),
?line true = is_integer(PostCre),
?line true = PreCre > PostCre,
?line Now = set_next_id(What, ?MAX_PIDS_PORTS div 2),
- ?line ?t:format("reset to = ~p~n", [Now]),
+ ?line io:format("reset to = ~p~n", [Now]),
?line true = is_integer(Now),
?line ok.
@@ -903,7 +903,7 @@ chk_max_proc_line() ->
{proc_line_length, PLL, End} ->
?line PC = erlang:system_info(process_count),
?line LP = length(processes()),
- ?line ?t:format("proc line length = ~p; "
+ ?line io:format("proc line length = ~p; "
"process count = ~p; "
"length processes = ~p~n",
[PLL, PC, LP]),
@@ -936,7 +936,7 @@ node_container_refc_check(Node) when is_atom(Node) ->
nc_refc_check(Node) when is_atom(Node) ->
Ref = make_ref(),
Self = self(),
- ?t:format("Starting reference count check of node ~w~n", [Node]),
+ io:format("Starting reference count check of node ~w~n", [Node]),
spawn_link(Node,
fun () ->
{{node_references, NodeRefs},
@@ -952,10 +952,10 @@ nc_refc_check(Node) when is_atom(Node) ->
end),
receive
{Ref, ErrorMsg, failed} ->
- ?t:format("~s~n", [ErrorMsg]),
+ io:format("~s~n", [ErrorMsg]),
ct:fail(reference_count_check_failed);
{Ref, succeded} ->
- ?t:format("Reference count check of node ~w succeded!~n", [Node]),
+ io:format("Reference count check of node ~w succeded!~n", [Node]),
ok
end.
@@ -1034,7 +1034,7 @@ get_node_references({NodeName, Creation} = Node) when is_atom(NodeName),
NodeRefs,
DistRefs,
fun (ErrMsg) ->
- ?t:format("~s", [ErrMsg]),
+ io:format("~s", [ErrMsg]),
ct:fail(reference_count_check_failed)
end),
find_references(Node, NodeRefs).
@@ -1046,7 +1046,7 @@ get_dist_references(NodeName) when is_atom(NodeName) ->
NodeRefs,
DistRefs,
fun (ErrMsg) ->
- ?line ?t:format("~s", [ErrMsg]),
+ ?line io:format("~s", [ErrMsg]),
?line ct:fail(reference_count_check_failed)
end),
?line find_references(NodeName, DistRefs).
diff --git a/erts/emulator/test/port_SUITE.erl b/erts/emulator/test/port_SUITE.erl
index 25452598e3..0d8cb77161 100644
--- a/erts/emulator/test/port_SUITE.erl
+++ b/erts/emulator/test/port_SUITE.erl
@@ -1112,22 +1112,22 @@ otp_3906(Config, OSName) ->
otp_3906_list_defunct(EmPid, OSName) ->
% Guess ps switches to use and what to grep for (could be improved)
{Switches, Zombie} = case OSName of
- BSD when BSD == darwin;
- BSD == openbsd;
- BSD == netbsd;
- BSD == freebsd ->
- {"-ajx", "Z"};
- _ ->
- {"-ef", "[dD]efunct"}
- end,
- test_server:format("Emulator pid: ~s~n"
- "Listing of zombie processes:~n"
- "~s~n",
- [EmPid,
- otp_3906_htmlize(os:cmd("ps "
- ++ Switches
- ++ " | grep "
- ++ Zombie))]).
+ BSD when BSD == darwin;
+ BSD == openbsd;
+ BSD == netbsd;
+ BSD == freebsd ->
+ {"-ajx", "Z"};
+ _ ->
+ {"-ef", "[dD]efunct"}
+ end,
+ io:format("Emulator pid: ~s~n"
+ "Listing of zombie processes:~n"
+ "~s~n",
+ [EmPid,
+ otp_3906_htmlize(os:cmd("ps "
+ ++ Switches
+ ++ " | grep "
+ ++ Zombie))]).
otp_3906_htmlize([]) ->
[];
@@ -1689,15 +1689,15 @@ otp_5112(Config) when is_list(Config) ->
Path = ?config(data_dir, Config),
ok = load_driver(Path, "exit_drv"),
Port = otp_5112_get_wrapped_port(),
- ?t:format("Max ports: ~p~n",[max_ports()]),
- ?t:format("Port: ~p~n",[Port]),
+ io:format("Max ports: ~p~n",[max_ports()]),
+ io:format("Port: ~p~n",[Port]),
{links, Links1} = process_info(self(),links),
- ?t:format("Links1: ~p~n",[Links1]),
+ io:format("Links1: ~p~n",[Links1]),
true = lists:member(Port, Links1),
Port ! {self(), {command, ""}},
?line wait_until(fun () -> lists:member(Port, erlang:ports()) == false end),
{links, Links2} = process_info(self(),links),
- ?t:format("Links2: ~p~n",[Links2]),
+ io:format("Links2: ~p~n",[Links2]),
false = lists:member(Port, Links2), %% This used to fail
ok.
@@ -1705,13 +1705,13 @@ otp_5112_get_wrapped_port() ->
P1 = erlang:open_port({spawn, "exit_drv"}, []),
case port_ix(P1) < max_ports() of
true ->
- ?t:format("Need to wrap port index (~p)~n", [P1]),
+ io:format("Need to wrap port index (~p)~n", [P1]),
otp_5112_wrap_port_ix([P1]),
P2 = erlang:open_port({spawn, "exit_drv"}, []),
false = port_ix(P2) < max_ports(),
P2;
false ->
- ?t:format("Port index already wrapped (~p)~n", [P1]),
+ io:format("Port index already wrapped (~p)~n", [P1]),
P1
end.
@@ -1745,9 +1745,9 @@ otp_5119(Config) when is_list(Config) ->
port_ix(erlang:open_port({spawn, "exit_drv"}, []))}
end,
MaxPorts = max_ports(),
- ?t:format("PortIx1 = ~p ~p~n", [PI1, PortIx1]),
- ?t:format("PortIx2 = ~p ~p~n", [PI2, PortIx2]),
- ?t:format("MaxPorts = ~p~n", [MaxPorts]),
+ io:format("PortIx1 = ~p ~p~n", [PI1, PortIx1]),
+ io:format("PortIx2 = ~p ~p~n", [PI2, PortIx2]),
+ io:format("MaxPorts = ~p~n", [MaxPorts]),
true = PortIx2 > PortIx1,
true = PortIx2 =< PortIx1 + MaxPorts,
ok.
@@ -1838,7 +1838,7 @@ exit_status_msb_test(Config, SleepSecs) when is_list(Config) ->
%%
NoSchedsOnln = erlang:system_info(schedulers_online),
Parent = self(),
- ?t:format("SleepSecs = ~p~n", [SleepSecs]),
+ io:format("SleepSecs = ~p~n", [SleepSecs]),
PortProg = "sleep " ++ integer_to_list(SleepSecs),
Start = erlang:monotonic_time(micro_seconds),
NoProcs = case NoSchedsOnln of
@@ -1851,7 +1851,7 @@ exit_status_msb_test(Config, SleepSecs) when is_list(Config) ->
TNPorts when TNPorts < ?EXIT_STATUS_MSB_MAX_PORTS -> 20;
_ -> ?EXIT_STATUS_MSB_MAX_PORTS div NoProcs
end,
- ?t:format("NoProcs = ~p~nNoPortsPerProc = ~p~n",
+ io:format("NoProcs = ~p~nNoPortsPerProc = ~p~n",
[NoProcs, NoPortsPerProc]),
ProcFun
= fun () ->
@@ -1915,12 +1915,12 @@ exit_status_msb_test(Config, SleepSecs) when is_list(Config) ->
end,
Procs),
StartedTime = (erlang:monotonic_time(micro_seconds) - Start)/1000000,
- ?t:format("StartedTime = ~p~n", [StartedTime]),
+ io:format("StartedTime = ~p~n", [StartedTime]),
true = StartedTime < SleepSecs,
erlang:system_flag(multi_scheduling, block),
lists:foreach(fun (P) -> receive {P, done} -> ok end end, Procs),
DoneTime = (erlang:monotonic_time(micro_seconds) - Start)/1000000,
- ?t:format("DoneTime = ~p~n", [DoneTime]),
+ io:format("DoneTime = ~p~n", [DoneTime]),
true = DoneTime > SleepSecs,
ok = verify_multi_scheduling_blocked(),
erlang:system_flag(multi_scheduling, unblock),
diff --git a/erts/emulator/test/process_SUITE.erl b/erts/emulator/test/process_SUITE.erl
index 1ee57f07b5..6c733195b7 100644
--- a/erts/emulator/test/process_SUITE.erl
+++ b/erts/emulator/test/process_SUITE.erl
@@ -1536,7 +1536,7 @@ print_processes_bif_info(#ptab_list_bif_info{min_start_reds = MinStartReds,
term_procs_max_reds = TPMaxReds,
conses_per_red = ConsesPerRed,
debug_level = DbgLvl}) ->
- ?t:format("processes/0 bif info on node ~p:~n"
+ io:format("processes/0 bif info on node ~p:~n"
"Min start reductions = ~p~n"
"Process table chunks = ~p~n"
"Process table chunks size = ~p~n"
@@ -1577,7 +1577,7 @@ processes_unexpected_result(CorrectProcs, Procs) ->
status,
priority],
MissingProcs = CorrectProcs -- Procs,
- ?t:format("Missing processes: ~p",
+ io:format("Missing processes: ~p",
[lists:map(fun (Pid) ->
[{pid, Pid}
| case process_info(Pid, ProcInfo) of
@@ -1587,7 +1587,7 @@ processes_unexpected_result(CorrectProcs, Procs) ->
end,
MissingProcs)]),
SuperfluousProcs = Procs -- CorrectProcs,
- ?t:format("Superfluous processes: ~p",
+ io:format("Superfluous processes: ~p",
[lists:map(fun (Pid) ->
[{pid, Pid}
| case process_info(Pid, ProcInfo) of
@@ -1701,7 +1701,7 @@ do_processes_bif_test(WantReds, DieTest, Processes) ->
DoIt = make_ref(),
GetGoing = make_ref(),
{NoTestProcs, TestProcs} = spawn_initial_hangarounds(Cleaner),
- ?t:format("Testing with ~p processes~n", [NoTestProcs]),
+ io:format("Testing with ~p processes~n", [NoTestProcs]),
SpawnHangAround = fun () ->
spawn(?MODULE, hangaround, [Cleaner, new_hangaround])
end,
@@ -1743,7 +1743,7 @@ do_processes_bif_test(WantReds, DieTest, Processes) ->
Procs = lists:sort(Procs0),
CorrectProcs = lists:sort(CorrectProcs0),
LengthCorrectProcs = length(CorrectProcs),
- ?t:format("~p = length(CorrectProcs)~n", [LengthCorrectProcs]),
+ io:format("~p = length(CorrectProcs)~n", [LengthCorrectProcs]),
true = LengthCorrectProcs > NoTestProcs,
case CorrectProcs =:= Procs of
true ->
@@ -1764,12 +1764,12 @@ do_processes_bif_test(WantReds, DieTest, Processes) ->
do_processes_bif_die_test(false, _Processes) ->
- ?t:format("Skipping test killing process executing processes/0~n",[]),
+ io:format("Skipping test killing process executing processes/0~n",[]),
ok;
do_processes_bif_die_test(true, Processes) ->
do_processes_bif_die_test(5, Processes);
do_processes_bif_die_test(N, Processes) ->
- ?t:format("Doing test killing process executing processes/0~n",[]),
+ io:format("Doing test killing process executing processes/0~n",[]),
try
Tester = self(),
Oooh_Nooooooo = make_ref(),
@@ -1819,8 +1819,8 @@ do_processes_bif_die_test(N, Processes) ->
ok
catch
throw:{kill_in_trap, R} when N > 0 ->
- ?t:format("Failed to kill in trap: ~p~n", [R]),
- ?t:format("Trying again~n", []),
+ io:format("Failed to kill in trap: ~p~n", [R]),
+ io:format("Trying again~n", []),
do_processes_bif_die_test(N-1, Processes)
end.
@@ -1850,7 +1850,7 @@ wait_until_system_recover(Tmr) ->
receive
{timeout, Tmr, _} ->
Comment = "WARNING: Test processes still hanging around!",
- ?t:format("~s~n", [Comment]),
+ io:format("~s~n", [Comment]),
put(processes_bif_testcase_comment, Comment),
lists:foreach(
fun (P) when P == self() ->
@@ -1858,7 +1858,7 @@ wait_until_system_recover(Tmr) ->
(P) ->
case process_info(P, initial_call) of
{initial_call,{?MODULE, _, _} = MFA} ->
- ?t:format("~p ~p~n", [P, MFA]);
+ io:format("~p ~p~n", [P, MFA]);
{initial_call,{_, _, _}} ->
ok;
undefined ->
@@ -2228,7 +2228,7 @@ do_otp_7738_test(Type) ->
ok
after 2000 ->
I = process_info(R, [status, message_queue_len]),
- ?t:format("~p~n", [I]),
+ io:format("~p~n", [I]),
ct:fail(no_progress)
end,
ok.
diff --git a/erts/emulator/test/scheduler_SUITE.erl b/erts/emulator/test/scheduler_SUITE.erl
index 776bf172ee..38f8dcc8d4 100644
--- a/erts/emulator/test/scheduler_SUITE.erl
+++ b/erts/emulator/test/scheduler_SUITE.erl
@@ -526,7 +526,7 @@ bindings(Node, BindType) ->
end),
receive
{Ref, Res} ->
- ?t:format("~p: ~p~n", [BindType, Res]),
+ io:format("~p: ~p~n", [BindType, Res]),
unlink(Pid),
Res
end.
@@ -564,7 +564,7 @@ scheduler_bind_types(Config) when is_list(Config) ->
?line ok.
scheduler_bind_types_test(Config, Topology, CmdLine, TermLetter) ->
- ?line ?t:format("Testing (~p): ~p~n", [TermLetter, Topology]),
+ ?line io:format("Testing (~p): ~p~n", [TermLetter, Topology]),
?line {ok, Node0} = start_node(Config),
?line _ = rpc:call(Node0, erlang, system_flag, [cpu_topology, Topology]),
?line cmp(Topology, rpc:call(Node0, erlang, system_info, [cpu_topology])),
@@ -766,7 +766,7 @@ cpu_topology(Config) when is_list(Config) ->
?line ok.
cpu_topology_test(Config, Topology, Cmd) ->
- ?line ?t:format("Testing~n ~p~n ~p~n", [Topology, Cmd]),
+ ?line io:format("Testing~n ~p~n ~p~n", [Topology, Cmd]),
?line cpu_topology_bif_test(Config, Topology),
?line cpu_topology_cmdline_test(Config, Topology, Cmd),
?line ok.
@@ -791,7 +791,7 @@ cpu_topology_cmdline_test(Config, Topology, Cmd) ->
update_cpu_info(Config) when is_list(Config) ->
?line OldOnline = erlang:system_info(schedulers_online),
?line OldAff = get_affinity_mask(),
- ?line ?t:format("START - Affinity mask: ~p - Schedulers online: ~p - Scheduler bindings: ~p~n",
+ ?line io:format("START - Affinity mask: ~p - Schedulers online: ~p - Scheduler bindings: ~p~n",
[OldAff, OldOnline, erlang:system_info(scheduler_bindings)]),
?line case {erlang:system_info(logical_processors_available), OldAff} of
{Avail, _} when Avail == unknown; OldAff == unknown ->
@@ -816,7 +816,7 @@ update_cpu_info(Config) when is_list(Config) ->
{Onln0, Onln1} ->
?line Onln1 = erlang:system_info(schedulers_online),
?line receive after 500 -> ok end,
- ?line ?t:format("TEST - Affinity mask: ~p - Schedulers online: ~p - Scheduler bindings: ~p~n",
+ ?line io:format("TEST - Affinity mask: ~p - Schedulers online: ~p - Scheduler bindings: ~p~n",
[Aff, Onln1, erlang:system_info(scheduler_bindings)]),
?line unchanged = adjust_schedulers_online(),
?line ok;
@@ -829,7 +829,7 @@ update_cpu_info(Config) when is_list(Config) ->
adjust_schedulers_online(),
erlang:system_flag(schedulers_online, OldOnline),
receive after 500 -> ok end,
- ?t:format("END - Affinity mask: ~p - Schedulers online: ~p - Scheduler bindings: ~p~n",
+ io:format("END - Affinity mask: ~p - Schedulers online: ~p - Scheduler bindings: ~p~n",
[get_affinity_mask(),
erlang:system_info(schedulers_online),
erlang:system_info(scheduler_bindings)])
@@ -1007,7 +1007,7 @@ sbt_cmd(Config) when is_list(Config) ->
end.
sbt_test(Config, CpuTCmd, ClBt, Bt, LP) ->
- ?line ?t:format("Testing +sbt ~s (~p)~n", [ClBt, Bt]),
+ ?line io:format("Testing +sbt ~s (~p)~n", [ClBt, Bt]),
?line LPS = integer_to_list(LP),
?line Cmd = CpuTCmd++" +sbt "++ClBt++" +S"++LPS++":"++LPS,
?line {ok, Node} = start_node(Config, Cmd),
@@ -1019,7 +1019,7 @@ sbt_test(Config, CpuTCmd, ClBt, Bt, LP) ->
erlang,
system_info,
[scheduler_bindings]),
- ?line ?t:format("scheduler bindings: ~p~n", [SB]),
+ ?line io:format("scheduler bindings: ~p~n", [SB]),
?line BS = case {Bt, erlang:system_info(logical_processors_available)} of
{unbound, _} -> 0;
{_, Int} when is_integer(Int) -> Int;
@@ -1333,7 +1333,7 @@ scheduler_suspend_test(Config, Schedulers) ->
?line [SState] = mcall(Node, [fun () ->
erlang:system_info(schedulers_state)
end]),
- ?line ?t:format("SState=~p~n", [SState]),
+ ?line io:format("SState=~p~n", [SState]),
?line {Sched, SchedOnln, _SchedAvail} = SState,
?line true = is_integer(Sched),
?line [ok] = mcall(Node, [fun () -> sst0_loop(300) end]),
@@ -1824,7 +1824,7 @@ chk_result([{low, L, Lmin, _Lmax},
LNShouldWork,
HShouldWork,
MShouldWork) ->
- ?line ?t:format("~p~n", [Res]),
+ ?line io:format("~p~n", [Res]),
?line Relax = relax_limits(),
case {L, N} of
{0, 0} ->
@@ -1842,7 +1842,7 @@ chk_result([{low, L, Lmin, _Lmax},
?line Ratio = Lavg/Navg,
?line LminRatio = Lmin/Lavg,
?line NminRatio = Nmin/Navg,
- ?line ?t:format("low min ratio=~p~n"
+ ?line io:format("low min ratio=~p~n"
"normal min ratio=~p~n"
"low avg=~p~n"
"normal avg=~p~n"
@@ -1907,7 +1907,7 @@ snd(Msg, [P|Ps]) ->
relax_limits() ->
case strange_system_scale() of
Scale when Scale > 1 ->
- ?t:format("Relaxing limits~n", []),
+ io:format("Relaxing limits~n", []),
true;
_ ->
false
@@ -2247,7 +2247,7 @@ enable_internal_state() ->
cmp(X, X) ->
ok;
cmp(X, Y) ->
- ?t:format("cmp failed:~n X=~p~n Y=~p~n", [X,Y]),
+ io:format("cmp failed:~n X=~p~n Y=~p~n", [X,Y]),
cmp_aux(X, Y).
diff --git a/erts/emulator/test/smoke_test_SUITE.erl b/erts/emulator/test/smoke_test_SUITE.erl
index 7e5345fd49..3c616b4304 100644
--- a/erts/emulator/test/smoke_test_SUITE.erl
+++ b/erts/emulator/test/smoke_test_SUITE.erl
@@ -91,7 +91,7 @@ native_atomics(Config) when is_list(Config) ->
NA64Key = "64-bit native atomics",
DWNAKey = "Double word native atomics",
EthreadInfo = erlang:system_info(ethread_info),
- ?t:format("~p~n", [EthreadInfo]),
+ io:format("~p~n", [EthreadInfo]),
{value,{NA32Key, NA32, _}} = lists:keysearch(NA32Key, 1, EthreadInfo),
{value,{NA64Key, NA64, _}} = lists:keysearch(NA64Key, 1, EthreadInfo),
{value,{DWNAKey, DWNA, _}} = lists:keysearch(DWNAKey, 1, EthreadInfo),
@@ -129,7 +129,7 @@ chk_boot(Config, Args, Fun) ->
true = os:putenv("ERL_ZFLAGS", Args),
Success = make_ref(),
Parent = self(),
- ?t:format("--- Testing ~s~n", [Args]),
+ io:format("--- Testing ~s~n", [Args]),
{ok, Node} = start_node(Config),
Pid = spawn_link(Node, fun () ->
Fun(),
@@ -139,7 +139,7 @@ chk_boot(Config, Args, Fun) ->
{Pid, Success} ->
Node = node(Pid),
stop_node(Node),
- ?t:format("--- Success!~n", []),
+ io:format("--- Success!~n", []),
ok
end.
diff --git a/erts/emulator/test/statistics_SUITE.erl b/erts/emulator/test/statistics_SUITE.erl
index b99d567772..c16e0f7cbe 100644
--- a/erts/emulator/test/statistics_SUITE.erl
+++ b/erts/emulator/test/statistics_SUITE.erl
@@ -106,8 +106,7 @@ wall_clock_update1(N) when N > 0 ->
?line {T2_wc_time, Wc_Diff} = statistics(wall_clock),
?line Wc_Diff = T2_wc_time - T1_wc_time,
- ?line test_server:format("Wall clock diff = ~p; should be = 1000..1040~n",
- [Wc_Diff]),
+ ?line io:format("Wall clock diff = ~p; should be = 1000..1040~n", [Wc_Diff]),
case ?t:is_debug() of
false ->
?line true = Wc_Diff =< 1040;
@@ -159,8 +158,7 @@ do_runtime_update(N) ->
receive after 1000 -> ok end,
?line {T2,Diff} = statistics(runtime),
?line true = is_integer(T1+T2+Diff0+Diff),
- ?line test_server:format("T1 = ~p, T2 = ~p, Diff = ~p, T2-T1 = ~p",
- [T1,T2,Diff,T2-T1]),
+ ?line io:format("T1 = ~p, T2 = ~p, Diff = ~p, T2-T1 = ~p", [T1,T2,Diff,T2-T1]),
?line if
T2 - T1 =:= Diff, 900 =< Diff, Diff =< 1500 -> ok;
true -> do_runtime_update(N-1)
diff --git a/erts/emulator/test/system_info_SUITE.erl b/erts/emulator/test/system_info_SUITE.erl
index e6bef8f14f..a7db06f2c5 100644
--- a/erts/emulator/test/system_info_SUITE.erl
+++ b/erts/emulator/test/system_info_SUITE.erl
@@ -92,7 +92,7 @@ check_procs(N) ->
check_pc(E) ->
?line P = length(processes()),
?line SI = erlang:system_info(process_count),
- ?line ?t:format("E=~p; P=~p; SI=~p~n", [E, P, SI]),
+ ?line io:format("E=~p; P=~p; SI=~p~n", [E, P, SI]),
?line E = P,
?line P = SI.
diff --git a/erts/emulator/test/time_SUITE.erl b/erts/emulator/test/time_SUITE.erl
index c27de24690..c225c4d88f 100644
--- a/erts/emulator/test/time_SUITE.erl
+++ b/erts/emulator/test/time_SUITE.erl
@@ -465,8 +465,7 @@ now_update1(N) when N > 0 ->
?line Linear_Diff = (T2_linear-T1_linear)*1000000,
?line Now_Diff = T2_now-T1_now,
- test_server:format("Localtime diff = ~p; now() diff = ~p",
- [Linear_Diff, Now_Diff]),
+ io:format("Localtime diff = ~p; now() diff = ~p", [Linear_Diff, Now_Diff]),
?line case abs(Linear_Diff - Now_Diff) of
Abs_Delta when Abs_Delta =< 40000 -> ok;
_ -> now_update1(N-1)
@@ -729,7 +728,7 @@ check_time_offset_res_conv(Mon, Res) ->
ct:fail({time_unit_conversion_inconsistency,
TO, TORes, TORes2});
{_NewTO, true} ->
- ?t:format("time_offset changed", []),
+ io:format("time_offset changed", []),
check_time_offset_res_conv(Mon, Res)
end
end.
@@ -872,13 +871,13 @@ do_check_erlang_timestamp(Done, Mon, TO) ->
check_erlang_timestamp(Done, Mon, NewTO);
false ->
io:format("TsMin=~p TsTime=~p TsMax=~p~n", [TsMin, TsTime, TsMax]),
- ?t:format("Detected inconsistency; "
+ io:format("Detected inconsistency; "
"checking for time_offset change...", []),
case check_time_offset_change(Mon, TO, 1000) of
{TO, false} ->
ct:fail(timestamp_inconsistency);
{NewTO, true} ->
- ?t:format("time_offset changed", []),
+ io:format("time_offset changed", []),
check_erlang_timestamp(Done, Mon, NewTO)
end
end.
diff --git a/erts/emulator/test/timer_bif_SUITE.erl b/erts/emulator/test/timer_bif_SUITE.erl
index adc25b9426..704269bc0f 100644
--- a/erts/emulator/test/timer_bif_SUITE.erl
+++ b/erts/emulator/test/timer_bif_SUITE.erl
@@ -362,7 +362,7 @@ evil_timers(Config) when is_list(Config) ->
?line RefList = [make_ref(), make_ref(), make_ref()],
?line BigList = [111111111111, 22222222222222, 333333333333333333],
?line Msg = {BinList,[FunList,{RefList,ExtList,PidList,PortList,BigList}]},
- %% ?line ?t:format("Msg=~p~n",[Msg]),
+ %% ?line io:format("Msg=~p~n",[Msg]),
?line Prio = process_flag(priority, max),
%%
diff --git a/erts/emulator/test/trace_SUITE.erl b/erts/emulator/test/trace_SUITE.erl
index 5982383f13..5762fd558b 100644
--- a/erts/emulator/test/trace_SUITE.erl
+++ b/erts/emulator/test/trace_SUITE.erl
@@ -847,7 +847,7 @@ mutual_suspend(Config) when is_list(Config) ->
end,
?line P1S = process_info(P1, status),
?line P2S = process_info(P2, status),
- ?line ?t:format("P1S=~p P2S=~p", [P1S, P2S]),
+ ?line io:format("P1S=~p P2S=~p", [P1S, P2S]),
?line false = {status, suspended} == P1S,
?line false = {status, suspended} == P2S,
?line unlink(P1), exit(P1, bang),
@@ -1067,7 +1067,7 @@ suspend_until_system_limit(P, N, M) ->
suspend_until_system_limit(P, N+1, NewM);
{'EXIT', R} when R == system_limit;
element(1, R) == system_limit ->
- ?line ?t:format("system limit at ~p~n", [N]),
+ ?line io:format("system limit at ~p~n", [N]),
?line resume_from_system_limit(P, N, 0);
Error ->
?line ct:fail(Error)
@@ -1193,7 +1193,7 @@ suspend_opts(Config) when is_list(Config) ->
?line erlang:resume_process(Tok),
?line erlang:resume_process(Tok),
?line 1 = suspend_count(Tok),
- ?line ?t:format("Main suspends: ~p~n"
+ ?line io:format("Main suspends: ~p~n"
"Main async: ~p~n"
"Double async: ~p~n"
"Async once: ~p~n"
@@ -1517,7 +1517,7 @@ issue_non_empty_runq_warning(DeadLine, RQLen) ->
end,
[],
processes()),
- ?t:format("WARNING: Unexpected runnable processes in system (waited ~p sec).~n"
+ io:format("WARNING: Unexpected runnable processes in system (waited ~p sec).~n"
" Run queue length: ~p~n"
" Self: ~p~n"
" Processes info: ~p~n",
diff --git a/erts/emulator/test/z_SUITE.erl b/erts/emulator/test/z_SUITE.erl
index 8b38334149..ea04790860 100644
--- a/erts/emulator/test/z_SUITE.erl
+++ b/erts/emulator/test/z_SUITE.erl
@@ -60,14 +60,14 @@ schedulers_alive(Config) when is_list(Config) ->
?line NoSchedulers = erlang:system_info(schedulers),
UsedScheds =
try
- ?line ?t:format("Number of schedulers configured: ~p~n", [NoSchedulers]),
+ ?line io:format("Number of schedulers configured: ~p~n", [NoSchedulers]),
?line case erlang:system_info(multi_scheduling) of
blocked ->
?line ct:fail(multi_scheduling_blocked);
disabled ->
?line ok;
enabled ->
- ?t:format("Testing blocking process exit~n"),
+ io:format("Testing blocking process exit~n"),
BF = fun () ->
blocked = erlang:system_flag(multi_scheduling,
block),
@@ -86,7 +86,7 @@ schedulers_alive(Config) when is_list(Config) ->
?line [] = erlang:system_info(multi_scheduling_blockers),
?line ok
end,
- ?t:format("Testing blocked~n"),
+ io:format("Testing blocked~n"),
?line erlang:system_flag(multi_scheduling, block),
?line case erlang:system_info(multi_scheduling) of
enabled ->
@@ -120,7 +120,7 @@ schedulers_alive(Config) when is_list(Config) ->
%% node_and_dist_references will use emulator interal thread blocking...
erts_debug:get_internal_state(node_and_dist_references),
erts_debug:set_internal_state(available_internal_state, false),
- ?t:format("Testing not blocked~n"),
+ io:format("Testing not blocked~n"),
?line Ps2 = lists:map(
fun (_) ->
spawn_link(fun () ->
@@ -170,7 +170,7 @@ wait_on_used_scheduler({SIDs, SIDsLen} = State) ->
true ->
wait_on_used_scheduler(State);
false ->
- ?t:format("Scheduler ~p used~n", [SID]),
+ io:format("Scheduler ~p used~n", [SID]),
{[SID|SIDs], SIDsLen+1}
end
end.