mirror of
https://github.com/correl/rebar.git
synced 2024-11-27 11:09:55 +00:00
Merge pull request #411 from kittee/ct_appconfig_fix
Fix app.config argument passing when using ct_run (take 2)
This commit is contained in:
commit
dd9125e09a
8 changed files with 120 additions and 6 deletions
1
THANKS
1
THANKS
|
@ -132,3 +132,4 @@ Luis Rascao
|
||||||
Vlad Dumitrescu
|
Vlad Dumitrescu
|
||||||
stwind
|
stwind
|
||||||
Pavel Baturko
|
Pavel Baturko
|
||||||
|
Igor Savchuk
|
||||||
|
|
2
inttest/ct3/app.config
Normal file
2
inttest/ct3/app.config
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
%% This file is an application config file, not a CT test config file
|
||||||
|
[{a1, [{foo, bar}]}].
|
0
inttest/ct3/converted/.keep
Normal file
0
inttest/ct3/converted/.keep
Normal file
55
inttest/ct3/ct3_rt.erl
Normal file
55
inttest/ct3/ct3_rt.erl
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
%% -*- erlang-indent-level: 4;indent-tabs-mode: nil -*-
|
||||||
|
%% ex: ts=4 sw=4 et
|
||||||
|
%% -------------------------------------------------------------------
|
||||||
|
%%
|
||||||
|
%% rebar: Erlang Build Tools
|
||||||
|
%%
|
||||||
|
%% Copyright (c) 2014 Savchuk Igor
|
||||||
|
%%
|
||||||
|
%% Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
%% of this software and associated documentation files (the "Software"), to deal
|
||||||
|
%% in the Software without restriction, including without limitation the rights
|
||||||
|
%% to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
%% copies of the Software, and to permit persons to whom the Software is
|
||||||
|
%% furnished to do so, subject to the following conditions:
|
||||||
|
%%
|
||||||
|
%% The above copyright notice and this permission notice shall be included in
|
||||||
|
%% all copies or substantial portions of the Software.
|
||||||
|
%%
|
||||||
|
%% THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
%% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
%% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
%% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
%% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
%% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
%% THE SOFTWARE.
|
||||||
|
%% -------------------------------------------------------------------
|
||||||
|
-module(ct3_rt).
|
||||||
|
|
||||||
|
-compile(export_all).
|
||||||
|
|
||||||
|
|
||||||
|
files() ->
|
||||||
|
[{create, "ebin/a1.app", app(a1)},
|
||||||
|
{copy, "../../rebar", "rebar"},
|
||||||
|
{copy, "rebar.config", "rebar.config"},
|
||||||
|
{copy, "app.config", "itest/app.config"},
|
||||||
|
{copy, "test_SUITE.erl", "itest/test_SUITE.erl"},
|
||||||
|
{copy, "converted"},
|
||||||
|
{copy, "unconverted"}].
|
||||||
|
|
||||||
|
run(_Dir) ->
|
||||||
|
{ok, _} = retest:sh("./rebar compile ct -v", [{env, [{"ERL_FLAGS", "-name ct_rt3"}]}]),
|
||||||
|
ok.
|
||||||
|
|
||||||
|
%%
|
||||||
|
%% Generate the contents of a simple .app file
|
||||||
|
%%
|
||||||
|
app(Name) ->
|
||||||
|
App = {application, Name,
|
||||||
|
[{description, atom_to_list(Name)},
|
||||||
|
{vsn, "1"},
|
||||||
|
{modules, []},
|
||||||
|
{registered, []},
|
||||||
|
{applications, [kernel, stdlib]}]},
|
||||||
|
io_lib:format("~p.\n", [App]).
|
2
inttest/ct3/rebar.config
Normal file
2
inttest/ct3/rebar.config
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
{ct_dir, "itest"}.
|
||||||
|
{ct_extra_params, "-repeat 2 -pa converted -erl_args -pa unconverted"}.
|
52
inttest/ct3/test_SUITE.erl
Normal file
52
inttest/ct3/test_SUITE.erl
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
%% -*- erlang-indent-level: 4;indent-tabs-mode: nil -*-
|
||||||
|
%% ex: ts=4 sw=4 et
|
||||||
|
%% -------------------------------------------------------------------
|
||||||
|
%%
|
||||||
|
%% rebar: Erlang Build Tools
|
||||||
|
%%
|
||||||
|
%% Copyright (c) 2014 Savchuk Igor
|
||||||
|
%%
|
||||||
|
%% Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
%% of this software and associated documentation files (the "Software"), to deal
|
||||||
|
%% in the Software without restriction, including without limitation the rights
|
||||||
|
%% to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
%% copies of the Software, and to permit persons to whom the Software is
|
||||||
|
%% furnished to do so, subject to the following conditions:
|
||||||
|
%%
|
||||||
|
%% The above copyright notice and this permission notice shall be included in
|
||||||
|
%% all copies or substantial portions of the Software.
|
||||||
|
%%
|
||||||
|
%% THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
%% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
%% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
%% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
%% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
%% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
%% THE SOFTWARE.
|
||||||
|
%% -------------------------------------------------------------------
|
||||||
|
-module(test_SUITE).
|
||||||
|
|
||||||
|
-compile(export_all).
|
||||||
|
|
||||||
|
-include_lib("ct.hrl").
|
||||||
|
|
||||||
|
all() ->
|
||||||
|
[simple_test,
|
||||||
|
app_config_file_test,
|
||||||
|
check_path].
|
||||||
|
|
||||||
|
simple_test(Config) ->
|
||||||
|
io:format("Test: ~p\n", [Config]).
|
||||||
|
|
||||||
|
app_config_file_test(_Config) ->
|
||||||
|
application:start(a1),
|
||||||
|
{ok, bar} = application:get_env(a1, foo),
|
||||||
|
application:stop(a1).
|
||||||
|
|
||||||
|
%% check if -erl_args in ct_extra_params of rebar.config is working
|
||||||
|
%% if it is, path before -erl_args is converted to absolute
|
||||||
|
%% and path after -erl_args is not
|
||||||
|
check_path(_Config) ->
|
||||||
|
Path = code:get_path(),
|
||||||
|
false = lists:member("converted", Path),
|
||||||
|
true = lists:member("unconverted", Path).
|
0
inttest/ct3/unconverted/.keep
Normal file
0
inttest/ct3/unconverted/.keep
Normal file
|
@ -226,9 +226,10 @@ make_cmd(TestDir, RawLogDir, Config) ->
|
||||||
filename:join(Cwd, TestDir)]) ++
|
filename:join(Cwd, TestDir)]) ++
|
||||||
get_cover_config(Config, Cwd) ++
|
get_cover_config(Config, Cwd) ++
|
||||||
get_ct_config_file(TestDir) ++
|
get_ct_config_file(TestDir) ++
|
||||||
get_config_file(TestDir) ++
|
|
||||||
get_suites(Config, TestDir) ++
|
get_suites(Config, TestDir) ++
|
||||||
get_case(Config);
|
get_case(Config) ++
|
||||||
|
get_extra_params(Config) ++
|
||||||
|
get_config_file(TestDir);
|
||||||
SpecFlags ->
|
SpecFlags ->
|
||||||
?FMT("~s"
|
?FMT("~s"
|
||||||
" -pa ~s"
|
" -pa ~s"
|
||||||
|
@ -242,11 +243,12 @@ make_cmd(TestDir, RawLogDir, Config) ->
|
||||||
build_name(Config),
|
build_name(Config),
|
||||||
LogDir,
|
LogDir,
|
||||||
filename:join(Cwd, TestDir)]) ++
|
filename:join(Cwd, TestDir)]) ++
|
||||||
SpecFlags ++ get_cover_config(Config, Cwd)
|
SpecFlags ++
|
||||||
|
get_cover_config(Config, Cwd) ++
|
||||||
|
get_extra_params(Config)
|
||||||
end,
|
end,
|
||||||
Cmd1 = Cmd ++ get_extra_params(Config),
|
|
||||||
RawLog = filename:join(LogDir, "raw.log"),
|
RawLog = filename:join(LogDir, "raw.log"),
|
||||||
{Cmd1, RawLog}.
|
{Cmd, RawLog}.
|
||||||
|
|
||||||
build_name(Config) ->
|
build_name(Config) ->
|
||||||
case rebar_config:get_local(Config, ct_use_short_names, false) of
|
case rebar_config:get_local(Config, ct_use_short_names, false) of
|
||||||
|
@ -326,7 +328,7 @@ get_config_file(TestDir) ->
|
||||||
false ->
|
false ->
|
||||||
" ";
|
" ";
|
||||||
true ->
|
true ->
|
||||||
" -config " ++ Config
|
" -erl_args -config " ++ Config
|
||||||
end.
|
end.
|
||||||
|
|
||||||
get_suites(Config, TestDir) ->
|
get_suites(Config, TestDir) ->
|
||||||
|
|
Loading…
Reference in a new issue