Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:Ledest:erlang:23
erlang
3864-ssh-extend-ssh_cth-hooks-to-report-updated...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 3864-ssh-extend-ssh_cth-hooks-to-report-updated-known_hos.patch of Package erlang
From 715d08fd731c0982c04843024aedb1812e7a6171 Mon Sep 17 00:00:00 2001 From: Hans Nilsson <hans@erlang.org> Date: Tue, 25 May 2021 16:54:33 +0200 Subject: [PATCH 4/4] ssh: extend ssh_cth hooks to report updated known_hosts --- lib/ssh/test/ssh_cth.erl | 72 +++++++++++++++++++++++++++++++--------- 1 file changed, 56 insertions(+), 16 deletions(-) diff --git a/lib/ssh/test/ssh_cth.erl b/lib/ssh/test/ssh_cth.erl index 09d863cc51..caa4b55ce6 100644 --- a/lib/ssh/test/ssh_cth.erl +++ b/lib/ssh/test/ssh_cth.erl @@ -5,13 +5,18 @@ pre_init_per_suite/3, pre_end_per_suite/3, pre_init_per_group/4, + post_init_per_group/5, pre_end_per_group/4, post_end_per_group/5, - pre_init_per_testcase/3, - pre_end_per_testcase/4 + pre_init_per_testcase/4, + post_init_per_testcase/5, + pre_end_per_testcase/4, + post_end_per_testcase/5 ]). -record(c, { + known_hosts_file_name = filename:join(os:getenv("HOME"), ".ssh/known_hosts"), + known_hosts_last_contents = <<>>, suite, % suite name groups = [], % Group path in reversed order n % test case number @@ -23,33 +28,58 @@ id(Opts) -> init(_Id, _Opts) -> {ok, #c{n=1}}. -pre_init_per_suite(Suite, Config, CTHState) -> - {Config, CTHState#c{suite=Suite}}. +pre_init_per_suite(Suite, Config, State0) -> + {_, State} = read_known_hosts_diff(State0#c{suite=Suite}), + {Config, State}. pre_end_per_suite(Suite, Config, State) -> ct:pal("BEGIN ~p:end_per_suite(...)", [Suite]), - {Config, State}. + {Config, State}. + +pre_init_per_group(Suite, Group, Config, State0) -> + {Diff, State} = read_known_hosts_diff(State0), + ct:pal("~sBEGIN ~p:init_per_group(~p,...)", [log_diff(Diff),Suite,Group]), + {Config, State#c{groups = (State#c.groups ++ [Group])}}. -pre_init_per_group(_Suite, Group, Config ,State) -> - {Config, State#c{groups = (State#c.groups ++ [Group])}}. +post_init_per_group(Suite, Group, _Config, Return, State0) -> + {Diff, State} = read_known_hosts_diff(State0), + ct:pal("~sEND ~p:init_per_group(~p,...)", [log_diff(Diff),Suite,Group]), + {Return, State}. -pre_end_per_group(Suite, Group, Config, State) -> - ct:pal("BEGIN ~p:end_per_group(~p,...)", [Suite,Group]), +pre_end_per_group(Suite, Group, Config, State0) -> + {Diff, State} = read_known_hosts_diff(State0), + ct:pal("~sBEGIN ~p:end_per_group(~p,...)", [log_diff(Diff), Suite, Group]), {Config, State}. -post_end_per_group(_Suite, Group, _Config, Return, State) -> - {Return, State#c{groups = lists:reverse(lists:reverse(State#c.groups)--[Group])}}. +post_end_per_group(Suite, Group, _Config, Return, State0) -> + {Diff, State} = read_known_hosts_diff(State0), + ct:pal("~sEND ~p:end_per_group(~p,...)", [log_diff(Diff),Suite,Group]), + {Return, State#c{groups = lists:reverse(lists:reverse(State#c.groups)--[Group])}}. -pre_init_per_testcase(SuiteName, Config, CTHState) -> - ct:pal("########## ~p ~p ~s ~p~n", [CTHState#c.suite, CTHState#c.n, groups(Config), SuiteName]), - {Config, CTHState#c{n = CTHState#c.n + 1}}. +pre_init_per_testcase(SuiteName, _TC, Config, State0) -> + {Diff, State} = read_known_hosts_diff(State0), + ct:pal("~s########## ~p ~p ~s ~p", [log_diff(Diff), State0#c.suite, State0#c.n, groups(Config), SuiteName]), + {Config, State#c{n = State#c.n + 1}}. -pre_end_per_testcase(Suite,TC,Config,State) -> - ct:pal("BEGIN ~p:end_per_testcase(~p,...)", [Suite,TC]), +post_init_per_testcase(SuiteName, TestcaseName, _Config, Return, State0) -> + {Diff, State} = read_known_hosts_diff(State0), + ct:pal("~send ~p:init_per_testcase(~p,...)", [log_diff(Diff), SuiteName, TestcaseName]), + {Return, State}. + +pre_end_per_testcase(Suite, TC, Config, State0) -> + {Diff, State} = read_known_hosts_diff(State0), + ct:pal("~sBEGIN ~p:end_per_testcase(~p,...)", [log_diff(Diff), Suite, TC]), {Config, State}. +post_end_per_testcase(SuiteName, TC, _Config, Return, State0) -> + {Diff, State} = read_known_hosts_diff(State0), + ct:pal("~sEND ~p:end_per_testcase(~p,...)", [log_diff(Diff), SuiteName, TC]), + {Return, State}. + + + groups(Config) -> F = fun(X) -> io_lib:format("~w",[X]) end, @@ -62,3 +92,13 @@ get_groups(Config) -> is_list(L), {name,Name} <- L]. + + +read_known_hosts_diff(S = #c{known_hosts_file_name = File, + known_hosts_last_contents = Bin0}) -> + {ok, <<Bin0:(size(Bin0))/binary, Diff/binary>> = Bin} = file:read_file(File), + {Diff, S#c{known_hosts_last_contents = Bin}}. + +log_diff(<<>>) -> ""; +log_diff(Bin) -> io_lib:format("~n++++ ~p~n",[Bin]). + -- 2.26.2
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