summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorvarnerac-ubnt <drew.varner@ubnt.com>2014-06-27 12:26:25 -0500
committervarnerac-ubnt <drew.varner@ubnt.com>2014-06-27 15:35:56 -0500
commit35ee4571760ec7bd3bad9741d982699798bee1dc (patch)
tree71af55c8230fa770a400c6b18fbd67af74b9236c
parent6e24cd6ac7f8ba9b125c4898e29fa1e9a207f7d2 (diff)
Fix bug 271
Moves ct_extra_params to the end of the generated ct_run command. This allows users to pass commands to the underlying emulator using -erl_args. The included rt test demonstrates that it is possible to pass an addtional option to ct_run and -erl_args at the same time. Finally, the test executes in regular and verbose modes because rebar constructs the ct_run command differently in verbose mode.
-rw-r--r--THANKS1
-rw-r--r--inttest/ct1/app.config2
-rw-r--r--inttest/ct1/ct1_rt.erl2
-rw-r--r--inttest/ct1/rebar.config1
-rw-r--r--inttest/ct1/test_SUITE.erl8
-rw-r--r--src/rebar_ct.erl22
6 files changed, 25 insertions, 11 deletions
diff --git a/THANKS b/THANKS
index 95cc493..6bf2ea0 100644
--- a/THANKS
+++ b/THANKS
@@ -120,3 +120,4 @@ Pedram Nimreezi
Sylvain Benner
Oliver Ferrigni
Dave Thomas
+Drew Varner
diff --git a/inttest/ct1/app.config b/inttest/ct1/app.config
new file mode 100644
index 0000000..bb718b2
--- /dev/null
+++ b/inttest/ct1/app.config
@@ -0,0 +1,2 @@
+%% This file is an application config file, not a CT test config file
+[{a1, [{foo, bar}]}].
diff --git a/inttest/ct1/ct1_rt.erl b/inttest/ct1/ct1_rt.erl
index f173d3f..f9de372 100644
--- a/inttest/ct1/ct1_rt.erl
+++ b/inttest/ct1/ct1_rt.erl
@@ -7,10 +7,12 @@ files() ->
[{create, "ebin/a1.app", app(a1)},
{copy, "../../rebar", "rebar"},
{copy, "rebar.config", "rebar.config"},
+ {copy, "app.config", "app.config"},
{copy, "test_SUITE.erl", "itest/test_SUITE.erl"}].
run(_Dir) ->
{ok, _} = retest:sh("./rebar compile ct"),
+ {ok, _} = retest:sh("./rebar compile ct -v"),
ok.
diff --git a/inttest/ct1/rebar.config b/inttest/ct1/rebar.config
index a4b5284..58047ba 100644
--- a/inttest/ct1/rebar.config
+++ b/inttest/ct1/rebar.config
@@ -1 +1,2 @@
{ct_dir, "itest"}.
+{ct_extra_params, "-repeat 2 -erl_args -config app"}.
diff --git a/inttest/ct1/test_SUITE.erl b/inttest/ct1/test_SUITE.erl
index 92f2b2e..e8a2bb8 100644
--- a/inttest/ct1/test_SUITE.erl
+++ b/inttest/ct1/test_SUITE.erl
@@ -5,7 +5,13 @@
-include_lib("ct.hrl").
all() ->
- [simple_test].
+ [simple_test,
+ app_config_file_test].
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).
diff --git a/src/rebar_ct.erl b/src/rebar_ct.erl
index f3ed29f..c2b54a1 100644
--- a/src/rebar_ct.erl
+++ b/src/rebar_ct.erl
@@ -217,15 +217,13 @@ make_cmd(TestDir, RawLogDir, Config) ->
" ~s"
" ~s"
" -logdir \"~s\""
- " -env TEST_DIR \"~s\""
- " ~s",
+ " -env TEST_DIR \"~s\"",
[BaseCmd,
CodePathString,
Include,
build_name(Config),
LogDir,
- filename:join(Cwd, TestDir),
- get_extra_params(Config)]) ++
+ filename:join(Cwd, TestDir)]) ++
get_cover_config(Config, Cwd) ++
get_ct_config_file(TestDir) ++
get_config_file(TestDir) ++
@@ -237,19 +235,18 @@ make_cmd(TestDir, RawLogDir, Config) ->
" ~s"
" ~s"
" -logdir \"~s\""
- " -env TEST_DIR \"~s\""
- " ~s",
+ " -env TEST_DIR \"~s\"",
[BaseCmd,
CodePathString,
Include,
build_name(Config),
LogDir,
- filename:join(Cwd, TestDir),
- get_extra_params(Config)]) ++
+ filename:join(Cwd, TestDir)]) ++
SpecFlags ++ get_cover_config(Config, Cwd)
end,
+ Cmd1 = Cmd ++ get_extra_params(Config),
RawLog = filename:join(LogDir, "raw.log"),
- {Cmd, RawLog}.
+ {Cmd1, RawLog}.
build_name(Config) ->
case rebar_config:get_local(Config, ct_use_short_names, false) of
@@ -258,7 +255,12 @@ build_name(Config) ->
end.
get_extra_params(Config) ->
- rebar_config:get_local(Config, ct_extra_params, "").
+ case rebar_config:get_local(Config, ct_extra_params, undefined) of
+ undefined ->
+ "";
+ Defined ->
+ " " ++ Defined
+ end.
get_ct_specs(Cwd) ->
case collect_glob(Cwd, ".*\.test\.spec\$") of