diff --git a/lib/kernel/test/inet_res_SUITE.erl b/lib/kernel/test/inet_res_SUITE.erl index 50fbb479af89..045fdcc83bf8 100644 --- a/lib/kernel/test/inet_res_SUITE.erl +++ b/lib/kernel/test/inet_res_SUITE.erl @@ -172,14 +172,17 @@ init_per_testcase(Func, Config) -> %% dbg:p(all, c), %% dbg:tpl(inet_res, query_nss_res, cx), ?P("init_per_testcase -> done:" - "~n NsSpec: ~p" - "~n Lookup: ~p", [NsSpec, Lookup]), + "~n NsSpec: ~p" + "~n Lookup: ~p", [NsSpec, Lookup]), [{nameserver, NsSpec}, {res_lookup, Lookup} | Config] catch SkipReason -> - ?P("init_per_testcase -> caught:" - "~n SkipReason: ~p", [SkipReason]), - {skip, SkipReason} + ?P("init_per_testcase -> skip: ~p", [SkipReason]), + {skip, SkipReason}; + Class : Reason : Stacktrace -> + ?P("init_per_testcase -> ~w: ~p" + "~n ~p~n", [Class, Reason, Stacktrace]), + {fail, Reason} end. end_per_testcase(_Func, Config) -> @@ -255,11 +258,16 @@ ns_start(ZoneDir, PrivDir, NS, P) -> "Running: "++_ -> ?P("ns_start -> running"), {ZoneDir,NS,P}; + "Skip: "++Reason -> + ?P("ns_start -> skip: " + "~n ~p", [Reason]), + ns_printlog(filename:join([PrivDir,ZoneDir,?LOG_FILE])), + throw(Reason); "Error: "++Error -> ?P("ns_start -> error: " "~n ~p", [Error]), ns_printlog(filename:join([PrivDir,ZoneDir,?LOG_FILE])), - throw(Error); + error(Error); _X -> ?P("ns_start -> retry"), ns_start(ZoneDir, PrivDir, NS, P) diff --git a/lib/kernel/test/inet_res_SUITE_data/run-ns b/lib/kernel/test/inet_res_SUITE_data/run-ns index 3dbc0eff935b..86f2957c1039 100755 --- a/lib/kernel/test/inet_res_SUITE_data/run-ns +++ b/lib/kernel/test/inet_res_SUITE_data/run-ns @@ -48,6 +48,7 @@ PATH=/usr/sbin:/sbin:/usr/bin:/bin SHELL=/bin/sh export PATH SHELL +NS=knotd LOG_FILE=ns.log CONF_FILE=knot.conf INC_FILE=knot_inc.conf @@ -59,6 +60,12 @@ error () { exit $r } +skip () { + r=$? + echo "Skip: $*" + exit $r +} + ME="$0" SELF=$$ @@ -83,16 +90,18 @@ test -f "$SRCDIR/$INC_FILE" || \ DIR="$3" # Locate name server and check version. -NS=knotd -NS_STARTED="notice: $NS started" for n in /usr/sbin /usr/bin /usr/local/sbin /usr/local/bin do test -x "$n/$NS" && { NS="$n/$NS"; break; } done NS_VER="`"$NS" -V 2>&1`" || \ - error "Name server not found!" + skip "Name server ($NS) not found!" NS_VER="`echo "$NS_VER" | head -1`" +{ echo "$NS_VER" | + grep -q -e ' 2[.]9[.]' -e ' 2[.][1-9][0-9][0-9]*[.]' \ + -e ' [3-9][.]' -e ' [1-9][0-9][0-9]*[.]' +} || skip "Name server $NS_VER < 2.9" # Create working directory and cd to it mkdir "$DIR" >/dev/null 2>&1