diff options
| author | Brian Anderson <banderson@mozilla.com> | 2011-08-13 22:34:03 -0700 |
|---|---|---|
| committer | Brian Anderson <banderson@mozilla.com> | 2011-08-16 10:29:08 -0700 |
| commit | 184eac90ab5e5e1e52d24b6711813bf3b66c1fea (patch) | |
| tree | 89fd0cba27a43f1a1b646198dcc729bdbe3cf350 | |
| parent | 053b8bff5a81a0cb6c347f8c371fa5b66f48dbda (diff) | |
| download | rust-184eac90ab5e5e1e52d24b6711813bf3b66c1fea.tar.gz rust-184eac90ab5e5e1e52d24b6711813bf3b66c1fea.zip | |
Add and use an ivec interface to std::test
| -rw-r--r-- | src/comp/front/test.rs | 6 | ||||
| -rw-r--r-- | src/lib/test.rs | 13 |
2 files changed, 11 insertions, 8 deletions
diff --git a/src/comp/front/test.rs b/src/comp/front/test.rs index 5d6cc62c37d..77cf7e3daed 100644 --- a/src/comp/front/test.rs +++ b/src/comp/front/test.rs @@ -135,7 +135,7 @@ We're going to be building a module that looks more or less like: mod __test { - fn main(vec[str] args) -> int { + fn main(args: [str]) -> int { std::test::test_main(args, tests()) } @@ -285,7 +285,7 @@ fn mk_test_desc_rec(cx: &test_ctxt, test: test) -> @ast::expr { fn mk_main(cx: &test_ctxt) -> @ast::item { let args_mt: ast::mt = {ty: @nospan(ast::ty_str), mut: ast::imm}; - let args_ty: ast::ty = nospan(ast::ty_vec(args_mt)); + let args_ty: ast::ty = nospan(ast::ty_ivec(args_mt)); let args_arg: ast::arg = {mode: ast::val, ty: @args_ty, ident: "args", id: cx.next_node_id()}; @@ -355,7 +355,7 @@ fn mk_test_main_call(cx: &test_ctxt) -> @ast::expr { // Call std::test::test_main let test_main_path: ast::path = nospan({global: false, - idents: ~["std", "test", "test_main"], + idents: ~["std", "test", "test_main_ivec"], types: ~[]}); let test_main_path_expr_: ast::expr_ = ast::expr_path(test_main_path); diff --git a/src/lib/test.rs b/src/lib/test.rs index d6b151dd18f..cdd99874c8a 100644 --- a/src/lib/test.rs +++ b/src/lib/test.rs @@ -10,6 +10,7 @@ export test_name; export test_fn; export test_desc; export test_main; +export test_main_ivec; export test_result; export test_opts; export tr_ok; @@ -48,18 +49,20 @@ type test_desc = {name: test_name, fn: test_fn, ignore: bool}; // The default console test runner. It accepts the command line // arguments and a vector of test_descs (generated at compile time). -fn test_main(args: &vec[str], tests: &[test_desc]) { - let ivec_args = - { let iargs = ~[]; for arg: str in args { iargs += ~[arg] } iargs }; - check (ivec::is_not_empty(ivec_args)); +fn test_main_ivec(args: &[str], tests: &[test_desc]) { + check (ivec::is_not_empty(args)); let opts = - alt parse_opts(ivec_args) { + alt parse_opts(args) { either::left(o) { o } either::right(m) { fail m } }; if !run_tests_console(opts, tests) { fail "Some tests failed"; } } +fn test_main(args: &vec[str], tests: &[test_desc]) { + test_main_ivec(ivec::from_vec(args), tests); +} + type test_opts = {filter: option::t[str], run_ignored: bool}; type opt_res = either::t[test_opts, str]; |
