add an upstream patch for fixing include directory handling in common test (regression of Erlang 17.4) OBS-URL: https://build.opensuse.org/request/show/287990 OBS-URL: https://build.opensuse.org/package/show/devel:languages:erlang:Factory/erlang?expand=0&rev=23
181 lines
6.5 KiB
Diff
181 lines
6.5 KiB
Diff
From d5ae0df2f59f5f87922ceb76479a85e82c64c9b0 Mon Sep 17 00:00:00 2001
|
|
From: Peter Andersson <peppe@erlang.org>
|
|
Date: Thu, 22 Jan 2015 01:03:25 +0100
|
|
Subject: [PATCH 1/2] Add valid include path to epp in erl2html2 and fix
|
|
crashing code
|
|
|
|
---
|
|
lib/common_test/src/ct_run.erl | 21 +++++++++++++++------
|
|
lib/test_server/src/erl2html2.erl | 20 +++++++++++---------
|
|
lib/test_server/src/test_server_ctrl.erl | 9 +++++++--
|
|
3 files changed, 33 insertions(+), 17 deletions(-)
|
|
|
|
diff --git a/lib/common_test/src/ct_run.erl b/lib/common_test/src/ct_run.erl
|
|
index 00d0aab..3605385 100644
|
|
--- a/lib/common_test/src/ct_run.erl
|
|
+++ b/lib/common_test/src/ct_run.erl
|
|
@@ -293,10 +293,10 @@ script_start1(Parent, Args) ->
|
|
application:set_env(common_test, auto_compile, true),
|
|
InclDirs =
|
|
case proplists:get_value(include, Args) of
|
|
- Incl when is_list(hd(Incl)) ->
|
|
- Incl;
|
|
+ Incls when is_list(hd(Incls)) ->
|
|
+ [filename:absname(IDir) || IDir <- Incls];
|
|
Incl when is_list(Incl) ->
|
|
- [Incl];
|
|
+ [filename:absname(Incl)];
|
|
undefined ->
|
|
[]
|
|
end,
|
|
@@ -1023,10 +1023,10 @@ run_test2(StartOpts) ->
|
|
case proplists:get_value(include, StartOpts) of
|
|
undefined ->
|
|
[];
|
|
- Incl when is_list(hd(Incl)) ->
|
|
- Incl;
|
|
+ Incls when is_list(hd(Incls)) ->
|
|
+ [filename:absname(IDir) || IDir <- Incls];
|
|
Incl when is_list(Incl) ->
|
|
- [Incl]
|
|
+ [filename:absname(Incl)]
|
|
end,
|
|
case os:getenv("CT_INCLUDE_PATH") of
|
|
false ->
|
|
@@ -1393,6 +1393,7 @@ run_testspec2(TestSpec) ->
|
|
EnvInclude++Opts#opts.include
|
|
end,
|
|
application:set_env(common_test, include, AllInclude),
|
|
+
|
|
LogDir1 = which(logdir,Opts#opts.logdir),
|
|
case check_and_install_configfiles(
|
|
Opts#opts.config, LogDir1, Opts) of
|
|
@@ -2134,6 +2135,14 @@ do_run_test(Tests, Skip, Opts0) ->
|
|
case check_and_add(Tests, [], []) of
|
|
{ok,AddedToPath} ->
|
|
ct_util:set_testdata({stats,{0,0,{0,0}}}),
|
|
+
|
|
+ %% test_server needs to know the include path too
|
|
+ InclPath = case application:get_env(common_test, include) of
|
|
+ {ok,Incls} -> Incls;
|
|
+ _ -> []
|
|
+ end,
|
|
+ application:set_env(test_server, include, InclPath),
|
|
+
|
|
test_server_ctrl:start_link(local),
|
|
|
|
%% let test_server expand the test tuples and count no of cases
|
|
diff --git a/lib/test_server/src/erl2html2.erl b/lib/test_server/src/erl2html2.erl
|
|
index b9b45cd..7cfaa2c 100644
|
|
--- a/lib/test_server/src/erl2html2.erl
|
|
+++ b/lib/test_server/src/erl2html2.erl
|
|
@@ -22,11 +22,11 @@
|
|
%%%------------------------------------------------------------------
|
|
|
|
-module(erl2html2).
|
|
--export([convert/2, convert/3]).
|
|
+-export([convert/3, convert/4]).
|
|
|
|
-convert([], _Dest) -> % Fake clause.
|
|
+convert([], _Dest, _InclPath) -> % Fake clause.
|
|
ok;
|
|
-convert(File, Dest) ->
|
|
+convert(File, Dest, InclPath) ->
|
|
%% The generated code uses the BGCOLOR attribute in the
|
|
%% BODY tag, which wasn't valid until HTML 3.2. Also,
|
|
%% good HTML should either override all colour attributes
|
|
@@ -48,12 +48,12 @@ convert(File, Dest) ->
|
|
"</head>\n\n"
|
|
"<body bgcolor=\"white\" text=\"black\""
|
|
" link=\"blue\" vlink=\"purple\" alink=\"red\">\n"],
|
|
- convert(File, Dest, Header).
|
|
+ convert(File, Dest, InclPath, Header).
|
|
|
|
|
|
-convert(File, Dest, Header) ->
|
|
+convert(File, Dest, InclPath, Header) ->
|
|
%% statistics(runtime),
|
|
- case parse_file(File) of
|
|
+ case parse_file(File, InclPath) of
|
|
{ok,Functions} ->
|
|
%% {_, Time1} = statistics(runtime),
|
|
%% io:format("Parsed file in ~.2f Seconds.~n",[Time1/1000]),
|
|
@@ -92,8 +92,8 @@ convert(File, Dest, Header) ->
|
|
%%% Use expanded preprocessor directives if possible (epp). Only if
|
|
%%% this fails, fall back on using non-expanded code (epp_dodger).
|
|
|
|
-parse_file(File) ->
|
|
- case epp:open(File, [], []) of
|
|
+parse_file(File, InclPath) ->
|
|
+ case epp:open(File, InclPath, []) of
|
|
{ok,Epp} ->
|
|
try parse_preprocessed_file(Epp,File,false) of
|
|
Forms ->
|
|
@@ -145,13 +145,15 @@ parse_non_preprocessed_file(File) ->
|
|
parse_non_preprocessed_file(Epp, File, Location) ->
|
|
case epp_dodger:parse_form(Epp, Location) of
|
|
{ok,Tree,Location1} ->
|
|
- case erl_syntax:revert(Tree) of
|
|
+ try erl_syntax:revert(Tree) of
|
|
{function,L,F,A,[_|C]} ->
|
|
Clauses = [{clause,CL} || {clause,CL,_,_,_} <- C],
|
|
[{atom_to_list(F),A,L} | Clauses] ++
|
|
parse_non_preprocessed_file(Epp, File, Location1);
|
|
_ ->
|
|
parse_non_preprocessed_file(Epp, File, Location1)
|
|
+ catch
|
|
+ _:_ -> parse_non_preprocessed_file(Epp, File, Location1)
|
|
end;
|
|
{error,_E,Location1} ->
|
|
parse_non_preprocessed_file(Epp, File, Location1);
|
|
diff --git a/lib/test_server/src/test_server_ctrl.erl b/lib/test_server/src/test_server_ctrl.erl
|
|
index af8921f..488f38d 100644
|
|
--- a/lib/test_server/src/test_server_ctrl.erl
|
|
+++ b/lib/test_server/src/test_server_ctrl.erl
|
|
@@ -1927,15 +1927,20 @@ html_possibly_convert(Src, SrcInfo, Dest) ->
|
|
{ok,DestInfo} when DestInfo#file_info.mtime >= SrcInfo#file_info.mtime ->
|
|
ok; % dest file up to date
|
|
_ ->
|
|
+ InclPath = case application:get_env(test_server, include) of
|
|
+ {ok,Incls} -> Incls;
|
|
+ _ -> []
|
|
+ end,
|
|
+
|
|
OutDir = get(test_server_log_dir_base),
|
|
case test_server_sup:framework_call(get_html_wrapper,
|
|
["Module "++Src,false,
|
|
OutDir,undefined,
|
|
encoding(Src)], "") of
|
|
Empty when (Empty == "") ; (element(2,Empty) == "") ->
|
|
- erl2html2:convert(Src, Dest);
|
|
+ erl2html2:convert(Src, Dest, InclPath);
|
|
{_,Header,_} ->
|
|
- erl2html2:convert(Src, Dest, Header)
|
|
+ erl2html2:convert(Src, Dest, InclPath, Header)
|
|
end
|
|
end.
|
|
|
|
|
|
From daa3c46d80435b0b790911095b34dc7255b3a6b8 Mon Sep 17 00:00:00 2001
|
|
From: Peter Andersson <peppe@erlang.org>
|
|
Date: Tue, 10 Feb 2015 11:54:01 +0100
|
|
Subject: [PATCH 2/2] Fix failing test case
|
|
|
|
---
|
|
lib/test_server/test/erl2html2_SUITE.erl | 2 +-
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
diff --git a/lib/test_server/test/erl2html2_SUITE.erl b/lib/test_server/test/erl2html2_SUITE.erl
|
|
index 37c2b74..908985c 100644
|
|
--- a/lib/test_server/test/erl2html2_SUITE.erl
|
|
+++ b/lib/test_server/test/erl2html2_SUITE.erl
|
|
@@ -161,7 +161,7 @@ convert_module(Mod,Config) ->
|
|
Src = filename:join(DataDir,Mod++".erl"),
|
|
Dst = filename:join(PrivDir,Mod++".erl.html"),
|
|
io:format("<a href=\"~s\">~s</a>\n",[Src,filename:basename(Src)]),
|
|
- ok = erl2html2:convert(Src, Dst, "<html><body>"),
|
|
+ ok = erl2html2:convert(Src, Dst, [], "<html><body>"),
|
|
io:format("<a href=\"~s\">~s</a>\n",[Dst,filename:basename(Dst)]),
|
|
{Src,Dst}.
|
|
|