diff options
author | Björn Gustavsson <[email protected]> | 2012-08-31 08:19:17 +0200 |
---|---|---|
committer | Björn Gustavsson <[email protected]> | 2012-10-09 15:24:39 +0200 |
commit | dba5396cce0e94e5344ee910324c0e03d34dcaaa (patch) | |
tree | 725da398964c1dd99ecf0d47b40fa62e5e38c0bb /lib/compiler/test | |
parent | d3f886a225adfa196ec5fbc55ea6ebcae8c42197 (diff) | |
download | otp-dba5396cce0e94e5344ee910324c0e03d34dcaaa.tar.gz otp-dba5396cce0e94e5344ee910324c0e03d34dcaaa.tar.bz2 otp-dba5396cce0e94e5344ee910324c0e03d34dcaaa.zip |
compile: Give a friendler error message if a parse transform cannot be found
Don't throw the parse tree in the face of the user.
OTP-8707
Diffstat (limited to 'lib/compiler/test')
-rw-r--r-- | lib/compiler/test/error_SUITE.erl | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/lib/compiler/test/error_SUITE.erl b/lib/compiler/test/error_SUITE.erl index fb51e013ce..e798023cd8 100644 --- a/lib/compiler/test/error_SUITE.erl +++ b/lib/compiler/test/error_SUITE.erl @@ -22,13 +22,17 @@ -export([all/0, suite/0,groups/0,init_per_suite/1, end_per_suite/1, init_per_group/2,end_per_group/2, - head_mismatch_line/1,warnings_as_errors/1, bif_clashes/1]). + head_mismatch_line/1,warnings_as_errors/1, bif_clashes/1, + transforms/1]). + +%% Used by transforms/1 test case. +-export([parse_transform/2]). suite() -> [{ct_hooks,[ts_install_cth]}]. all() -> test_lib:recompile(?MODULE), - [head_mismatch_line, warnings_as_errors, bif_clashes]. + [head_mismatch_line, warnings_as_errors, bif_clashes, transforms]. groups() -> []. @@ -216,6 +220,24 @@ warnings_as_errors(Config) when is_list(Config) -> ok. +transforms(Config) -> + Ts1 = [{undef_parse_transform, + <<" + -compile({parse_transform,non_existing}). + ">>, + [return], + {error,[{none,compile,{undef_parse_transform,non_existing}}],[]}}], + [] = run(Config, Ts1), + Ts2 = <<" + -compile({parse_transform,",?MODULE_STRING,"}). + ">>, + {error,[{none,compile,{parse_transform,?MODULE,{too_bad,_}}}],[]} = + run_test(Ts2, test_filename(Config), [], dont_write_beam), + ok. + +parse_transform(_, _) -> + error(too_bad). + run(Config, Tests) -> ?line File = test_filename(Config), |